Lecture 11 PowerPoint

BIT 286:
Web Applications
Test Plans
Test Plan
 Three major parts:
 Coverage – what are you going to test?
 Methods – how are you going to test it?
 Including what you're going to use to test it
 Responsibilities – who will be doing the test?
 And once they've done the test, what do they do with that information?
 These can be quite detailed, or more free-form
 We'll be doing a more free-form version
 From Wikipedia
Designing Good Test Cases
Good paper on this by Cem Kaner
A test case is "“the specific inputs that you’ll try
and the procedures that you’ll follow when you
test the software.”
Ron Patton (from "Software Testing", SAMS, p. 65)
The starting state of the program, what you'll do,
and what you expect to see happen
For a database-driven web app this may mean preloading a specific & limited set of data into the
Attributes of good test cases
(for tests whose goal is to reveal bugs)
 More (statistically) powerful
 (more likely to expose a bug if it the bug is there)
 More likely to yield significant (motivating,
persuasive) results
 More credible
 E.g., people believe that a normal use might normally do this
 Easier to evaluate (did the test pass or fail?)
 More useful for troubleshooting
 Appropriately complex
 Simpler early on (when 'nothing works').
 If the tests are too complex they'll be vulnerable to blocking
This is all also from Cem Kaner
Black-Box Testing Paradigms
Function testing
Domain testing
Specification-based testing
Risk-based testing
Stress testing - JMeter
 Also: Performance Testing (this isn't listed in the paper)
 Regression testing
 Author defines this as "tests that will be reused". I've always heard this
talked about as "tests that check that a previously-fixed bug stays fixed"
User testing
Scenario testing
State-model based testing
High volume automated testing
Exploratory testing
This is all also from Cem Kaner.
Types of Test
Ad-Hoc / Manual Tests
 As you're doing this build up a checklist of what you're testing
 If someone needs to re-test they've got a list
 It'll serve as documentation of what you tried out
 Setting this up as an outline in MS Word is good
 Put in a numbered list, and then use tab (at the start of the line) to indent
rightward, and shift-tab to move the indentation left 1 tab stop
 This might be best for some types of tests
 For example, the Specification-Based Testing
This is not from Cem Kaner. Here ends the 'Cem Kaner' section of the presentation
Automated tests
 We'll look at using Selenium next class
 Interesting advice on testing:
 Let's work together to come up with a test plan for a single page /
 Example of a feature: the 'upload student homework' on the studentcourse mega-page
 Let's try for at least two paradigms
 For Milestone 2:
 Come up with a test plan for another 2 or so features/pages
 Make a reasonable decision about how may paradigms to use for each
feature – this might be just 1
 For Milestone 3:
 Come up with a test plan for each feature that you've implemented
 You need to have some automated tests
 You can have some manual test reports for the rest