Measure, Learn, Improve: A Master Plan to Control Software Testing Predictability
Apr 11, 2017
Are you tired of slipping deadlines and missing commitments? Do you feel like the consistency of Software Testing is out of your control? Here is how to improve the predictability of software testing across multiple teams and projects.
Enable Consistent Practices, Processes, and Tools
The foundation of enterprise software testing predictability is built on consistent practices, processes, and tools. Improving the predictability of software testing for a single team is difficult; doing so across multiple enterprise teams working on multiple features is exponentially more difficult.
Software testing predictability relies on the consistency of requirements management, code quality, test management, defects management, test environment management, and much more. The teams that support these activities have the largest impact on their predictability.
If multiple enterprise teams have inconsistent practices, processes, or tools, then these activities will be inconsistent. In order to enable predictable software testing, you have to enable your teams to have consistent practices, processes, and tools.
Standardizing Across Multiple Development Methodologies
It is easy to say that you should ensure everyone is using consistent practices, processes, and tools, but in the enterprise, the reality is that teams will be different. Some development teams may be using Agile practices, while others may be following Waterfall practices. Some of the Agile teams may be practicing Kanban while others are SCRUM.
From a tooling standpoint, different development teams may be using Rally, JIRA, spreadsheets, or Post-it Notes. While standardizing these methodologies and tools is clearly optimal, it may be unrealistic to expect Software Testing to drive those changes.
It is essential that software testing practices, processes, and tools support multiple development methodologies and tools. Support the testing at the team level that makes the teams most productive, and enable the management above the team level to be consistent.
This may sound theoretical, but I assure you it is pragmatic. Empowering teams to do work the way that is best for them while standardizing the management above those teams is exactly what methodologies like the Scaled Agile Framework (SAFe) and enterprise ALM platforms have done for development.
Your organization doesn’t have to be committed to SAFe to use its guidance for improving software testing management consistency. You also don’t have to use guidance from SAFe or any other methodology. You can determine which consistent practices you want to support. Modern enterprise test management tools, just like ALM tools, also help you standardize the management of multiple teams, methodologies, and tools.
Measure Software Testing Predictability
You must measure software testing predictability if you hope to improve it. No one has a simple answer or quick method for improving predictability across all these facets. The only way to start improving predictability across a complex system is to measure it, identify the biggest barriers, and resolve those barriers. Then rinse and repeat until you are executing within a suitable threshold.
It is key in the enterprise to be able to roll up individual team progress across different dimensions such as project, release, feature, or portfolio. You gain better insight faster by viewing the predictability of multiple teams across a release or feature.
It is also critical that you can drill down across different dimensions such as individual, team, project, or feature. For example, if you are viewing a chart of the predictability of testing across features and you see that one feature has far more defects than the rest, you would want to drill down to see how many defects are being found across the different teams that support that feature.
When you drill down, you might see that a particular team has far more defects than the rest of the teams. You will want to drill into that team to determine what the issue is. Now that you have pinpointed where the biggest issues are, you should investigate what is causing the issues and how you can resolve the situation. Over time your predictability will stabilize.
Capture Consistent Historical Insight
A measurement is only as insightful as the context that is provided alongside it. What if I tell you the temperature is eighty-eight degrees? Am I talking about my temperature, my six-month-old daughter’s temperature, or the outside temperature? If I’m talking about the outside temperature, where am I and what time of year is it? What is the historical temperature for this place and time of year? Finally, how reliable is my measurement? Is it coming from the weather service or an old thermometer sitting in the shade of my house?
To measure software testing predictability you have to have reliable measurements across all teams, features, releases, and portfolios throughout a significant period of time. This includes collecting the number of requirements, defects, fixes, and more. You also need to be able to slice this information by teams, features, releases, and portfolios, so that you can know how many defects a team typically finds.
There are three aspects to measuring enterprise software testing predictability:
To determine your software testing predictability, you need to know your throughput of defects found by phase, fixes by phase, and bugs injected into production. You also need to be able to view these items in relation to the number of requirements. Once again, you need to be able to slice the information by teams, features, releases, and portfolios.
2. Throughput Variation
Next, you want to look at the historical trends of the throughput variation. The more consistent your throughput values are month-over-month, the higher your predictability is.
3. Single Source of Truth
This type of reporting is next to impossible if you are using spreadsheets for software testing reporting or older test management tools. You need a central repository for storing testing data. A modern enterprise test management tool will enable you to collect, store, and analyze these types of measures.
Missing deadlines and commitments is stressful. Boosting your software testing predictability is paramount for your team’s success and sanity. But as crucial as predictability is, it is just one component of improving your overall enterprise software testing performance. What you really need is a data mart that tracks and associates user requirements with test environments, edge testing, test data, load tests, unit tests, regression tests, user testing, test cases, test plans, etc.
That data mart performs a crucial function -- it can be relied upon as a central source of truth rather than working as an isolated tool. From there, you need powerful reporting and analytics tools to organize and feed real-time data to reports and dashboards, allowing testers, stakeholders and decision-makers to know progress and results at any given moment.