Testing for agile teams . What's the difference between this and other testing ? What are the goals for such testing ? Is agile testing needed at all ? Why ? You will find some answers inside and mist likely will be directed to the right way.
- 1. Testing for scrum teams.Introduction.Dennis Popov email@example.com@gmail.comJuly 2010, Berlingskemedia.dk
2. Plan The agile values and testing Agile thinking for testers Agile tester itself Bill of rights Goals artifacts and tools 3. The Agile ValuesIndividuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a planThat is, while there is value in the items onthe right, we value the items on the left more."www.agilemanifesto.org 4. What is testingSoftware testing is a process of an investigationconducted to provide stakeholders withinformation about the quality of the product orservice under test. 5. What is it needed for ? Software testing provides an objective,independent view of the software to allow thebusiness to appreciate and understand the risks atimplementation of the software (thanks to Wikipedia) 6. Testing and scrumAn agile project is a close team;everyone shares ownership of the code and of the quality of the product.If the testers are squeezed, it may be that they are becoming thegatekeepers of quality, and that the practice of collective ownership iscompromised.Testers role tends to fall into two main parts:- enhancing the confirmation tests at unit and acceptance levels. This means that developers should help testers to understand unit tests . Testers will propose changes and pay attention to the situation when unit test seems to be missing.- identifying, diagnosing and exploiting unexpected behaviors. They alsobring automation skills to your customer, automating some or part of theiracceptance testing.- developers can do Mini-demo to Testers on their local environments 7. Agile Thinking for testersNot a quality police but Helps business to expresstheir needsConstant feedbacks to businessReady to inner-team communicationsCourage to ask questions and get answersSearch for simple ways (does not always mean easyones)Be ready for frequent changesSelf organized. Bring value even when there is nofunctionality to test. Use different hats. 8. SCRUM Testing is DifferentThe biggest difference is that in Scrum project, the entiredevelopment team takes responsibility for quality. Thismeans the whole team is responsible for all testing tasks,including acceptance test automation. When testers andprogrammers work together, the approaches to testautomation can be pretty creative!SCRUM isnt about roles, its about a tight integration ofskills and behaviors. Testing is an integrated activity inScrum team. The development team needs continualfeedback, with the customer expressing their needs interms of tests, and programmers expressing design andcode in terms of tests. In Scrum team, the tester will play inboth the customer and programmer roles. Hell focus onacceptance testing and work to transfer his testing andquality assurance skills to the rest of the team. 9. The Old Strategies Wont WorkDetailed test planning Not enough time Too many changes Old metrics wont workDedicating a phase for testing You dont get to define entry and exit criteria Iterations will move on without youChange control Changes are now commonplaceBeing in a position of authority You need to learn how to express concerns without really being able to judgesoftware correctness authoritatively 10. What is agile tester. Activities* Negotiate quality with the customer (its not YOUR standard of quality, its what the customer desires and is willing topay for!)* Clarify stories, flush out hidden assumptions* Enable accurate estimates for both programming and testing tasks* Make sure the acceptance tests verify the quality specified by the customer* Help the team automate tests* Help the team produce testable code* Form an integral part of the continuous feedback loop that keeps the team on track.you will communicate more, with your coders and your customers.- you will need to have (or will rapidly gain) a deeper understanding of the technology and the code- you will no longer be the gatekeeper- you will share more risk, and feel an increased sense of ownership- you will personally fix more bugsState the alternative strategiesList the pros and cons of each strategyGive a forecast of costsYou can be a Bad Customer! 11. Tester - A bad customer hat.A bad customer does things that arent happy path interactions; they perturb and maybreak the system. Its worth considering whether a particular action is that of an incompetentuser, an expert/speedy user or a malicious user. A tester can use his or her knowledge ofpossible problems and ware a hat of a bad customer. Some trigger ideas include:- Empty sets, null inputs- Invalid parts of input characters, values, combinations- Time changes- Unusual uses- Too much long strings, large numbers, many instances- Stop halfway / Jump in halfway- Wrong assumptions- Making lots of mistakes, compounding mistakes- Using the same information for different entities- Triggering error messages- Going too fast 12. What sort of stories should a testerbring?- User stories that involve edge cases- User stories that involve malicious intent- Stories that arent for the users- Infrastructural stories ie loading the DB for setup- Unexpected / unconsidered quality criteria- Consequences after time / under load- Experiments, rather than stories like thought experiments?- Bugs that need fixing, but cant be fixed right now 13. Challenge: Are Testers Obsolete?With developers doing unit testing, do we still need to haveQA testers?Some teams have fired testers when adopting agile. They have thenregretted this.Some teams are using developers for acceptance testing.One of the main reasons why we still need dedicated testers is aninstant feedback from testing.Dedicated testers bring two benefits:Focus on customer usage over technical implementationFocus on uncovering flaws over confirming completeness 14. Testers Bill of Rights You have the right to bring up issues related to quality andprocess at any time. You have the right to ask questions of customers andprogrammers and receive timely answers.You have the right to ask for and receive help from anyoneon the project team, including programmers, managers, andcustomers.You have the right to make and update your own estimatesfor your own tasks and have these included in estimates forstories.You have the right to the tools you need to do your job in atimely manner. You have the right to count that all team is responsible forquality of the product 15. goals for agile teamsHow can we get testers to be part of a team? Doesnt this forcethem to sacrifice their integrity?Testers have been an oppressed group and have often stuck together to provide mutual support.Its time to let go of this.Testers should co-locate with developers and analysts.Agile only works when there is lots of both formal and informalcommunication within a team.Each team member should be ready to ware testers hat 16. artifacts for agile testing p 106Metrics that will measure teams progressTest strategy rather than test plan a longterm plan of actions and activities. 17. tools for testinghttp://www.opensourcetesting.org/unit_php.phpWeb Protocol Drivers for Functional TestingPHPUnit http://www.phpunit.de/Simple test http://www.lastcraft.com/simple_test.phpLoad Testing ToolsCelenium ideFunctional testing: FitNesseLoad testing: LoadUI http://www.loadui.org/SOAP testing http://www.soapui.orgGreenHopper plugin for Jira.http://www.atlassian.com/software/greenhopper/tour/scrum.jsp 18. RecommendationsAccept SCRUMLove scrumLive scrum 19. MaterialsAgile testing. A practical guide for testers and agile teams. Lisa Crispin, Janet Gregory,2010, 464p.Testing computer software. Cem Kaner, Jack Falk, 2001, 544p.WikipediaBret Pettichords blog (http://blogs.stickyminds.com/)Lisa Crispins articles http://www.methodsandtools.com/archive/archive.php?id=2www.testingexperience.com