Archive for the ‘software test metrics’ Category
Sunday, November 28th, 2010 by Rex Black
As regular readers of this blog know, from time to time I like to throw a topic out for discussion and see what comes of it. It’s that time.
I have said (more than once) that most companies manage their holiday parties more rigorously and quantitatively than they manage the quality of their software. That’s not just a throwaway snarky line: It’s a fact. You can go the treasurer, CFO, head accountant, whatever the moneybags person is called in any organization worth calling an organization and ask that person, “How much money did you spend on holiday parties last year?” You’ll get an answer. You can ask people at that same organization, “What benefits did you receive from those parties?” You’ll get an answer (albeit probably not as quantitative).
Now, try this experiment: Ask Mr. or Ms. Moneybags, “How much money did your organization spend on software testing and software quality last year?” While they might be able to answer the first half of that question (about testing), most organizations couldn’t answer the second half, even though a technique for getting a good approximation of the costs of software quality has been around a long time. (For example, check out the free tool here and also the article here.) You can ask them about the benefits received from testing and quality and get the same lack of solid answers most of the time.
Given that people have been accounting for stuff for thousands of years (e.g., I saw a 4,000 year old receipt for donkeys and other sundry items, written in Sumerian cuneiform, in a museum in Japan last month), how to explain this lack of fiscal measurement, given the widely-acknowledged importance of software in the modern economy?
Moving beyond cost, while some of our clients do have reasonably good metrics for product quality (what some call “quality in use metrics”), many companies do not. Some companies that do have such metrics don’t tie those metrics back to what is getting tested. We’ve seen situations where companies knew they had interoperability problems in their data centers and yet, when we asked people who was responsible for interoperability testing, the accountability trail went around in circles and ended up nowhere. Same story for performance and reliability.
So, why does this happen? The cynic in me wants to say that this problem comes down to a lack of legal liability for quality and quality problems. In other words, until organizations are held to the same legal standards for software quality as they would be for other products (e.g., food, cars, etc.), we will see this immature approach to managing and measuring quality. But is it really that simple? What do you think? Comments, please.
Posted in software quality, software test metrics, software testing | 8 Comments »
Thursday, October 21st, 2010 by Rex Black
The smart test manager plans for the future. These plans should cover not only the current project, but also the current decade. How will you succeed as a test manager in the 2010s decade? Here are ten things you must learn to do:
- Connect testing to business value, including measuring effectiveness and efficiency against strategy goals;
- Manage testing on outsourced projects, including outsourcing of testing and outsourcing on Agile projects;
- Perform system integration testing on systems-of-systems projects effectively;
- Test systems that include open source software, and use open source tools;
- Test integration of new systems with legacy systems, and test the maintenance of legacy systems;
- Test effectively and efficientlywhen there’s too much testing work, too little time, and too few resources;
- Deal with the tester “skills gluts” that are created by outsourcing and crowd-sourcing, with millions of entry-level testers;
- Deal with the tester “skills shortages” that are created at the upper end of the skills triangle by these entry-level testers, especially in developing regions;
- Choose the right certifications, including security, tools, ISTQB, technology, and more;
- Manage testing on iterative and Agile projects.
The smart test manager who can do these ten things will be in a strong position to succeed as this decade unfolds. Hear more about the future of test management here.
Tags: agile testing, test management Posted in software test management, software test metrics, software test outsourcing, software test skills, software testing | 6 Comments »
Thursday, September 16th, 2010 by Rex Black
As part of the continuing series of video blog entries, I’m throwing out to the wider software testing and quality community a question: How do we balance the desire–especially in Agile and Lean/Agile projects–to enjoy the efficiency of lightweight record-keeping, while at the same time having enough visibility into project, process, and product status, including testing and quality metrics?
For a little video context on my question, check out: How to Balance Metrics, Lean, and Agile when Measuring Software Testing and Quality
I’d be interested in hearing from people as to how their projects are achieving balance here, and also in anecdotes about when they are not achieving balance.
Tags: Agile, Lean, software metrics, software quality, software testing Posted in software quality, software test management, software test metrics, software testing | 4 Comments »
Thursday, September 9th, 2010 by Rex Black
I recently gave a workshop at the STANZ conference, first in Wellington and then in Sydney. In this workshop, I mentioned that connecting software testing to business value is a key test management challenge of the 2010 decade. (Of course, it’s really been a challenge for the entire time there has been software testing, but it’s a challenge we’ve yet to resolve.) Everyone in b0th audiences agreed, and a number of people offered examples of how this challenge was affecting them.
Earlier this week, I gave a webinar on how to calculate the return on the software testing investment. You can listen to a recording of that webinar if you missed it.
In that webinar, I walked through a case study of calculating software testing ROI. This case study was described in an article originally published in Software Test and Performance magazine, and you can now find the article here on the RBCS website.
After the webinar, a bunch of people sent e-mails saying, “Hey, could you please post the spreadsheet that you walked through during the webinar?” Here at RBCS, we like to say yes to our friends, clients, and supporters, so we did. You can find the free software testing ROI spreadsheet on our Advanced Library now, under the name Case Study Info Appliance Test ROI.xls.
Before you use the spreadsheet, I suggest you read the article I mentioned above. The article explains how the spreadsheet works and explains the case study numbers included in the spreadsheet by way of example.
Tags: software testing, software testing metrics, software testing ROI Posted in software test management, software test metrics, software test templates, software testing | No Comments »
Friday, August 20th, 2010 by Rex Black
I took a few moments today to record another video blog entry, which you can find at Regional Software Testing Immaturity: Fact or Fallacy?
Here’s the synopsis: I’m in Los Angeles, on my way to the STANZ conference in Australia and New Zealand. That and other recent international trips have gotten me thinking about something that I often hear at such international conferences, which are comments along the lines of, “You know, software testing as a profession and a practice is really immature in region X,” where region X might or might not be where I’m at. Based on my experience with clients around the world, though, the gap isn’t as big as people often think it is. Is software testing actually significantly less mature in some regions than others? What has your experience been? I’d be interested in opinions, case studies, and stories from you, especially the many international readers of this blog but also people in North America.
Tags: software test management, software testing, testing immaturity Posted in best practices, software test management, software test metrics, software test outsourcing, software testing | 5 Comments »
Thursday, August 12th, 2010 by Rex Black
When I wrote my book Critical Testing Processes in the early 2000s, I started with the premise that some test processes are critical, some are not. I designed this lightweight framework for test process assessment and improvement in order to focus the test team and test manager on a few test areas that they simply must do properly. This contrasts with other, more expansive, and more complex frameworks. In addition, the Critical Testing Processes (CTP) framework eschews the prescriptive elements of other frameworks because it does not impose an arbitrary, staged maturity model.
What’s the problem with prescriptive models? In our consulting work, we have found that businesses want to make improvements based on the business value of the improvement and the organizational pain that improvement will alleviate. A simplistic maturity rating might lead a business to make improvements in parts of the overall software process or test process that are actually less problematic or less important than other parts of the process simply because the model listed them in order.
CTP is a non-prescriptive process model. It describes the important software processes and what should happen in them, but it doesn’t put them in any order of improvement. This makes CTP a very flexible model. It allows you to identify and deal with specific challenges to your test processes. It identifies various attributes of good processes, both quantitative and qualitative. It allows you to use business value and organizational pain to select the order and importance of improvements. It is also adaptable to all software development lifecycle models.
Since CTP focuses on a small number of processes, how are those processes selected? What is a critical testing process? Here’s a quick way to think about it: If a test team executes the critical testing processes well, it will almost always succeed, but if it executes these activities poorly, even talented individual testers and test managers will usually fail. Let’s expand this definition a bit.
First, I defined a process as some sequence of actions, observations, and decisions. Next, I defined testing as the activities involved in planning, preparing, performing, and perfecting the assessing of the quality of a system. So, with a definition of a test process firmly in hand, what makes a test process a critical test process? I applied four criteria:
- Is the process repeated frequently, so that it affects efficiency of the test team and the project team?
- Is the process highly cooperative, involving a large number of people, particularly cross-functionally, so that it affects test team and project team cohesion and cooperation?
- Is the process visible to peers and superiors, so that it affects the credibility of the test team?
- Is the process linked to project success, in such a way as to affect project team or test team effectiveness?
In other words, a critical test process directly and significantly affects the test team’s ability to find bugs, build confidence, reduce risks, and generate information.
Based on these criteria, I identified the following twelve critical testing processes:
- Testing. The overall process, viewed at a macro, strategic level. It consists of eleven constituent critical testing processes.
- Establishing context. This process aligns testing within the project and the organization. It clarifies expectations on all sides. It establishes the groundwork for tailoring all other testing processes.
- Quality risk analysis. This process identifies the key risks to system quality. It aligns testing with the key risks to system quality. It builds quality and test stakeholder consensus around what is to be tested (and how much) and what is not to be tested (and why).
- Test estimation: This process balances the costs and time required for testing against project needs and risks. It accurately and actionably forecasts the tasks and duration of testing. It demonstrates the return on the testing investment to justify the amount of test work requested.
- Test planning. This process builds consensus and commitment among test team and broader project team participants. It creates a detailed map for all test participants. It captures information for retrospectives and future projects.
- Test team development. Since testing is only as good as the team that does it, this process matches test team skills to the critical test tasks. It assures competence in the critical skills areas. It continuously aligns team capabilities with organizational value of testing.
- Test system development. This process ensures coverage of the critical risks to system quality. It creates tests that reproduce the customers’ and users’ experiences of quality. It balances resource and time requirements against criticality of risk. It includes test cases, test data, test procedures, test environments, and other support material.
- Test release management. If we don’t have the test object, we can’t test it. If the test items don’t work in the test environment, we can’t test them. If each test release is not better than the one before, we’re not on a path for success. So, this process focuses on how to get solid, reliable test releases into the test environment.
- Test execution. This process, the running of test cases and comparison of test results against expected results, generates information about bugs, what works, and what doesn’t. In other words, this is where the value of testing is created. This process consumes significant resources. It occurs at the end of the project and gates project completion.
- Bug reporting. This process creates an opportunity to improve the system (and thus to save money). While test execution generates the value of testing, this process delivers part of the value of testing to the project team, specifically the individual contributors and line managers. It builds tester credibility with programmers.
- Results reporting. This process provides management with the information needed to guide the project. It delivers another part of the value of testing to the project team, particularly line managers, senior managers, and executives. Since test results are often bad news, it separates the message from messenger. It builds tester credibility with managers
- Change management. This process allows the test team and the project team to respond to what they’ve learned so far. It selects the right changes in the right order. It focuses efforts on the highest return-on-investment activities.
You might notice that I’ve described each of these processes in terms of what an optimal process will achieve. If the process does not achieve those standards of capability—and more—then it is not optimal and has room for improvement.
How can you use CTP for assessment and improvement? Test process improvements using CTP begin with an assessment of the existing test process. This assessment will identify which of the twelve test processes are currently done properly and which need improvement. The assessment results in a set of prioritized recommendations for improvements. Whether you use the framework to do your own assessment or hire a consulting firm like RBCS to do it, the assessment should base the recommendations on organizational needs.
Since the assessments are tailorable, they can vary depending on the specific organization and its needs. We have done narrowly focused CTP assessments that looked only at one test team, we have done CTP assessments that looked only at a one or two test processes like the test system, and we have done broad CTP assessments that looked at everything that affects quality. So, while CTP assessments vary, we tend to examine the following metrics during a CTP assessment:
- Defect detection percentage
- Return on the testing investment
- Requirements coverage and risk coverage
- Test release overhead
- Defect report rejection rate
In addition, we also tend to evaluate the following qualitative factors, among others, during a CTP assessment:
- Test team role and effectiveness
- Usefulness of the test plan
- Test team skills in testing, domain knowledge, and technology
- Value of the defect reports
- Usefulness of test result reports
- Change management utility and balance
Once an assessment has identified opportunities for improvement, the assessor will develop plans to implement this improvement. While the model includes generic guidelines for process improvement for each of the critical testing processes, the assessor is expected to tailor those heavily.
I designed the CTP model to be very flexible. It does assume the primary use of an analytical risk-based testing strategy, balanced with a dynamic testing strategy. However, you can adapt CTP to use other test strategies primarily, such as requirements based, checklist based, or model based.
There are some five to ten metrics for each critical testing process, along with some qualitative evaluations. Now, we don’t typically look at every metric for every process on every single assessment because the selected metrics, like the model itself, are tunable. This results in a customer-centric assessment.
So, what is the value of a CTP assessment? CTP, like any other process model, provides a starting point, a standard framework, and a way of measuring your processes. A process assessment using a process model identifies opportunities to improve your current process that could not be identified by applying continuous process improvement techniques, such as Deming’s Plan-Do-Check-Act (PDCA), to your current existing processes. This is true because techniques such as PDCA are incremental improvement techniques, while process models allow provide a method for quantum leaps in process improvement through the introduction of known best practices.
Properly done, CTP assessments deliver specific recommendations, along with the order in which to implement them. When my associates and I carry out CTP assessments for clients, we typically deliver a 50 to 100 page report with our assessment of the critical testing processes, our recommendations for improving them, the business justification for the improvements, and a roadmap for implementing those improvements. If you look at any two of our assessment reports, you might see very similar recommendations but in very different order. Why? Because each client has a different level of opportunity associated with the recommendation. In some cases, constraints or preconditions can influence the order. Those constraints and levels of opportunity tend to be unique from one organization to another, and a non-prescriptive model adapts to those unique organizational needs.
Let me close with an important note: Whether you use CTP or some other test process assessment model, don’t use process assessments as a one-time activity. Having done an assessment and found opportunities to improve, you should—of course—improve. Furthermore, at regular intervals, you should reassess to see the effect of the changes. Based on that reassessment, you should course correct your process improvement.
Posted in best practices, software test management, software test metrics, software testing | No Comments »
Friday, August 6th, 2010 by Rex Black
The process of negotiating a software testing budget can be painful. Some project managers view testing as a necessary evil that occurs at the end of the project. In these people’s minds, testing costs too much, takes too long, doesn’t help them build the product, and can create hostility between the test team and the rest of the development organization. No wonder people who view testing this way spend as little as possible on it.
Other project managers, though, are inclined to spend more on testing. Why? Smart software managers understand that testing is an investment in quality. Out of the overall project budget, the project managers set aside some money for assessing the product and resolving the bugs that the testers find. Smart test managers have learned how to manage that investment wisely. In such circumstances, the test investment produces a positive return, fits within the overall project schedule, has quantifiable findings, and is seen as a definite contributor to the project.
As Phil Crosby wrote, “quality is free.” This can be demonstrated by breaking down quality related costs as follows:
Cquality=Cconformance+Cnonconformance
Conformance costs include prevention costs and appraisal costs. Prevention costs are moneys spent on quality assurance—tasks like code reviews, walkthroughs, or inspections, requirements definition, and other activities that promote good software. Appraisal costs include moneys spent planning test activities, developing test cases and data, and executing those cases—once.
Nonconformance costs come in two flavors, internal failures and external failures. The costs of internal failure include all expenses that arise when test cases fail the first time they’re run—as they often do. Think through the process: The tester researches and reports the failure, the developer finds and fixes the fault, the build engineer produces a new release, and the tester retests the new release to confirm the fix and to check for regression. The costs of external failure are those incurred when, rather than a tester finding a bug, the customer does. In these cases, not only does the same process described above occur, but you also incur the technical support overhead and the more expensive process of releasing a fix to the field rather than to the test lab. In addition, consider the intangible costs: Angry customers, damage to the company image, lost business, and maybe even lawsuits.
Two observations lay the foundation for the enlightened view of testing as an investment. First, like any cost equation in business, we will want to minimize the cost of quality. Second, while it is often cheaper to prevent problems than to repair them, if we must repair problems, internal failures cost less than external failures.
Let’s look at a hypothetical case study, illustrated in the figure below. Assume we have a software product in the field, with one new release every quarter. On average, each release contains 1,000 “must-fix” bugs—unacceptable defects—which we identify and repair over the life of the release. Currently, developers find and fix 250 of those bugs during development, while the customers find the rest. Cost of quality accounting shows that, on average, each pre-release defect costs $10, while field failures cost $1,000. As shown in the “No Formal Testing” column in the figure below, our cost of quality is three-quarters of a million dollars—and customers are mad! So, we invest $70,000 per quarterly release in a manual testing process. The “Manual Testing” column shows how profitable this investment is. The testers find 350 bugs before the release, which cuts almost in half the number of bugs found by customers. Not only does this make the customers happier, but, because cost of quality accounting shows that we pay only $100 on average for each bug found by testers, our total cost of quality has dropped to about half a million dollars. Our ROI on this $70,000 investment is 350%.
 Return on the Software Testing Investment
In some cases, we can do even better. For example, suppose that we invest $150,000 in test automation tools, amortizing that investment over twelve quarterly releases, and manage to find about 40% more bugs? Finding 500 bugs in the test process would lower the overall customer bug find count for each release to 250—a huge improvement over the initial situation. In addition, cost of quality would fall to a little under $400,000, a 445% return on investment.
Cost of quality analyses on software process improvement bear out these figures. We have seen clients who enjoy return on the software testing investment that ranges anywhere from 50% to as high as 3200%. While software testing is only part of achieving software quality, it is an important part, and a substantial investment is justifiable to achieve such phenomenal gains.
To get started, you’ll need a management team wise enough to look at the cost of quality over the entire life of the software release. A management team that ignores the long term and focuses just on the budget required to get the software out the door initially does not see testing as an investment. Quality is given lip-service when the only priorities are shipping something—anything—on a given schedule and within a given budget.
However, having supportive, far-sighted management is only a necessary—not a sufficient—condition for achieving positive returns on your test investment. Just as in the stock market, there are right and wrong ways to invest. Picking the right tests, managing the appropriate quality risks, using the proper tools and techniques, and driving testing throughout the organization will result in optimal returns, while failure in any one of these areas can mean disappointing or even negative returns. These topics come up again and again in this blog, but if you’d like me to address one or more of them specifically, please let me know.
Posted in software quality, software test management, software test metrics, software testing | No Comments »
Tuesday, June 8th, 2010 by Rex Black
Smart professionals learn continuously. They learn not only from their own experience, but also from the experience of other smart professionals. Learning from other smart people is the essence and origin of best practices. A best practice is an approach to achieving important objectives or completing important tasks that generally gives good results, when applied appropriately and thoughtfully.
I have identified a number of software testing best practices over the years. Some I learned in my own work as a test manager. I have learned many more in my work as a consultant, since I get a chance to work with so many other smart test professionals in that role. Here are five of my favorite software testing best practices:
- Use analytical risk based testing strategies
- Define realistic objectives for testing, with metrics
- Institute continuous test process improvement based on lessons learned from previous projects
- Have trained and certified test teams
- Distribute testing work intelligently
You can listen to me explain these five software testing best practices in a recent webinar. I’ve also included links above for webinars that deal with some of these software testing best practices specifically.
Tags: software testing, software testing best practices Posted in best practices, risk based testing, software test metrics, software testing | No Comments »
Sunday, June 6th, 2010 by Rex Black
If you have adopted risk based testing and are using it on projects, how do you know if you are doing it properly? Measure the effectiveness, of course.
I’ve discussed good software testing metrics previously. Good metrics for a process derive from the objectives that process serves. So, let’s look at the four typical objectives of risk based testing and how we might measure effectiveness.
- We want to find important bugs early in test execution (“find the scary stuff first”). So, measure whether the critical bugs (however you classify bugs) are found in the first half of test execution period.
- We want to allocate test execution effort appropriately (“pick the right tests”). So, measure defect detection effectiveness of for the critical bugs and for all bugs, and ensure that the metric for critical bugs is higher than for all bugs.
- We want to help management make a good, risk-aware release decision (“balance the risks”). This involves surveying the project management team. Do they rate the test reports rated as effective at this goal? Do the test reports give them the information they need?
- We want to be able to triage tests if schedule pressure requires (“under pressure, drop the least-worrisome tests”). So, check whether the risk priority for all skipped tests is less than or equal to the risk priority for every test that was run.
After each project, you can use these metrics to assess the effective implementation of risk based testing.
Tags: risk based testing, software testing, testing metrics Posted in risk based testing, software test metrics, software testing | No Comments »
Sunday, May 30th, 2010 by Rex Black
Next week, I’ll be in Germany for the Testing and Finance conference, giving a keynote speech on how testing professionals and teams can satisfy their stakeholders. One of the key themes of that presentation is the following:
There are a wide variety of groups with an interest in testing and quality on each project; these are testing stakeholders. Each stakeholder group has objectives and expectations for the testing work that will occur.
When we do test assessments for our clients, we often find that test teams are not satisfying their stakeholders.
Why? Well, many times, what the testers think the stakeholders need and expect from testing differs from what the stakeholders actually need and expect. In order to understand the stakeholder’s true objectives and expectations, testers need to talk to each stakeholder group. Since in many cases the stakeholders have not thought about this issue before, these talks often take the form of an iterative, brainstorming discussion between testers and stakeholders to articulate and define these objectives and expectations.
To truly satisfy these stakeholders, the test team needs to achieve these objectives effectively, efficiently, and elegantly.
- Effectiveness: satisfying objectives and expectations to some reasonable degree.
- Efficiency: maximizing the value delivered for the resources invested.
- Elegance: achieving effectiveness and efficiency in a graceful, well-executed fashion.
The next step of defining these objectives, and what it means to achieve them effectively, efficiently, and elegantly, is often to define a set of metrics, along with goals for those metrics. These metrics and their goals allow the test team to demonstrate the value they are delivering. With goals achieved, testers and stakeholders can be confident that testing is delivering satisfying services to the organization.
Are you satisfying your stakeholders? Catch me in Bad Homborg, Germany, on June 8, to discuss the topic with me directly. Or, your can e-mail info@rbcs-us.com to find out when we will post the recorded webinar on the RBCS Digital Library.
Tags: software quality, software test metrics, software testing Posted in software quality, software test metrics, software testing | No Comments »
|