Managing Testing Cycles efficiently



Similar documents
THE BUSINESS VALUE OF AGILE DEVELOPMENT

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

When is Agile the Best Project Management Method? Lana Tylka

Expert Reference Series of White Papers. Intersecting Project Management and Business Analysis

Course Title: Managing the Agile Product Development Life Cycle

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Balancing the Hybrid Development Process. The role of the Business Analyst

Course Title: Planning and Managing Agile Projects

Testing, What is it Good For? Absolutely Everything!

15 Principles of Project Management Success

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

Business Analysis Essentials

Software Development Process

Building Software in an Agile Manner

Lean vs. Agile similarities and differences Created by Stephen Barkar -

Mariusz Chrapko. Before: Software Quality Engineer/ Agile Coach, Motorola, Poland. My Public Profile:

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

The Agile Business Analyst: Eyes for Waste By Ellen Gottesdiener Copyright EBG Consulting, Inc., 2009 EBG Consulting, Inc.:

Software Requirements, Third Edition

Roles: Scrum Master & Project Manager

Build Your Project Using Scrum Methodology #3 of a Series, by Pavan Kumar Gorakavi, M.S., M.B.A, G.M.C.P, C.A.P.M.

Contracting for Agile Software Projects

Lean Agile Scrum Business Value Development and Delivery using Agility. Brenden McGlinchey Software Done Right, Inc.

SPECIFICATION BY EXAMPLE. Gojko Adzic. How successful teams deliver the right software. MANNING Shelter Island

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

Applied Software Project Management

Introduction to Agile

Project Management in Software: Origin of Agile

Is Calculating ROI Meaningful for Agile Projects? December 2014

JOURNAL OF OBJECT TECHNOLOGY

Understanding Agile Project Management

PROJECT SCOPE STATEMENT

Kanban kick- start. By Tomas Björkholm at Crisp, April 2011

Defect Tracking Best Practices

Business Analysts in an Agile World. Christian Antoine

Scrum: A disciplined approach to product quality and project success.

Don t forget the testers

Water-Scrum-Fall Agile Reality for Large Organisations. By Manav Mehan Principal Agile consultant

CompSci Fall 2014 Professors: Robert Duvall, Ajay Patel, Salman Azhar (rcd@cs, ajay.patel, azhar@cs)

Comparing Plan-Driven and Agile Project Approaches

Why All the Fuss About Agile (And Why You Should Care)

No one has to change. Survival is optional. - W. Edwards Deming - Continue your Beyond Budgeting Journey with help from Agile, Lean and Scrum

The Software Life Cycle. CSE 308: Software Engineering

Alternative Development Methodologies

EXIN Agile Scrum Foundation

Sometimes: 16 % Often: 13 % Always: 7 %

T14 "TIMELINES, ARTIFACTS AND OWNERS IN AGILE PROJECTS" Hubert Smits Rally Software Development BIO PRESENTATION 6/21/2007 1:30:00 PM

Testing in Agile methodologies easier or more difficult?

Mastering the Iteration: An Agile White Paper

Optimizing Your Software Process

The Blending of Traditional and Agile Project Management

How To Understand The Limitations Of An Agile Software Development

Quality Assurance in an Agile Environment

Are waterfall and agile project management techniques mutually exclusive? by Eve Mitchell, PwC. 22 MARCH

Agile Testing. What Students Learn

Successful Strategies for Custom Software Development

Why the Traditional Contract for Software Development is Flawed

Frank Cervone Vice Chancellor for Information Services and Chief Information Officer Purdue University Calumet January 17, 2012 CARLI Anatomy of a

Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper

Agile Software Development

Lean Software Development and Kanban

Executive Guide to SAFe 24 July An Executive s Guide to the Scaled Agile Framework.

Scrum vs. Kanban vs. Scrumban

Transitioning from Waterfall: The Benefits of Becoming Agile. ASPE Web Seminar Friday, February 27 th, 2015

I m an Alien... A Business Analyst in an Agile World Dorothy Tudor - TCC ABC 2014

Scale agile throughout the enterprise A PwC point of view

Agile Notetaker & Scrum Reference. Designed by Axosoft, the creators of OnTime the #1 selling scrum software.

Secure Code Development

AGILE - QUICK GUIDE AGILE - PRIMER

WHY THE WATERFALL MODEL DOESN T WORK

Selling Agile to the CFO: A Guide for Development Teams

Implementing Continuous Integration Testing Prepared by:

Maximize Resource and Investment: Project Portfolio Management (PPM) Case Study: Design and Delivery of a Global PPM Solution

Project Lifecycle Management (PLM)

Lessons in Estimating Agile vs. Waterfall Agile and Waterfall. Jerry Richardson, PMP Sohail Thaker, PMP

SharePoint Project Management: The Key to Successful User Adoption

This alignment chart was designed specifically for the use of Red River College. These alignments have not been verified or endorsed by the IIBA.

Agile Team Roles Product Owner & ScrumMaster. Brian Adkins Rick Smith

In today s acquisition environment,

Agile Software Development

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

W hitepapers. Delighting Vodafone Turkey s Customers via Agile Transformation

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

SharePoint Project Management: The Key to Successful User Adoption

Waterfall vs. Agile Methodology

Applying Agile Project Management to a Customized Moodle Implementation

SCM & Agile Business Intelligence. Anja Cielen

Your Agile Team s Indispensible Asset

Moderator: Albert Jeffrey Moore, ASA, MAAA. Presenters: Albert Jeffrey Moore, ASA, MAAA Kelly J. Rabin, FSA, MAAA Steven L. Stockman, ASA, MAAA

Rapid Development & Software Project Survival Guide Steve McConnell Dave Root (Developed with Mel Rosso-Llopart)

Transcription:

Managing Testing Cycles efficiently p. 1 of 26 Managing Testing Cycles efficiently Yury Makedonov (416) 481-8685 yury@ivm-s.com http://www.softwaretestconsulting.com Copyright 2006 Yury Makedonov 1 Introduction Sometimes the testing of a product consists of several so called Testing Cycles. To manage the Testing Cycles we have to better understand their nature. In this presentation we discuss the different reasons for why these Testing Cycles can happen and how to handle them. Managing Testing Cycles efficiently, 2006 Yury Makedonov 2

Managing Testing Cycles efficiently p. 2 of 26 Agenda The following types of Testing Cycles will be discussed: Real Testing Cycles Defect Fixing Cycles Code Fixing Cycles Design Fixing Cycles Requirements Fixing Cycles Death March Cycles Managing Testing Cycles efficiently, 2006 Yury Makedonov 3 Real Testing Cycles Sometimes we group all test cases according to their timing or hierarchy, e.g.: Cycle 1: Transactional test cases (invoices, purchase orders, etc.) Cycle 2: Weekly cheque run Cycle 3: Month-end reports and batches This approach is typically used in complex System Integration Testing projects. We plan and manage these testing cycles using standard project management techniques. Managing Testing Cycles efficiently, 2006 Yury Makedonov 4

Managing Testing Cycles efficiently p. 3 of 26 Testing Cycles in an Agile environment The Testing Cycle term is not used in: Extreme Programming, Scrum, Lean Software Development etc. In case of an Agile process: Testing is happening concurrently with development A team starts another iteration regardless of how many defects are discovered. Managing Testing Cycles efficiently, 2006 Yury Makedonov 5 Testing Cycles in Agile environment New iteration might be devoted to new features or to defect fixing, but the term Testing Cycle is not used. The development backlog consists of: New features to implement Defects to fix Defects are treated the same way as new features. These processes have no need for special Testing Cycles. It looks like these guys have everything under control. Managing Testing Cycles efficiently, 2006 Yury Makedonov 6

Managing Testing Cycles efficiently p. 4 of 26 Testing Cycles in Waterfall SDLC Typically we hear about Testing Cycles in projects which use Waterfall SDLC or its derivatives. Testers discover and report defects Developers fix these defects and send a new release for testing Apparently these are Defect Fixing Cycles! So, typically the Testing Cycles term is used in a Waterfall development process to describe different Defect Fixing Cycles. Managing Testing Cycles efficiently, 2006 Yury Makedonov 7 Different Defect Fixing Cycles Requirements Requirements Fixing Cycles Design Design Fixing Cycles Coding Code Fixing Cycles Testing Managing Testing Cycles efficiently, 2006 Yury Makedonov 8

Managing Testing Cycles efficiently p. 5 of 26 Defect Fixing Cycles vs. Testing Cycles Why do these Testing Cycles happen in Waterfall but not Agile processes? Why do managers use such imprecise and misleading terms? Typically managers are not stupid. They are apparently trying to reach certain goals. What are these goals? Managing Testing Cycles efficiently, 2006 Yury Makedonov 9 Waterfall SDLC: Requirements Design Coding According to this model : The development of requirements is finished before the start of a design phase. Design is finished before the start of a coding phase. Coding is finished before the start of testing. Testing Managing Testing Cycles efficiently, 2006 Yury Makedonov 10

Managing Testing Cycles efficiently p. 6 of 26 Waterfall SDLC: Requirements Design These tasks are used for: Budgeting, Planning, Status reporting from the very bottom of the organization to the very top. Coding Testing Managing Testing Cycles efficiently, 2006 Yury Makedonov 11 Waterfall SDLC: Requirements Design Coding Testing In theory, there is no difference between theory and practice. In practice, there is... : In real life this theoretical model sometimes doesn t work. Managers just pretend that their projects follows this model. They use this Waterfall terminology to maintain the illusion that they are in complete control of a project. Managing Testing Cycles efficiently, 2006 Yury Makedonov 12

Managing Testing Cycles efficiently p. 7 of 26 Different Defect Fixing Cycles Requirements Requirements Fixing Cycles Design Design Fixing Cycles Coding Code Fixing Cycles Testing Managing Testing Cycles efficiently, 2006 Yury Makedonov 13 Terminological mind tricks Testing Cycles are just terminological mind tricks. Why are managers willing to lose efficiency through the use of such imprecise and erroneous language? Why are managers playing these games? Are these games innocent or not? We won t discuss why such tricks are sometimes used by manager magicians in mature, hierarchical organizations. It s outside the scope of this presentation. Managing Testing Cycles efficiently, 2006 Yury Makedonov 14

Managing Testing Cycles efficiently p. 8 of 26 Survival of terminological mind tricks Do not fight for better and cleaner language at any cost. Remember that the managers already made their choice. Let s instead discuss what testers should do to better handle this situation. Managing Testing Cycles efficiently, 2006 Yury Makedonov 15 Code Fixing Cycles 1 Code Fixing Cycles Managing Testing Cycles efficiently, 2006 Yury Makedonov 16

Managing Testing Cycles efficiently p. 9 of 26 Code Fixing Cycles Coding Testing Testers are just doing their job they report defects and verify whether they are fixed or not. Everything is simple unless there is a request to plan such Testing Cycles in advance: Number of these cycles Duration of these cycles Managing Testing Cycles efficiently, 2006 Yury Makedonov 17 Planning Code Fixing Cycles Testers can t create such plans because it was not them who created these defects. This is just a game! Give some reasonable data: Use numbers from previous releases to estimate the duration and the number of these testing cycles. Use your best guesstimates for a new project. Clearly describe your assumptions. There is no value in spending a lot of time working on such plan. Pass the ball back to the developers - send your estimate back to developers and the PM for review and approval. Managing Testing Cycles efficiently, 2006 Yury Makedonov 18

Managing Testing Cycles efficiently p. 10 of 26 Design Fixing Cycles 2 Design Fixing Cycles Managing Testing Cycles efficiently, 2006 Yury Makedonov 19 Design Fixing Cycles Design Coding Testing They are rather similar to code fixing cycles. The risk is that a major design defect may require a significant redesign and a lot of coding to repair it. You just can t plan for this in advance. Managing Testing Cycles efficiently, 2006 Yury Makedonov 20

Managing Testing Cycles efficiently p. 11 of 26 Requirement Fixing Cycles 3 Requirement Fixing Cycles Managing Testing Cycles efficiently, 2006 Yury Makedonov 21 Requirement Fixing Cycles Requirements Design Coding Testing These are typically the most complex cycles to handle. We have to understand the root cause of these requirement changes. New test cases are required. Managing Testing Cycles efficiently, 2006 Yury Makedonov 22

Managing Testing Cycles efficiently p. 12 of 26 Requirement changes In a mass market company the requirements for a specific release are typically pretty solid. All new ideas are incorporated into the requirements for the next release to avoid disruption, and to decrease the time to market for the release under development. Requirements are typically much less stable in case of custom software when a real customer is present. The problem is the most severe when a customer doesn t have a mature software acquisition process and doesn t have recent software acquisition experience. Managing Testing Cycles efficiently, 2006 Yury Makedonov 23 Root cause of Requirement Fixing cycles Let s take a look how requirements were developed: The Business Analyst (BA) talked to users and stakeholders. Users and stakeholders explained what they needed. The Business Analyst got a perception that he understood these users. Managing Testing Cycles efficiently, 2006 Yury Makedonov 24

Managing Testing Cycles efficiently p. 13 of 26 Root cause of Requirement Fixing cycles In reality the users and the Business Analyst were speaking different languages: they used different meanings of the same English words, considered different contexts, made different assumptions. As a result the Business Analyst significantly misinterpreted the application users needs and created a flawed requirements document. Managing Testing Cycles efficiently, 2006 Yury Makedonov 25 When a product was delivered Customer: This is not what we wanted! Managing Testing Cycles efficiently, 2006 Yury Makedonov 26

Managing Testing Cycles efficiently p. 14 of 26 A case study of Requirement Fixing cycles It was a new application for the sales department (~100 people) of a division of a big company. The goal of this department was to configure and sell telecommunication products. The new application was to replace an existing legacy Client/Server application. The modern web application was to have a sexy web interface and more functionality. This department did not have an established software acquisition/implementation process. The vendor was a start-up company trying to establish itself. 10-15 developers were working on this project initially. Managing Testing Cycles efficiently, 2006 Yury Makedonov 27 A case study of Requirement Fixing cycles This project followed the classic review and sign-off approach: Requirements were reviewed and signed off Design of the system was reviewed and signed off Specifications were reviewed and signed off Development was finished and tested by the vendor The first attempt to deliver the application to the customer failed. The customer s reaction was: This is not what we wanted! Managing Testing Cycles efficiently, 2006 Yury Makedonov 28

Managing Testing Cycles efficiently p. 15 of 26 Customer: This is not what we wanted! Managing Testing Cycles efficiently, 2006 Yury Makedonov 29 Episode II - One more attempt The requirements were modified using the same review/sign off approach. The vendor implemented these updated requirements. To make the acceptance process more organized the customer brought in an external Test Manager to supervise the user acceptance testing. Managing Testing Cycles efficiently, 2006 Yury Makedonov 30

Managing Testing Cycles efficiently p. 16 of 26 Development of acceptance test cases End users were brought to the project team to develop acceptance test cases to verify the requirements. They started working together with professional testers and were trained on how to develop test cases. Users were asked to use their own language when writing these test cases. They ranked all existing requirements and started developing test cases for the most important requirements. Managing Testing Cycles efficiently, 2006 Yury Makedonov 31 Development of acceptance test cases The first version of the test cases was incomprehensible for professional testers and developers. The test cases were modified and the second version could be understood by both testers and developers. Further on these acceptance test cases came to be used instead of the original requirements. These test cases still had many errors but nevertheless were much better than original and revised requirements. Managing Testing Cycles efficiently, 2006 Yury Makedonov 32

Managing Testing Cycles efficiently p. 17 of 26 Start of testing Users started testing as soon as acceptance test cases for the major functions were developed. The first round of testing was a complete disaster: Most test cases failed. It was impossible to even initiate the execution of many test cases - they depended on the successful executions of other test cases. Many Severity 1 and Severity 2 defects were recorded (high severity defects). Managing Testing Cycles efficiently, 2006 Yury Makedonov 33 Change Control Board established To better manage this project a Change Control Board was established. It consisted of: the project sponsor, users of the application (acceptance testers) and the developers managers. The Board approved a list of defects (including several missing functions) to be fixed. Only defects of the highest severities ( Severity 1 and Severity 2 ) were to be fixed. Managing Testing Cycles efficiently, 2006 Yury Makedonov 34

Managing Testing Cycles efficiently p. 18 of 26 Defect fixing The developers were not allowed to fix any defect or implement any new feature without the approval of this board. The developers were allowed to work only on defects of the highest priority and defects that prevented the execution of major test cases. The repair of not so severe defects was postponed despite the developers promises that some of them required only 10 to 30 minutes to fix. Managing Testing Cycles efficiently, 2006 Yury Makedonov 35 Role of end users The vendor had daily builds delivered for testing. End users (acceptance testers) were available to clarify specific details of test cases (requirements) and defect reports for developers. Those clarifications were important because initially the developers had a lot of problems interpreting the test cases and defect reports. Development of new acceptance test cases continued. Managing Testing Cycles efficiently, 2006 Yury Makedonov 36

Managing Testing Cycles efficiently p. 19 of 26 Role of end users Why were end users more efficient at developing and executing test cases? They have working knowledge of their business how to configure a product and create an order. They were able to use their knowledge better when creating and executing test cases than when talking to a business analyst and trying to understand his gibberish language. Managing Testing Cycles efficiently, 2006 Yury Makedonov 37 Change Control Board s role The Change Control Board discussed: New test cases, which were essentially new requirements, Progress of testing, Fixed defects, New discovered defects, Defects reported as fixed by developers that were failed by acceptance testers. Priority of remaining defects and additional new defects were reviewed and revaluated every day. Managing Testing Cycles efficiently, 2006 Yury Makedonov 38

Managing Testing Cycles efficiently p. 20 of 26 Requirement Fixing Cycles recommendations What allowed for the efficient management of Testing Cycles on this project: Active user involvement, instant feedback Active involvement of the project sponsor, fast decision making. Co-location, effective communication Iterative and incremental development in a customer selected order. The same approach can be recommended for any project when significant changes in requirements are expected. Managing Testing Cycles efficiently, 2006 Yury Makedonov 39 Death March Cycles 3 Death March Cycles Managing Testing Cycles efficiently, 2006 Yury Makedonov 40

Managing Testing Cycles efficiently p. 21 of 26 Death March Cycles Requirements Design Coding Testing Developers and managers do not believe that they will meet a deadline. Developers just throw an unfinished product over the wall for testing, pretending that development was completed. Testers are pressured to confirm that this release is ready for production. Managing Testing Cycles efficiently, 2006 Yury Makedonov 41 Death March Cycles Most people do not enjoy this game. This game might be dangerous. You may develop adversarial relationships with developers and turn some of your developer-friends into enemies. You may even lose your mental or physical health. Managing Testing Cycles efficiently, 2006 Yury Makedonov 42

Managing Testing Cycles efficiently p. 22 of 26 How to spot a Death March project Ambiguous chain of commands e.g.: You were put in charge of User Acceptance Testing but have no access to the project owner or a customer PM. You were brought in as a test expert to help a customer with User Acceptance Testing but were paid by the software vendor. You are not getting answers for your questions; escalated issues are not being resolved. Testers are pressured to certify a release for production. Acceptance testing starts with an obviously unfinished and unusually buggy product. Managing Testing Cycles efficiently, 2006 Yury Makedonov 43 Death March testing Try avoiding adversarial relationships with developers you are members of the same team and depend on each other s help. Provide honest feedback to developers. They are working on defect fixes they need this information. Do not forget to properly document all defects. Proper record keeping is your best friend under these circumstances. Managing Testing Cycles efficiently, 2006 Yury Makedonov 44

Managing Testing Cycles efficiently p. 23 of 26 Death March status reporting Tracking the delivered functionality: Managing Testing Cycles efficiently, 2006 Yury Makedonov 45 Death March providing options Possible options when a deadline can t be met: Breaking a big release into several smaller releases and delivering a bare minimum release by a deadline. Field trial delivering a release only to a subset of all customers. Pilot moving an application into the production environment for further testing. Managing Testing Cycles efficiently, 2006 Yury Makedonov 46

Managing Testing Cycles efficiently p. 24 of 26 Death March summary Quit? After all you only live once. What to do: Provide honest feedback to developers They are working on defect fixes they need this information. Provide honest feedback to management. This information may help them make some important desisions. Provide management with additional options. What not to do: Do not provide an overly optimistic status report. Managing Testing Cycles efficiently, 2006 Yury Makedonov 47 Conclusion To successfully manage Testing Cycles you have to understand their nature and use the corresponding techniques. Managing Testing Cycles efficiently, 2006 Yury Makedonov 48

Managing Testing Cycles efficiently p. 25 of 26 Q & A Questions? Managing Testing Cycles efficiently, 2006 Yury Makedonov 49 Contact Information Yury Makedonov Principal Consultant IVM-S (416) 481-8685 yury@ivm-s.com http://www.softwaretestconsulting.com Managing Testing Cycles efficiently, 2006 Yury Makedonov 50

Managing Testing Cycles efficiently p. 26 of 26 Appendix further reading The Winston Royce paper, "Managing the Development of Large Software Systems The Edward Yourdon book, Death March Google, Wikipedia, etc. Managing Testing Cycles efficiently, 2006 Yury Makedonov 51