testing in agile methodologies easier or more …...testing in agile methodologies – easier or...

31
Testing in Agile methodologies easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości Systemów Informatycznych [email protected] [email protected]

Upload: others

Post on 26-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

Testing

in Agile methodologies

– easier or more difficult?

Lucjan Stapp

Warsaw University of Technology

Stowarzyszenie Jakości Systemów Informatycznych

[email protected]

[email protected]

Page 2: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

2/31

Professor in Warsaw University of Technology

Author of more than 40 papers, more then 10

are connected with testing;

Ex - believer of Agile methodologies, especially

in testing;

Acting vice-president of Stowarzyszenia

Jakości Systemów Informatycznych (Polish

Testing Board);

Member of ISTQB Dictionary Working Group.

Page 3: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

3/31

Agile manifesto

In February 2001, 17 software developers met at the Snowbird, Utah resort, to discuss lightweight development methods.

They published the Agile Manifesto (Manifesto for Agile Software Development) to define the approach now known as agile software development.

Page 4: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

4/31

Agile manifesto

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 interactions

over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

agilemanifesto.org

Page 5: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

5/31

Agile manifesto

As a result of each iteration we obtain the working software

Only iterative

incremental approach

Page 6: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

6/31

Basic Agile principles:

Working software,

Self-organization and motivation,

Informal communication,

Inspect and adapt,

Customer collaboration:

Welcome changing requirements, even late in development.

Agile manifesto

Page 7: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

7/31

Agile manifesto

Agile methodologies (between others): eXtreme Programming XP, Scrum, Kanban, Dynamic Systems Development Method, Adaptive Software Development, …...

Page 8: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

8/31

How it works?

Agile teams are more effective in desired functionality then “traditional” teams. But less in quality.

Results of Dr. Dobbs Journal Investigations(2008)

0,4

2,7

0,8 0,8

2,3

1,8

2,4

0,8

6,0

5,6

3,0

4,0

4,9

6,0

3,9

4,4

0,0

1,0

2,0

3,0

4,0

5,0

6,0

7,0

Quality Functionality ROI (money) Schedule

Main aspects

Ad-hoc Waterfall Classical Iterative Agile

Page 9: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

9/31

Higher ROI.

Agile teams work in more effective way (but not harder) and should propose needed functionality earlier, hence there is a shorter path to the market and greater profit.

How it works?

Faith DDJ found also that people believe that Agile teams product higher quality (however it is NOT true) then traditional teams, hence one can observe higher satisfaction of stakeholders.

Page 10: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

10/31

“First” popular Agile methodology is Xtreme Programming (XP).

eXtreme Programming

Page 11: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

11/31

Basic XP testing assumptions.

• All code must have unit (module) tests,

• All code must pass all module tests before it can be

released,

• When a failure is found tests are created before the

failure is addressed ,

• Acceptance tests are run often and the results are

published.

eXtreme Programming

Page 12: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

12/31

But: • Tests are taken on module

level (XUnit tests), • 2 builds a week – strong

automation is needed (rather expensive),

• Frequent changes – even on accepted by testers modules,

• There is no place for “business” acceptance tests,

• Systems of systems problem – external integration tests.

eXtreme Programming

Page 13: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

13/31

Daily scrum

Scrum

Page 14: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

14/31

Scrum

Page 15: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

15/31

User Story

Elements of User Story

As… (concrete user)

I want… (problem to be solved)

because… (desired results).

Definition of user satisfaction criteria

Typically as acceptance tests description

Scrum

Page 16: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

16/31

A good user story is:

Independent

Negotiable

Valuable

Estimable

Sized Appropriately

Testable

INVEST

Scrum

Page 17: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

17/31

Scrum

Scrum team does not expect very specific complicated conditions. World wide transaction system for an international bank

A fish trade company in Japan makes a payment to a vendor on Iceland. It should have been a payment in Icelandic Kronur, but it was done in Yen instead. The error is discovered after 9 days and the payment is revised and corrected, however, the interest calculation (value dating)…

From a talk by Hans Buwalda

INVEST –Testable

• Tests concentrate on simple problems

Page 18: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

18/31

Testing in Scrum Testing in Scrum should be iterative. Testers in Scrum must work without complete documentation. Testers in Scrum should be flexible.

Scrum

Page 19: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

19/31

Basic testers activities in Scrum

Scrum

Beginning of the project

Release planning

Sprint planning

Understanding of the project principles

Stories estimation; questions: „What happens, if…?”

Validation of satisfaction conditions , adding new ones

Each sprint

Creation and testing in pairs: Developer and tester

• Write and execute tests for each story,

• Write and execute functional

tests,

• Automate test, • Make exploration tests.

Page 20: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

20/31

Team complement There is no division on developers and testers. Testers should be build in team. But:

Scrum

• How many team members do concentrate on quality problems? (1/10, 2/10 ???);

• “Group thinking” – only positive; • Not enough “business knowledge”

• product owner problem.

Page 21: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

21/31

Unit tests

“Small” integration test

System tests

Acceptance tests

Test Driven Development

Continuous integration

Integration approach

Product owner ;

Increment acceptation

Classic approach vs. Agile

time

Page 22: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

22/31

Ken Beck1 :

Programmers need their own tests to maintain speed and flexibility. These tests may improve quality enough that QA is no longer needed as a Great Wall to protect the customers against the depredations of the Mongrel Programmer Hordes.

1www.soft.com/QualWeek/QW2001/papers/2Q.html

Classic approach vs. Agile

Page 23: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

23/31

But ……

Module tests are limited in finding bugs:

Capers Jones1 found that average effectiveness for unit test is between 25 - 30%.

And Rex Black2 (for American market ) found that good system tests done by independent test team achieves 85% effectiveness in founding bugs.

1Capers Jones: MEASURING DEFECT POTENTIALS AND DEFECT REMOVAL EFFICIENCY

http://www.rbcs-us.com/images/documents/Measuring-Defect-Potentials-and-Defect-Removal-Efficiency.pdf

2 http://www.rbcs-us.com/images/documents/

Classic approach vs. Agile

Page 24: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

24/31

Solution: Two levels of testing: • Internal testing – in Agile team • External testing – independent test team

Solution

Page 25: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

25/31

Typical tasks of external testing: “business” acceptance tests. More complicated tests:

Nonfunctional tests. Ending game

User acceptance tests.

Solution

Page 26: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

26/31

Solution

Independent test team

Release no. k Release no. k+1

New

sto

ries

(changes

+

defe

cts)

Internal tests • TDD

External tests • Acceptance

• UAT • Exploratory • Nonfunctional • Scenario based

New

sto

ries

(changes

+

defe

cts)

Page 27: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

27/31

Example no.1

3 examples

MIS

Management Information System

HR1 HR2 Financial1 Financial7 …..

Page 28: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

28/31

• Only f2f communication • No written requirements

• Based on old existing systems

• Product owner

• Concentrate on financial modules

• Tests

• Only user acceptance • No written information

about incidents

Examples

RESULT: • 6 month delay • Business problems

•No working application

Example no.1

Page 29: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

29/31

• Only f2f communication • No written requirements • Frequent changes • Without info to test team

• Product owner

• Less of business knowledge • Concentrate on security

problems

• Tests • Long time before bugs

closure

Examples

RESULT: • disaster

Example no. 2 NEW FUNCTIONALITY in bank system

Page 30: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

30/31

• 90% written requirements

• Product owner • Concentrate on

performance problems

• Tests • 2 performance testers in

team • 60% time – performance

tests

Examples

RESULT: • In progress • Deadline June 1st • Success??

Example no. 3 Telecom application connected with EURO 2012

Page 31: Testing in Agile methodologies easier or more …...Testing in Agile methodologies – easier or more difficult? Lucjan Stapp Warsaw University of Technology Stowarzyszenie Jakości

31/31

Thanks for your attention