This change series makes software testing provide useful feedback on company decisions not directly related to software implementation.
Habit: Make Methods Simple
Organization ROI: Reuse code more. Engineer ROI: Separate parts of a method, unwinding their dependencies and testing each part separately.
Habit: Separate Commands and Queries
Organization ROI: Improve reusability and complexity by reducing complexity. Engineer ROI: Code becomes much easier to test.
Habit: Test as Design Preview
Organization ROI: Tests indicate design flaws before you write the code. Engineer ROI: Stop testing around existing designs. Re-invent design ideas without having to know the whole literature. The tests show you what to solve.
Habit: Communicative Tests 2 – Test as Spec
Organization ROI: Eliminate the disagreements between coders and non-coders for what the system should do. Engineer ROI: Not using cucumber/fit/fitnesse! Use the native language to agree with your PO/manager, because the code is written so well that you can.
Habit: Communicative Tests 1 – Acceptance Microtesting
Organization ROI: Guarantee each feature can be changed without interactions with other features. Provide automatic trace-ability in regulated environments. Engineer ROI: Tests drive your design to the simplest form that matches your spec and indicate when a spec change should cause a design change.