In this post I will try to explain, reason and motivate the need of Testing and business value it adds in a (software) project. The Test effort should be optimized to gain value, neither too less that ends up with low quality nor too much that misses the market time.
I think Test ensures that business value is delivered through good quality product. Testing is an investment that can help to avoid extra costs.
I have worked with (several) software projects where the focus was on developing more features than testing the product before release with quality. So what was the result? customer complaining about low quality software and creating a stress situation for both parties.
I was working closely with a customer in development of a telecom product and understood that they were more concerned about stability than adding more features. At times, I had to reason and motivate the project team to align focus on quality than delivering more features that would jeopardize the stability of the product and above all damage the reputation of the company thus demotivating the team(s). Result? we allocated more time for testing to verify and validate all user scenarios – customer was happy and later we added the features one by one.
But why there is;
- More focus on development
- Quantity is preferred over quality
- Less time dedicated to test activities
- Testing causes unreasonable delays and costs more
- More trust on development activities, all code is well
- Project release schedule constraint, we have to ship it.
I think, there is often a misconception that customer buys product considering number of features over quality. No doubt, features are important, so does the quality of released product and it’s schedule. A software released with low quality with more features might be tempting to buy, but if the features can’t even be used or produces incorrect results then it impacts company’s reputation. Leading to loss of fame and money.
Heinz Ketchup brand motivates about quality as “Quality is to a product what character is to a man,”
The testing delivers value to a project and company in following ways;
A. Testing increases confidence on the product that impacts the reputation of the company. From safety perspective it reduce
the risk of loss or even lives (watch A380 blade off test) and protects company from legal liabilities. If the Mean Time Between Failure (MTBF) is higher then it effects the business of a customer which might result in a fine or compensation for company.
B. Defects which are found during testing are either fixed or documented with work around as the limitations are known. These defects provide information about product quality, process capability and project status. Defect reports also provide information about test progress and exit criteria, if there are defects with high severity then the product should not be released.
Test activities among many other, are one way to achieve quality.
Cliff Hammerschmidt has explained well about balancing and prioritizing Feature vs Schedule Vs Quality as per project needs. The key is to focus on quality, deliver enough working features that adds value to customer in reasonable time frame.
Measuring Test value or Cost of Quality
Cos of Quality (CoQ) (Quality Costs or cost of poor quality) is an established method for measuring efficiency of testing and has four categories related to product defects costs.
- Costs of Prevention (CoP) : Prevents defects from occurring (Examples: Training developers to write secure or maintainable code etc…)
- Costs of Detection (CoD): Detecting the defects (Examples: Review requirements, write test cases, and setting up test environment)
- Costs of Internal Failure (CoIF): Defects found internally and repaired before software delivery
- Costs of External Failure (CoEF): Defects reported by support or customers after delivering the software
There could be two derivations from above;
CoP + CoD is less than CoIF
CoP + CoD + CoIF is less than CoEF
Let’s try to understand it. Depending on the software development life cycle being used. Finding the defect earlier is always beneficial, because if the defect is found later then the cost to fix it will increase. A defect found at development stage will cost less than the defect found during system testing or in live environment, because it costs to find, trouble shoot, fix, verify and regression test.
Test activities are not burden of time, cost and resources on any project. Testing is necessary to ensure that product meets customer requirements with a level of quality that adds value. The effort associated with Testing should be optimized and aligned with project needs without ignoring the quality perspective. It is there to safe guard – the motivation and increase confidence of team on released software, and above all the reputation and trust of customer on a company. Starting Test activities sooner can detect defects earlier to reduce further costs in later stages.
Testers striving for quality