Chapter 11. Change-Centric Testing
The beauty of testing is found not in the effort but in the efficiency. Knowing what should be tested is beautiful, and knowing what is being tested is beautiful. In this chapter we discuss some techniques that are associated with efficient testing methodologies. Testing activity encompasses all aspects of a software development life cycle, be it one of the traditional waterfall, incremental, or spiral models, or the modern agile and test-driven development (TDD) models.
One of the recent project management trends is to set up continuous integration frameworks where changes are frequently integrated into the source code, the product is built, and a large part of existing tests are run to validate the correctness of code change. Although this concept was akin to the exhaustive testing methodology of the old school that was deemed as very difficult, recent advances in hardware configurations and reduced cost make this approach financially feasible. But in most common scenarios, the project would not have sufficient test cases in place to provide 100% code coverage. So, if a change is made in parts of the code that have no coverage with the existing test suite, the effectiveness of this approach becomes questionable, as the code coverage is less than 100%. Whether this approach is the best strategy or whether one should apply a change-centric testing approach is the main issue we are going to examine in this chapter.
Change-centric testing ...