High Volume Automated Testing for Software Components Harry RobinsonDoug Szabo Microsoft
High Volume Test Automation The essence of HVTA techniques is automated execution and evaluation of large numbers of tests, for the purpose of exposing functional errors that are otherwise hard to find. Experiments with High Volume Test Automation, 2004 McGee & Kaner
Subtle Bugs Only weak bugs have a logic to them and are amenable to exposure by strictly logical means. Subtle bugs have no definable pattern - they are wild cards. Software Testing Techniques 2 nd Edition, 1990 Beizer
Bounded Exhaustive Testing Bounded exhaustive testing (BET) is a verification technique in which software is automatically tested for all valid inputs up to specified size bounds. Software assurance by bounded exhaustive testing, 2005 Coppit et al
Typical Biases Developers – “happy paths” Testers – “a nose for bugs”
CodeProject: Sorting Algorithms in C#
The Sorting Algorithms
Popular …
Recommended …
… and it looks cool!
… but dark clouds appear on the horizon
...
Reasonable Unit Tests
… Even Some Randomized Unit Tests
Pre-Oracled Data shuffle sort compare
The Loop
Shearsort demo #1
Shearsort demo #2
Shearsort bug
Shearsort bug - fixed
Heapsort bug
Heapsort bug - fixed
OddEvenTransport bug
OddEvenTransport bug - fixed
Distribution of Buggy Array Sizes
Bug is not detected at array size 1000
Number of Random Arrays to Detect a Bug
Generated Unit Tests