BIT 286:
Web Applications
Test Plans
2
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
3
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
database
4
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
bugs
This is all also from Cem Kaner
Black-Box Testing Paradigms
5
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.
6
Types of Test
7
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
8
Automated tests
We'll look at using Selenium next class
Interesting advice on testing:
http://docs.seleniumhq.org/docs/06_test_design_considerations.jsp
9
Today
Let's work together to come up with a test plan for a single page /
feature
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