About STP / 877.257.9531
Log In Join Now

Author



Rating

2


Published

Tuesday July 10th 2012 12pm

The Job of Testing

Testing Process

How would you respond to the following question?

"What is the job of testing?"

Please stop reading for about 30 seconds or a minute and internally answer this question. Once you've formulated your answer - or reached an impasse, continue reading.

Mary Poppendieck, an industry expert in lean and agile methodologies, states in her book Implementing Lean Software Development that the following potential response should be labeled as a myth.

Myth: The Job of Testing Is to Find Defects
She then states (..."And the answer is..."):
"The job of tests, and the people that develop and run tests, is to prevent defects, not find them".

I first read this 4 to 5 years ago and it jolted me. My mind set was anchored in "defect detection". Allow me to describe where my thinking, understanding, and practices were then - after a dozen years of experience in software testing and management:
  • I rejoiced each time I or a teammate found a defect and patted ourselves on the back with each one that we reported.
  • I included the number of defects we discovere
  • d in my individual performance appraisal for many of the projects that I tested.
  • I understood vaguely that the cost of fixing defects rises if the defects are detected later in the SDLC.
  • I thought that up-front quality was a developer responsibility which led to random fantasies of "...I hope they do some unit testing."
  • When I participated in walk-throughs of requirements and design documents (many times I did not see these documents until after they were approved), it was difficult to shift gears from a different project that I was actively testing. I did not prepare for the reviews and often multi-tasked as the reviews were facilitated.
This new concept of "defect prevention" captivated me, so I started a quest to understand it better. Although I got satisfaction from finding defects, my test maturity level needed a boost and Mary's statement propelled me in a new direction. In her next sentence, she went further:
"A quality assurance organization should champion processes that build quality into the code from the start rather than test quality in later."
In this section of the book, Mary recommended test driven development and continuous integration to "...get it right at the start." Both of these advanced software engineering practices are developer responsibilities, so I wondered "...how could a software tester transition from detection to prevention?"

Over the next three years, I piloted 2 concurrent efforts on 6 software testing projects
  1. I started logging the defects detected and removed as we improved the requirements, design, and testing artifacts and championed static testing to increase the focus on the document reviews.
  2. I collected defect metrics for each project and shared the results with our business partners after each project.
One of the first metrics we collected was the cost of rework (how much it costs to report, fix, and re-test defects). The chart below was from the first project.


NOTE: We did not discover any requirement defects on this first project. We were just beginning to learn about static testing.

There's nothing new here! There are numerous industry charts and graphs that depict this; however, there was one noteworthy difference – this chart represented real hours and dollars directly from a project in our organization. This increased credibility factor caused our partners to take a second look and consider "...how can we avoid the higher costs associated with finding defects in system testing or production?"

In addition to rework, I tracked and shared the following metrics:
  1. Defect Discovery Rates (percentage of total defects discovered during static testing, system testing, and production)
  2. Defect Leakage % (percentage of requirements and design defects leaking into test or production)
  3. Defect Detection % (percentage of defects discovered before implementation – an indicator of the overall effectiveness of the combined static and dynamic testing)
There was increased awareness and engagement during the document reviews. The project teams discussed and implemented other process improvements. We saw unit testing improve plus much more. In the end, the number of defects discovered during system testing declined by 50-80%. There was less chaos during the project and both development and testing completed ahead of schedule and under budget. I didn't fully understand why this was working, but Capers Jones recently described the benefit of inspections in a recent seminar:
"Inspections give you a double hit – not only are they the best for defect removal, but they are very effective for defect prevention, because the people that participate in inspections stop making bugs in many categories"
Short cuts during static testing (walk-throughs, reviews, and inspections) often lead to a "robbing Peter to pay Paul" reality later in the project, and "Paul" carries a much higher price tag than "Peter". When the document review process is thorough and defects removed are tracked, the project team increases the possibility of the project coming in at or under budget and within the targeted timelines. That's an investment that's worth pursuing.

I'm still learning about defect prevention. I'll be sharing more about what I understand now during the STP Conference in October in Track 502 - "How to Prevent Defects." See you there!

Author:
Dwight Lamppert Senior Test Manager, Franklin Templeton - Dwight has over 15 years of software testing experience in the financial services industry and currently manages Software Testing Process & Metrics at Franklin Templeton. He has managed testing and test resources on small, medium, and large projects. Most recently, he has focused on piloting and promoting a shift to up-front software developmental practices and is a key contributor to developing standards and guidelines for agile development in his company. He is an ASTQB certified tester.

Come see Dwight at the Software Test Professionals Conference in Miami from October 15-18. Dwight will lead session 502: How to Prevent Defects , part of the Test Strategy, Process and Design track.



Comments

You must be logged in to comment.
Retrieving Comments...


Advertisement




Friend SoftwareTestPro on Facebook
Follow @SoftwareTestPro on Twitter
Create or Join a Crew

Tweets You Care About


    



Explore STP