Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8....

33
© 2008 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice. John Fodeh Solution Architect, Global Testing Practice Testing in the Agile World

Transcript of Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8....

Page 1: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

© 2008 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.

John Fodeh

Solution Architect, Global Testing Practice

Testing in the Agile World

Page 2: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Outline

• The Agile principles

• The Challenges

• Agile Transition

2

Page 3: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Iterations and Increments

• Cyclic software development process

• Cycles repeated until desired system capabilities have been reached and customer is satisfied

• Time-boxed rather than feature-boxed

Identify Customer

Requirements

Build/Revise Prototype

Validate with Customer

Prototyping

3

Page 4: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Manifesto for Agile Software Development

“We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

•Individuals and interactions over processes and tools

•Working software over comprehensive documentation

•Customer collaboration over contract negotiation

•Responding to change over following a plan”

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

Source: http://agilemanifesto.org/

4

Page 5: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Agile Principles

• Individuals− Creative, collaborative and fun working environment

− Tight, self-organising teams

• Customer involvement− “User Stories”

− Acceptance testing

• Working software− Frequent delivery of deployable software

− Zero tolerance for defects

• Responsiveness to change

− Short iterations and releases

− Customer involvement

5

Agile

Page 6: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Extreme Programming

• Customer is available

• Coding standards

• Test Driven Development

• Pair programming

• Continuous Integration

• Collective code ownership

• Optimization at the end

• All code must have unit tests

• All unit tests must pass

• When defect are found tests are created

• Acceptance tests are run often

• Test scores are published

• Simplicity

• System metaphor

• CRC* cards for design sessions

• Spike solutions to reduce risk

• No functionality is added early

• Refactor wherever possible

• User stories

• Release planning

• Frequent small releases

• Project Velocity is measured

• Project is divided into iterations

• Iteration planning for each iteration

• Daily Stand-up meetings

• People are moved around Planning Design

CodingTesting

XP Values

•Communication

•Simplicity

•Feedback

•Courage

•Respect

*Class, Responsibilities, and Collaboration6

Page 7: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Scrum – a Lean Approach

Vision:Releases, Milestones,

Expected ROIProduct Backlog:

Prioritised requirements

Sprint

24 hr.

Sprint BacklogWorking increment

demonstrated

Scrum

7

Page 8: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Agile Testing?

• The Agile methodology was created from a development point of view

−Focus was on unit testing

−Exploratory testing

−Role of testers was not clearly defined

• Organisations going Agile where soon to realise the importance of the tester mindset and skills

−Now Agile teams are “Cross-Functional” and include testers

8

Page 9: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Why Testing in Needed• Validating User Stories

− Ensuring accept criteria exist and are testable

− Defect prevention

• Increasing productivity and effectiveness− Adapting best practice such as Test Driven Development

cannot replace testing skills

− Many developers lack the critical mindset and needed competencies

• Managing test assets− Tests become a supplement/replacement for detailed

requirements

− Tests need to be documented and managed in an auditable manner

• Running regressing testing − Manual and automated regression suites help uncover

undesired side-effects of changes9

Page 10: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

The Challenges of Agile

1012 November 2009

Dynamic requirements

and tests

Prioritizing requirements

and tests

Gaining control and

visibility

Composite applications

Lack of commonality

Distribution of teams

Requirements can develop across iterations meaning test plans need to also change

Knowing which requirements to execute first

How do we know who is doing what and when??

De-location of teams acts a catalyst for agile challenges

Teams have been used to working in silos

How do we test multi-layered applications

Page 11: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Automation

• Test automation plays an important role in Agile Development

• Focus on Unit Testing, however higher level testing should also be taken into consideration

• Automation should be built with the agile principles in mind

−Flexible, modular, data-driven test scripts

11

Page 12: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Agile Teams

• Team Size−Emphasis on small teams for effectiveness

−According to Scrum, the recommended team size is 7 (plus/minus 2) sharing the same location

• For bigger and distributed teams:−Divide the project into small independent projects

−Each project has freedom to create the solution to a specific problem or application

−Coordinate activities between the projects

• Coordination− Inter-team meetings (e.g. Scrum of Scrums meetings)

−Specialist roles (e.g. Architecture team)

12

Page 13: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Agile in the Large

• Successful scalability of Agile projects requires a pragmatic management approach

− Visibility and Control

• Effective means for coordination and communication

− Collaboration tools

− Central repository for project assets

• Agility vs. process and documentation burden

− Traceability

− Audit trail

− Reusability

− Impact analysis

− Reporting and metrics13

Page 14: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

People Issues• Agile methodologies initially promoted

the “generalist” role

• However, the need for experts and specialists became evident− Handling bigger teams

− Career advancements

− “Hero cultures”

− Coaches (e.g. during the transition to agile phase)

• A successful approach is to use T-shaped competencies− Cross-functional teams

− Cross-skill set

− Testers also participate in on non-testing tasks14

Management

Testing skills

Domain Knowledge

Technical Expertise

Page 15: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Conclusion

• Agile is about individuals, working software, customer collaboration, and responsiveness to change

• No silver bullet - maturity is required!

• Control, management and visibility is still important, especially with bigger teams

• Pragmatic approach towards processes and tooling

15

Page 16: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

References• Optimize Quality for Business Outcomes: A Practical

Approach to Software Testing− Andreas Golze, Mark Sarbiewski & Alain Zahm

− John Wiley & Sons, 2008, ISBN: 0470404663

• Managing the Testing Process: Practical Tools and Techniques for Managing Hardware and Software Testing − Rex Black

− John Wiley & Sons Inc, 2002, ISBN: 0471223980

• Agile Testing: A Practical Guide for Testers and Agile Teams− Lisa Crispin & Janet Gregory (Author)

− Addison-Wesley Professional, 2009, ISBN: 0321534468

• Agile Project Management with Scrum− Ken Schwaber

− Microsoft Press, 2008, ISBN: 073561993X

• Extreme Programming Refactored: The Case Against XP− Matt Stephens & Doug Rosenberg

− Apress, 2003, ISBN: 1590590961

16

Page 17: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

© 2008 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.

HP’s Agile Accelerator WorkflowGenefa Murphy

Product Manager HP Quality Center

Page 18: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

HP’s Agile Accelerator

• Built on the flexible QC platform

• A framework for rapid agile adoption

• Supports all aspects of agile development:

• Requirements • Process • Testing • Development

IS......

Page 19: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

SDLC Management

Agile Project Planning

HP’s Agile Accelerator Solution

User Story Definition/Task

Definition

Agile Development Management

Accurately define, capture,and manage Agile process

• User Story Management• Task Management• Effort Estimation• Agile Reporting

Release/Sprint/Backlog

Management

Planning

CompleteAgile

lifecycle coverage

DeliveryHP Agile Accelerator

STLC Management

Agile Quality Management

• Testing Task Management• Test Execution Management• Defect Reporting• Test Metrics and Progress

Iterative Incremental Adoptive

Agile Dashboard and Reporting

•Burn Up/Burn Down Charts

•Cross Sprint Velocity Charts

•Agile Development Progress Dashboard

•Agile Testing Progress Dashboard

Page 20: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

The Agile Process

20 12 November 2009

Planning the Release

Defining the Backlog

Working with User Stories and Tasks

Assessing Risk

Management

Reporting

Page 21: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

© 2008 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.

Agile Planning Process

2112 November 2009

Page 22: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Agile Planning Process

• Define Projects

• Define Application Group

• Define Release

• Define Sprints

Automatic Generation of product Backlog

Management Hierarchy

Page 23: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Product Backlog Definition

• Define User Story/Super Story− Assign Priority

− Assign Status

− Assign Teams

− Assign Estimated Hours, Story Points

− Prioritize User Stories

• Assign User Stories to Teams− Assign Current Estimated Hours

− Change Status

− Fit Criteria

− Comments

• Define and Assign Tasks to Teams Members

− Assign Priority

− Assign Status

− Assign Teams

− Assign Estimated Hours, Story Points

Page 24: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

© 2008 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.

User Story Definition and Task Definition

2412 November 2009

Page 25: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

User Story Allocation

• Assign User Story to Sprint

• Assign Tasks to Members

• Review completion

• Close out Tasks and UserStories

25 12 November 2009

Page 26: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

User Story/Task Process Flow

• User Story Process Flow

−Defined

−Draft

−Under Review

−Reviewed

−Ready For Coding

− In Progress

−Completed

−Accepeted

26 12 November 2009

Page 27: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Risk Assessment - User Story/Task Level

• Assign − Business Criticality

− Failure Probability

− Functional Complexity

• Perform Risk Analysis− Roll Up Development time

and testing time to UsersStory level

− Auto assign testing timeto development task

Perform Risk Assessment Prior to CodingUnderstand Risk Variance across User Stories/Sprints Better prioritization of Coding Activities

Risk Analysis User Story Level

Risk Assessment Task Level

Page 28: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

© 2008 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.

Issues Management

Page 29: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Issue Management

• Create Issues

• Identify impacted User Story

• Alert impacted User Stories

Page 30: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

© 2008 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.

Dashboard and Reporting

Page 31: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

Dashboard and Reporting

1. AA Built in Charts and Graphs

2. Excel Report

3. Dashboard

Page 32: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

QC Agile Accelerator – Summary

Supports Agile Practices

Scrum & XP methodology: Release, Sprint, Backlog, User story, Task

Effort Calculation and Roll ups

Task Estimation, Planned, Actual hours

Special User Groups

Product manager, Project Engineers, Scrum Master, …

Supports Complete Agile Lifecycle

From planning to delivery, Dev & testing included

Report project progress and delivered value

Burn-up charts and Burn-down charts, coverage

35

Description Quality Center

Project Management X

Requirements Management X

Test Management X

Defect Management X

Traceability X

Customizable Reports X

Linkages ( Between entities) X

Risk Based Testing X

Impediments X

Themes X

Multiple Teams/Common Backlog X

Detailed Change History X

Records blocking issues X

Version Control X

Page 33: Testing in the Agile World · −Now Agile teams are “Cross-Functional” and include testers 8. ... How do we test multi-layered applications . ... •Agile Testing: A Practical

© 2009 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.

Q&A

3612 November 2009