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