ABSTRACT

The test-driven development approach puts much emphasis on automated tests and several TDD principles emphasize the importance of quality test cases, such as Evident Tests and Evident Data. However, tests can only demonstrate the presence of defects, not that no defects remain in the production code. The learning objective of this chapter is to present a few systematic testing techniques that increase the chance of finding defects while keeping the number of test cases low. Thus systematic testing is not an alternative to TDD but rather a different aspect of testing: TDD is focused on the process of building reliable software fast while systematic testing is focused on increasing the ability of test cases to expose defects. As such they complement each other.