Transcript
Page 1: ! Testing for agile teams

Testing for scrum teams. Introduction.

Dennis [email protected]

[email protected]

July 2010, Berlingskemedia.dk

Page 2: ! Testing for agile teams

Plan

• The agile values and testing• Agile thinking for testers• Agile tester itself• Bill of rights• Goals artifacts and tools

Page 3: ! Testing for agile teams

The Agile Values

Individuals and interactions over processes and toolsWorking software over comprehensive documentationCustomer collaboration over contract negotiationResponding to change over following a plan

That is, while there is value in the items onthe right, we value the items on the left more."

www.agilemanifesto.org

Page 4: ! Testing for agile teams

What is testing

Software testing is a process of an investigation conducted to provide stakeholders with information about the quality of the product or service under test.

Page 5: ! Testing for agile teams

What is it needed for ?

Software testing provides an objective, independent view of the software to allow the business to appreciate and understand the risks at implementation of the software (thanks to Wikipedia)

Page 6: ! Testing for agile teams

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 the gatekeepers of quality, and that the practice of collective ownership is compromised.

Tester's 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 also bring automation skills to your customer, automating some or part of their acceptance testing.

- developers can do Mini-demo to Testers on their local environments

Page 7: ! Testing for agile teams

Agile Thinking for testers Not a “quality police” but Helps business to express

their needs Constant feedback's to business Ready to inner-team communications Courage to ask questions and get answers Search for simple ways (does not always mean easy

ones) Be ready for frequent changes Self organized. Bring value even when there is no

functionality to test. Use different hats.

Page 8: ! Testing for agile teams

SCRUM Testing is Different The biggest difference is that in Scrum project, the entire

development team takes responsibility for quality. This means the whole team is responsible for all testing tasks, including acceptance test automation. When testers and programmers work together, the approaches to test automation can be pretty creative!

SCRUM isn’t about ‘roles’, it’s about a tight integration of skills and behaviors. Testing is an integrated activity in Scrum team. The development team needs continual feedback, with the customer expressing their needs in terms of tests, and programmers expressing design and code in terms of tests. In Scrum team, the tester will play in both the customer and programmer ‘roles’. He’ll focus on acceptance testing and work to transfer his testing and quality assurance skills to the rest of the team.

Page 9: ! Testing for agile teams

The Old Strategies Won’t Work•Detailed test planning

• Not enough time

• Too many changes

Old metrics won't work

•Dedicating a phase for testing

• You don’t get to define entry and exit criteria

• Iterations will move on without you

•Change control

• Changes are now commonplace

•Being in a position of authority

• You need to learn how to express concerns without really being able to judge software correctness authoritatively

Page 10: ! Testing for agile teams

What is agile tester. Activities * Negotiate quality with the customer (it’s not YOUR standard of quality, it’s what the customer desires

and is willing to pay 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 bugs

State the alternative strategies

List the pros and cons of each strategy

Give a forecast of costs

You can be a Bad Customer!

Page 11: ! Testing for agile teams

Tester - A bad customer hat.A bad customer does things that aren’t ‘happy path’ interactions; they perturb and may

break the system. It’s worth considering whether a particular action is that of an incompetent

user, an expert/speedy user or a malicious user. A tester can use his or her knowledge of

possible 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

Page 12: ! Testing for agile teams

What sort of stories should a tester bring?

- User stories that involve edge cases

- User stories that involve malicious intent

- Stories that aren’t 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 can’t be fixed right now

Page 13: ! Testing for agile teams

Challenge: Are Testers Obsolete? With developers doing unit testing, do we still need to have

“QA” testers?

Some teams have fired testers when adopting agile. They have then regretted this.

Some teams are using developers for acceptance testing.

One of the main reasons why we still need dedicated testers – is an instant feedback from testing.

Dedicated testers bring two benefits:

Focus on customer usage over technical implementation

Focus on uncovering flaws over confirming completeness

Page 14: ! Testing for agile teams

Tester's Bill of Rights You have the right to bring up issues related to quality and

process at any time.

You have the right to ask questions of customers and programmers and receive timely answers.

You have the right to ask for and receive help from anyone on the project team, including programmers, managers, and customers.

You have the right to make and update your own estimates for your own tasks and have these included in estimates for stories.

You have the right to the tools you need to do your job in a timely manner.

You have the right to count that all team is responsible for quality of the product

Page 15: ! Testing for agile teams

goals for agile teams

•How can we get testers to be part of a team? Doesn’t this force them to sacrifice their integrity?

•Testers have been an oppressed group and have often stuck together to provide mutual support.

•It’s 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 informal communication within a team.

Each team member should be ready to ware “tester's hat”

Page 16: ! Testing for agile teams

artifacts for agile testing p 106

Metrics that will measure team's progress Test strategy rather than test plan – a long

term plan of actions and activities.

Page 17: ! Testing for agile teams

tools for testinghttp://www.opensourcetesting.org/unit_php.php

Web Protocol Drivers for Functional Testing

PHPUnit http://www.phpunit.de/

Simple test http://www.lastcraft.com/simple_test.php

Load Testing Tools

Celenium ide

Functional testing: FitNesse

Load testing: LoadUI http://www.loadui.org/

SOAP testing http://www.soapui.org

GreenHopper plugin for Jira. http://www.atlassian.com/software/greenhopper/tour/scrum.jsp

Page 18: ! Testing for agile teams

Recommendations

Accept SCRUM Love scrum Live scrum

Page 19: ! Testing for agile teams

Materials Agile testing. A practical guide for testers and agile teams. Lisa Crispin, Janet Gregory,

2010, 464p.

Testing computer software. Cem Kaner, Jack Falk, 2001, 544p.

Wikipedia

Bret Pettichord's blog (http://blogs.stickyminds.com/)

Lisa Crispin's articles http://www.methodsandtools.com/archive/archive.php?id=2

www.testingexperience.com


Top Related