27
@EvilTester | EvilTester.com/agile

Evil Tester's Guide to Agile Testing

Embed Size (px)

Citation preview

Page 1: Evil Tester's Guide to Agile Testing

@EvilTester | EvilTester.com/agile

Page 2: Evil Tester's Guide to Agile Testing

Common Questions about Testing onAgile Projects

@EvilTester | EvilTester.com/agile

Page 3: Evil Tester's Guide to Agile Testing

What is Agile Testing?A Test approach crafted uniquely for your specific environment.

Test in a way that fits, and adapts to, your Agile Development.Nothing complicated. Involve everyone on the team in yourTesting process, because Testing is a major part of yourSoftware Development Process.

@EvilTester | EvilTester.com/agile

Page 4: Evil Tester's Guide to Agile Testing

What is Agile Testing?Every Agile project is unique ‐ staff mix, skill sets, businessconcerns, tool sets. You need to adopt a Testing approach craftedto your specific environment. To do that you need to understandthe essence of testing in terms of feedback, and as a means ofevaluating and exploring models of your system. Then test in a waythat fits, and adapts to, your approach to Agile Development.Nothing complicated. Don't shoe horn in something you wouldtraditionally call 'Testing' and label it Agile. Do Adapt your processto meet the needs of your project. And do involve everyone in yourTesting process, because Testing is a major part of your SoftwareDevelopment Process.

@EvilTester | EvilTester.com/agile

Page 5: Evil Tester's Guide to Agile Testing

Do we still need testers in Agile?Once you've worked with a good tester, this question won't evencross your mind.

You still need to test, and you need people to do that. You cantrain other people to test, but they may not have themotivation to learn testing in depth and push your System toits limits.

@EvilTester | EvilTester.com/agile

Page 6: Evil Tester's Guide to Agile Testing

Do we still need testers in Agile?People often ask this question because they've never seen a goodtester in action. After working with a good tester, this questionwon't even cross your mind. You still need to test, and you still needpeople testing your software. You'll need the people doing that tounderstand how to test, and to test well. Testers generally knowhow to do that. But of course you can train other people to do yourtesting. They may not have the same motivation to continue tolearn testing in depth and the nuances and subtleties of system andrisk exploration as people who view testing as their main focus.

@EvilTester | EvilTester.com/agile

Page 7: Evil Tester's Guide to Agile Testing

What is an Agile Tester?An Agile Tester brings flexibility to their role.

They take the essence of testing and implement it as part ofyour Agile System of Development. They explore the Systemdeeply, spot Risks, and ask questions to help everyone thinkdifferently about the quality of the software and the process ofdevelopment.

@EvilTester | EvilTester.com/agile

Page 8: Evil Tester's Guide to Agile Testing

What is an Agile Tester?An Agile Tester brings flexibility to the role of tester. They don't justquote testing books at you and best practice definitions. They takethe essence of testing and help implement it as part of your AgileSystem of Development. They will know how to test with minimalinformation and ask questions to help other people think about thequality of the software and the process of building the software.They will know how to spot risks and target those risks with handson system manipulation. Very often they spot gaps in thedevelopment process and help fill them.

@EvilTester | EvilTester.com/agile

Page 9: Evil Tester's Guide to Agile Testing

What does a Software Tester ActuallyDo?Testing builds a model and compares it to the delivered system.

Models like: requirements, acceptance criteria, risk ﴾business,technical, process﴿, flow, and functionality.

A tester expands the model by observing, exploring,interrogating and manipulating the system.

@EvilTester | EvilTester.com/agile

Page 10: Evil Tester's Guide to Agile Testing

What does a Software Tester ActuallyDo?The essence of Software Testing is building a model of the SystemUnder Test, and then comparing that model to the deliveredsystem. A tester builds lots of models; requirements, acceptancecriteria, risk ﴾business, technical, process﴿, flow, functionality, et. Thetester has different techniques to prioritise how they explore therelationship between the model and the system. A good Testeradapts their model based on the information they observe as theinterrogate and manipulate the system, the reflect on thisinformation to communicate effectively and expand their model.

@EvilTester | EvilTester.com/agile

Page 11: Evil Tester's Guide to Agile Testing

Should we automate our testing?Automate execution flows through the system to assert onagreed acceptance conditions.

Humans automate the mechanistic, to free ourselves to useemotion and imagination. We should look for opportunities toautomate parts of our testing process.

@EvilTester | EvilTester.com/agile

Page 12: Evil Tester's Guide to Agile Testing

Should we automate our testing?We are Human. Humans automate processes. We will automate themechanistic parts of our processes, to free ourselves from drudgeryand allow us to more fully exercise our emotion and imagination inour Software Development. We use IDEs to automate parts of thecoding and refactoring processes, we automate builds and softwarereleases. We should look for opportunities to automate as part ofour testing process ‐ often this will be checking, and asserting on,the agreed acceptance conditions. We can automate executionflows through the system with pre‐agreed acceptance conditionassertions. This is only a small part of evaluating the risk associatedwith releasing software, but it can be automated.

@EvilTester | EvilTester.com/agile

Page 13: Evil Tester's Guide to Agile Testing

What tools should we use for our AgileTesting?That depends on your technology. Automate strategically andtactically.

Strategically automate system execution making itmaintainable and robust.

Tactically use tools to support deep system Observation,Exploration, Interrogation and Manipulation.

@EvilTester | EvilTester.com/agile

Page 14: Evil Tester's Guide to Agile Testing

What tools should we use for our AgileTesting?Your tooling will vary depending on the technology you use. You'llneed tools to help you strategically automate system execution tomake it maintainable and robust. You'll need tools to support youin tactically Observing the system functionality and messagepassing in detail. Tools to help you Interrogate and Manipulate theSystem in ways a User would never need to do, to help you Explorethe System in detail. I generally try to use the same tools as the restof the development team. I don't recommend separate "TestTracking" tools, when you do that you end up having only Testersuse them, and we want to harness the skills of all team members aspart of our Testing process.

@EvilTester | EvilTester.com/agile

Page 15: Evil Tester's Guide to Agile Testing

How Much Should we Automate?Automate to convince yourself the system continues to meet theacceptance criteria.

Review the automated execution code, to ensure it is relevant,delete anything that takes time to maintain but doesn't helpevaluate the risk of release.

@EvilTester | EvilTester.com/agile

Page 16: Evil Tester's Guide to Agile Testing

How Much Should we Automate?Automate as much as you need to. Are you convinced that youhave a low risk of changes unexpectedly and adversely impactingpreviously tested areas of the System? Are you convinced that theagreed Acceptance Criteria are still met by the System? As youmaintain your automated execution code, review what you havecreated to make sure it still seems relevant, and delete anythingthat takes time to maintain but doesn't help you evaluate the risk ofthe release.

@EvilTester | EvilTester.com/agile

Page 17: Evil Tester's Guide to Agile Testing

How can we automate and still finish thesprint?Commit to automating as part of your Definition of Done.

Don't just write code, commit to maintaining an system whichautomatically asserts that you continue to meet theacceptance criteria the code was designed to fulfil.

@EvilTester | EvilTester.com/agile

Page 18: Evil Tester's Guide to Agile Testing

How can we automate and still finish thesprint?Automating acceptance criteria is part of your sprint planning.Commit to automating as part of your Definition of Done. Don'tjust write code, commit to maintaining an system whichautomatically asserts that you continue to meet the acceptancecriteria the code was designed to fulfill. It is possible to work on theacceptance criteria checking in parallel to writing system code. Takeadvantage of abstraction layers and good coding and designprinciples to support your development process.

@EvilTester | EvilTester.com/agile

Page 19: Evil Tester's Guide to Agile Testing

How can we finish all our testing in thesprint?If you haven't finished testing, then you don't release thatfunctionality.

Everyone on the team tests to the best of their ability. Leavethe simple condition checking to the automated system orpeople less skilled in testing.

@EvilTester | EvilTester.com/agile

Page 20: Evil Tester's Guide to Agile Testing

How can we finish all our testing in thesprint?Making time for Testing is part of your sprint planning. Don't createa bottleneck by having a single person allocated to testing. Haveeveryone on the team test the software to the best of the ability,and use the people who are best at testing to really explore therisks and conditions in detail while leaving the simple conditionchecking to the automated system or people less skilled in testing.If you haven't finished testing, then you can't evaluate the risk, andyou don't release that functionality.

@EvilTester | EvilTester.com/agile

Page 21: Evil Tester's Guide to Agile Testing

Free ‐ Download and Print Your Own"The Evil Tester's Guide to Agile TestingBrochure"

At EvilTester.com/agile

@EvilTester | EvilTester.com/agile

Page 22: Evil Tester's Guide to Agile Testing

@EvilTester | EvilTester.com/agile

Page 23: Evil Tester's Guide to Agile Testing

@EvilTester | EvilTester.com/agile

Page 24: Evil Tester's Guide to Agile Testing

Help Your Teams Improve How They Testand Develop SoftwareYou can learn to test and develop software using Agile processesthrough trial and error. You'll learn the hard way from your ownmistakes.

You could bring in contractors who are experienced in Agile towork on your projects with you. They'll help you work in a moreAgile way but they'll be busy doing the work and might not havethe necessary time to pass on their experience to the rest of theteam.

You could bring in an Agile Coach and mentor who is therespecifically to help you improve. They are not on your project 100%of the time, they work with you to help you improve.

@EvilTester | EvilTester.com/agile

Page 25: Evil Tester's Guide to Agile Testing

An Agile Software Development coach and mentor can short cutyour learning and help you:

Automate your APIsAutomate to support Continuous Integration & ExploratoryTestingRemove intermittent failures from your Automated execution

Refactor your code to make it more testableImprove pairing on TDD and exploratory testingIncrease the value of your retrospectives so you take actionImprove your exploratory testing, making it more transparent,thorough and technical.

@EvilTester | EvilTester.com/agile

Page 26: Evil Tester's Guide to Agile Testing

Alan Richardson is someone who has done all of this before.Combining a background in Testing and Programming, Alan canwork with all of your team members to help improve your AgileDevelopment Approach.

Alan consults through Compendium Developments Ltd andhelps teams improve their testing and development processes,Alan blogs at Evil Tester, Java For Testers, and SeleniumSimplifiedAlan has written 4 books "Java For Testers", "Dear Evil Tester","Automating and Testing a REST API" and "SeleniumSimplified"Alan talks and keynotes at conferences world wide, alsoproviding workshops and tutorials.

@EvilTester | EvilTester.com/agile

Page 27: Evil Tester's Guide to Agile Testing

Contact Alan to help you with your AgileTesting and DevelopmentCompendium Developments Ltd

Contact Alan

http://compendiumdev.co.uk/contact

@EvilTester | EvilTester.com/agile