Effective software testing for developers

I hope the difference is clear between the two developers in the previous section. Eleanor used automated tests and systematically and effectively engineered test cases. She broke down the requirements into small parts and used them to derive test cases, applying a technique called domain testing. When she was done with the specification, she focused on the code; and through structural testing (or code coverage), she evaluated whether the current test cases were sufficient. For some test cases, Eleanor wrote example-based tests (that is, she picked a single data point for a test). For one specific case, she used property-based testing, as it helped her better explore possible bugs in the code. Finally, she reflected frequently about the contracts and pre- and post-conditions of the method she was devising (although in the end, she implemented a set of validation checks and not pre-conditions per se; we discuss the differences between contracts and validation).

This is what I call effective and systematic software testing for developers. I explain how software developers can perform effective testing together with their development activities. Before we dive into the specific techniques, I describe effective testing within the development processes and how testing techniques complement each other. I discuss the different types of tests and which ones you should focus on. Finally, I illustrate why software testing is so difficult.


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *