testing in the agile world · −now agile teams are “cross-functional” and include testers 8....
TRANSCRIPT
© 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
Outline
• The Agile principles
• The Challenges
• Agile Transition
2
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
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
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
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
Scrum – a Lean Approach
Vision:Releases, Milestones,
Expected ROIProduct Backlog:
Prioritised requirements
Sprint
24 hr.
Sprint BacklogWorking increment
demonstrated
Scrum
7
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
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
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
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
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
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
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
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
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
© 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
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......
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
The Agile Process
20 12 November 2009
Planning the Release
Defining the Backlog
Working with User Stories and Tasks
Assessing Risk
Management
Reporting
© 2008 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.
Agile Planning Process
2112 November 2009
Agile Planning Process
• Define Projects
• Define Application Group
• Define Release
• Define Sprints
Automatic Generation of product Backlog
Management Hierarchy
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
© 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
User Story Allocation
• Assign User Story to Sprint
• Assign Tasks to Members
• Review completion
• Close out Tasks and UserStories
25 12 November 2009
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
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
© 2008 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.
Issues Management
Issue Management
• Create Issues
• Identify impacted User Story
• Alert impacted User Stories
© 2008 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.
Dashboard and Reporting
Dashboard and Reporting
1. AA Built in Charts and Graphs
2. Excel Report
3. Dashboard
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
© 2009 Hewlett-Packard Development Company, L.P.The information contained herein is subject to change without notice.
Q&A
3612 November 2009