Mentality Approach Level project manager trace system designer usable & nice user software engineer build (sub)system tester break system system administrator maintain system
a dedicated QA team. It’s their job to signal possible issues.” 2. “Our client requested this functionality live by next Monday. We are already short of time for executing the implementation. There is no time for testing other than what our manual QA guy already does.” 3. “My code works. I have a great track record. Why start now?” “Real Programmers Don’t Test” (1)
pays for working software. Programmers are expensive, we can’t possibly sell this to the customer. They will pick another software shop to do the work.” 5. “I am just making a small cosmetic change, nothing can go wrong.” 6. “We’re using a V-Model for delivering our projects, a separate QA team is handling the validation process. I’m not stepping on their toes.” “Real Programmers Don’t Test” (2)
start in the process ✓ What to test and what not to test ✓ How much to test in one go ✓ What to call the tests ✓ How to understand why a test fails Behaviour-Driven Development
E. (1968). How Do Committees Invent? ✓ Cook, Richard I. (1998). How Complex Systems Fail ✓ Nguyen, Hung Q., Bob Johnson, and Michael Hackett (2003). Testing Applications on the Web: Test Planning for Mobile and Internet-Based Systems. Wiley Publishing Inc. ISBN: 0-471-20100-6 ✓ North, Dan (2006). Introducing BDD Recommended Reading (1)
(2009). Technical Debt Quadrant ✓ Martin, Robert Cecil (2009). A Mess is not a Technical Debt ✓ Securities and Exchange Commission (2013). Administrative Proceeding File No. 3-15570 ✓ Seven, Doug (2014). Knightmare, A DevOps Cautionary Tale ✓ PA Consulting Group (2011). Major UK water utility - Architecture and design assurance Recommended Reading (2)