Interoperability
What is testing? Where have we come from? Where are we now? Why is nFocus at MSAIC? Overview
Why do we test? prove it works to see if it is quick enough check that changes haven’t broken it find bugs minimise tech support costs is it usableis it reliable check conformance with regulations prove it is secure ensure we can install it
Testing is many things to many different people but we believe that testing: Reduces the risk of failure Increases the confidence of success Supplies key information to make decisions What is testing?
Testing is a balancing act Cost Time Quality
Waterfall Testing at the end Where have we come from?
Waterfall Model (planned) Requirements Design Implementation Testing Maintenance
Waterfall Model (reality) Requirements Design Implementation Testing Maintenance Squeeze
Waterfall Testing at the end Mostly manual testing Automated testing was difficult – Got bad press (record/playback) Often seen as a cost – Tick in the box – Didn’t understand inherent value in testing Where have we come from?
What is agile? How do we test using agile principles? What does “done” look like? Where are we now?
Agile and nFocus Manifesto – principles and intentions What is agile?
Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: That is, while there is value in the items on the right, we value the items on the left more. Individuals and interactionsoverprocesses and tools Working softwareovercomprehensive documentation Customer collaborationovercontract negotiation Responding to changeoverfollowing a plan
Agile and nFocus Manifesto – principles and intentions Short iterations – Sprints in Scrum Works for development but challenges for test – Growing regression bucket – Agile embraces change but change can de- stabilise Highly people focused What is agile?
Plan and design for testing – Don’t assume it will be easy Use the quadrants, Luke How do we test using agile principles?
Automated & Manual Manual Tools Automated Technology-Facing Business-Facing Supporting the Team Critique Product Agile Testing Quadrants Original idea by Brian Marick,
Automated & Manual Manual Tools Automated Technology-Facing Business-Facing Supporting the Team Critique Product Agile Testing Quadrants Original idea by Brian Marick,
Automated & Manual Manual Tools Automated Technology-Facing Business-Facing Supporting the Team Critique Product Agile Testing Quadrants Original idea by Brian Marick,
Automated & Manual Manual Tools Automated Technology-Facing Business-Facing Supporting the Team Critique Product Agile Testing Quadrants Original idea by Brian Marick,
Automation – Goes someway to solve challenges – Automate as much as is feasibly possible – Just software too – Code architecture needs to support automation – Layered architectures work best – Bake into build and deploy process (twitter) How do we test using agile principles?
Manual testing – Exploratory testing – Frameworks help single definition – Adds value but long term becomes cost Always pick the right tools for the right job – Is VS2010 the right tools?? How do we test using agile principles?
We know that testing is infinite So we must prioritise – Most important – Most difficult Testing forms a large part of what “done” looks like Bring on the “done” thinking grid What does “done” look like?
“done” thinking grid User story clarity Tasks identified Build setup changes Product owner approval Product backlog updated Environment ready Design complete Unit test cases written Documentation Pre-release builds Code complete Unit tests executed Refactoring Code checkin Code merging and tagging Automated code review Peer review Code coverage Burndown chart ready Release build Functional testing Regression testing Performance testing Acceptance testing Closure Testing play a key part in “doneness”
Agile represents progress Agile is a mindset that embraces change Testing solves some of the agile challenges – “Done”, Information, Culture, Working software Whole team approach to quality (test-infected) – Includes architects – Solution needs to be testable – Architecture needs to enable automation Reflect Why nFocus at MSAIC Summary
Agile Manifesto – Definition of Done – definition-of-done-a-reference Agile testing quadrants – nFocus Blog – Danny Crone – Resources
We've come a long way from the days of testing coming last after report generation within the development lifecycle. Agile development practices and tooling have reaped many benefits but how do we ensure that testing is integrated end-end through out the lifecycle? How can testing become a first class citizen and what is the role of the architect in ensuring testing is made so? Testing, why it should be fully integrated in the application lifecycle?