Software Testing CISC 323 Winter 2006
Prof. Lamb
[email protected]
Prof. Kelly
[email protected]
Included in Courseware • Reference material for the lectures – 19 pages from “Software Testing, A Craftsman’s Approach”, by Paul C. Jorgensen
2
All Testing is Sampling How can we sample in such a way that it is – Efficient – Effective
• Another problem specifically for scientific and engineering software – Lack of accurate and detailed oracles • Often use the TLAR method (That Looks About Right!)
Illustration of difficulties: next slides 3
4
5
6
Testing Techniques • Purpose – To provide reasoned ways of generating test cases – To produce test cases systematically • Might allow some sort of test case automation
– To help in reproducibility of the tests – To address the”when are we done?” problem • Gives some level of confidence that enough bugs have been found
– To allow better planning – To allow the use of different techniques to address different issues – To provide data for debugging
7
Testing Techniques • Black box testing – Also known as functional testing – Testing without opening the software box – We’ll look at examples of testing by considering the input data
• White box testing – Also known as structural testing – Testing by considering what the code looks like – We’ll look at examples of code coverage 8
Boundary Value Testing (Black Box Testing)
• Focuses on the boundaries of the input space to identify test cases – Based on the finding that errors seem to cluster at boundaries • Eg. code checks for