Agile Testing

21
Agile Testing Patrik Wikström

description

 

Transcript of Agile Testing

Page 1: Agile Testing

Agile Testing

Patrik Wikström

Page 2: Agile Testing

Agenda

What is Agile?

Agile Testing

• Techniques

• Agile values in practice

• Skills

Page 3: Agile Testing

Agile development

Short iterations of working software

Provide business value continuously

Extreme Programming, Scrum, Lean Software Development…

Page 4: Agile Testing

The software process steps

Traditional development

Agile development

Page 5: Agile Testing

Main variables of software development

Scope

ScopeTime

Time

Cost

Cost

Traditional development

Agiledevelopment

Locked

Page 6: Agile Testing

The cost of defects

Cost of defect

Time

Testing

Cost of defect

Time

Testing

Traditional development

Agiledevelopment

Page 7: Agile Testing

Agile testing

Work with the customer to define acceptance test

Provide continuous feedback

• To the customer

• To the programmers

Exploratory testing

Automated testing

Programmers do unit testing

Page 8: Agile Testing

Test levels

Unit test

Integration test

System test

Acceptance test

Unit test

Acceptance test

Traditional development

Agiledevelopment

Page 9: Agile Testing

Unit testing

Developer feedback

TDD – Test Driven Development

• Design technique

Run at each check-in

xUnit

Continuous integration

Page 10: Agile Testing

Acceptance testing (1)

Customer feedback

Test the functionality in the current iteration

Run often

Should be automated

Can be done test-first (ATDD)

Page 11: Agile Testing

Acceptance testing (2)

Tools: Open-source, build your own, or commercial

• FitNesse – Table-based acceptance test framework using Wiki

• WATIR – ”Web Application Testing in Ruby” – next seminar

Automation

• Below the GUI

• Collaborate with developers on testability

Page 12: Agile Testing

What’s in an iteration?

Story 1 Story 2

Iteration 1

...

Acceptance test 1.1Acceptance

test 2

Unit test 1.1.1 Unit test 2

Code 2

AT 1.2 AT 1.3

UT 1.1.2 UT 1.1.3 UT 1.2 UT 1.3

Code 1.1.1 C 1.1.2 C 1.1.3 C 1.2 C 1.3

Story 3

Page 13: Agile Testing

Exploratory testing

Exploratory testing is simultaneous learning, test design, and test execution.

What’s the best test I can perform, right now?

James Bach

Tutorial: Exploratory Testing Explained

Malmö, March 9

Page 14: Agile Testing

Non-functional testing

Security, performance, usability

Performed by

• Specialist

• Team

Performed in

• Every iteration

• Last iteration

Page 15: Agile Testing

Pair testing

With testers

• Distribute knowledge between testers

With developers

• Testers learn about the technology used and about automation

• Developers learn about testing

With customers

• Testers learn about the domain

• Customers learn about testing

Page 16: Agile Testing

Agile Values in practice

Individuals and interactions over process and tools

• Work as one team, do not act as the quality police

• Face-to-face communication

Working software over comprehensive documentation

• Lightweight test reporting – “dashboard”

• Automated unit and acceptance tests

Customer collaboration over contract negotiation

Responding to change over following a plan

• Just-in-time test planning

• No BDUF of automation framework

• Refactor automated tests

Page 17: Agile Testing

Controversy / Confusion

All acceptance tests must be automated

All manual tests must be fully scripted with expected outcomes

Programmer-centric view (No testers are needed?)

Terminology

Page 18: Agile Testing

Skills

“Traditional” testing skills

Automation / development

Exploratory testing

Communication and collaboration

• With developers in their language

• With customers in their language

Page 19: Agile Testing

Benefits of being an agile tester

Work together as one team towards a common goal

Less risk of squeezed test period

Test all the time, not just at the end

Page 20: Agile Testing

Thank you for listening!

Any questions?

[email protected]

Page 21: Agile Testing

References

Beck, K. (1999) Extreme Programming Explained: Embrace Change. Addison-Wesley.

Cockburn, A. (2004) Crystal Clear: A Human-Powered Methodology for Small Teams. Addison-Wesley.

Crispin, L., & House, T. (2002) Testing Extreme Programming. Addison-Wesley.

Hendrickson, E. (2004) Agility for Testers. Pacific Northwest Software Quality Conference 2004.

Kohl, J. (2004) Pair Testing. Better Software, Jan 2004.

Pettichord, B. (2004) Agile Testing Challenges. Pacific Northwest Software Quality Conference 2004.

Poppendieck, M. & Poppendieck, T. (2003) Lean Software Development. Addison-Wesley.

Schwaber, K. & Beedle, M. (2001) Agile Software Development with SCRUM. Prentice Hall.