validate change? – Have we built something to specifica.on? – Have we built something free from defects? – Have we built something which is relevant to our users? Agile techniques reduce feedback cycles from months and weeks to days, hours and minutes
Separate Test Team • Tes.ng happens at the end of development • Testers work alone • Testers act as gatekeepers • No or liQle contact with business • Tests wriQen and automated a5er development Agile QA Role • Part of an en.re team • Tes.ng happens parallel to development • Testers pair with BAs, Devs and other testers • Testers highlight risk • Direct contact with Business • Tests wriQen and automated before and during development
• Reality: Value based tes.ng – How heavily used is this func.onality? – Is this func.onality undergoing change? – What’s the cost to automate this test? – What’s the risk if this func.onality breaks? – What’s the value of this test?
a common versioned code repository • Developers commit small changes to this repository o5en • Each commit triggers the test suite run against the new version of the so5ware • Effort immediately switches to fixing any failing test(s)
Supports star.ng test automa.on effort immediately Fast feedback Separate test intent from implementa.on details Allows for beQer collabora.on from technical and non-‐technical team members Support and encourage good programming prac.ces for the test code Tests are cheaper to maintain Support wri.ng test automa.on code using real languages and IDEs Tests are cheaper to maintain and more powerful Fosters collabora.on Lowers risk and ensures the right thing is built Easily integrated with Con.nuous Integra.on process Fast feedback Extensible To handle frequent change and new scenarios
Plain English Test Specifica.on Re-‐usable automa.on components Technical implementa.on of test components Execute and report on test results Framework Concordion Java jUnit Technology specific Tool Purpose
form and integra.ng with automa.on – Versions available for Java, .Net, Ruby, Python, Scala • Allows for highly readable tests – Tests double up as system documenta.on • Extremely well suited to cross team collabora.on
as so5ware development • Unsuitable tool selec.on – Available only to a select few – Produce briQle tests – Not extensible – Unsuitable for Con.nuous Integra.on • Sub op.mal development prac.ces • Inappropriate es.ma.on and resourcing • Over engineering of automa.on code • Trying to test everything with automa.on