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