Testing-review
natural ranges
- int An int representing a non-negative number - An int representing how much fuel is left in a tank as a percentage - An int representing the wheel number on a vehicle (with wheels numbered 1..N) - An int representing the time of day in seconds since midnight (0=midnight) - float - char - short - double - long - boolean - enum Colour {Red,Green,Orange,Blue}
Typical BBT Usage
Basic Functionality ("show it works") - EP • Augment ("look for failures") - BVA - Combinational
EP strength and weakness
Strength: • A minimum level of black-box testing • At least one value has been tested from every input and output partition • Likely to ensure basic correctness • Good for "data processing" applications: easy partitioning • Structured approach for Test Cases. Weakness: • Does not exercise decisions in the code. - decisions are a source of mistakes - decisions generally reflect the boundaries of input partitions, or combinations of inputs • Boundaries & Combinations not tested • The technique does not provide an algorithm for finding the partitions or selecting the test data.
BVT strength and weakness
Strengths • Focus on areas where faults are likely to be found • Data Values are provided by the technique Weaknesses • Combinations of inputs not tested
Lecture 5
Test Artefacts • Avoiding combinatorial explosions on combinations of inputs and outputs • Do not try to test every combination • Testing in a real world open source software project
Lecture 1
Where does testing fit into the software cycle? Your role as a software tester Two or three definitions of software testing.
array as input
• An empty array • A single element • Array with pos or neg integer • A two element array • A sorted array • A semi-sorted array • A sorted in reverse array • A random array • A semi-sorted array • An array with all the same values (positive or negative) • An array with very large integers • An array with zero values
Lecture 3
• Black box testing • Understanding partitions, input domains and ranges • Creating partitions for different types of primitive data types
Lecture 4
• Example of black box testing - equivalence partitions • Creating partitions • Creating test cases • Creating test data • The tests themselves • Assessment of your testing approach and strategy • Understanding the nuances of the specifications.
Lecture 6
• Extending our understanding of Equivalence Partitions to work with testing methods involving integer arrays • Heuristic approach to software testing - arrays do not really have partitions - so we must think of a slightly different approach • BBT - Boundary Value Analysis.
EP Summary
• Representative values of each parameter from the equivalence partitions • Each EP for each parameters is a test case • Inputs and the outputs • Generate as few tests as possible: each new test should select data from as many uncovered partitions as possible. • Error cases treated separately • Goal: 100% coverage of the EPs
Lecture 7
• Review of lab 3 - the arrays lab • BBT - Combinations of Inputs • Working with truth tables • Truth Table Examples
Lecture 2
• Testing in the software process • The importance of specifications in the testing process • Types of testing • Focus for the first part of the course on Unit Testing • Introduction to the TestNG framework