If you were feeling a void in your heart for some more testing since chapter 5’s lesson on TDD, then chapters 7 and 8 are sure to get that blood pumping organ to swell. Chapter 7 is called “Acceptance Testing” and focuses on how to determine when a programmer has completed a requirement. Chapter 8 is called “Testing Strategies” and focuses on the “The Test Automation Pyramid” which I provided below.
In chapter 7, Robert C. Martin gives his “Definition of Done” which is accomplished when “all code is written, all tests pass, QA and the stakeholders have accepted.” Just today our development team drafted our own Definition of Done. Ours contains slightly different criteria as we are not engaging in TDD. Additionally, due to our constraints, do not have the time or resources in order to produce automated acceptance tests as Martin suggests. He focuses immensely on how integration testing through a continuous integration system is the best form of communication between programmers and stakeholders.
In chapter 8 Martin focuses on test coverage. He believes that unit tests should cover 100% of a programmer’s code, although he admits that 100% coverage is unrealistic. He also suggests component tests should cover about 50%, integration tests about 20%, and so forth. Martin suggested, once again, that he believes that QA should find nothing wrong with the software that they are reviewing. However, in this and the previous chapters, he explains that QA has the responsibility of writing the acceptance tests in conjunction with the stakeholders. Therefore, if QA does a good enough job, and programmers ensure that their code passes these tests, then I finally agree with Martin. There exists a slim possibility that programmers can ship code to QA with some confidence that there exists no bugs in the code.
From the blog cs443 – TayNock's Blog by taynock and used with permission of the author. All other rights reserved by the author.