You might have asked yourself this question recently, or maybe someone asked you — but it’s definitely a question that pops up all the time, and it isn’t going away anytime soon. So what’s the best answer for the question? Or is there even an answer? In this brief guide, we look at how to establish the correct amount of software testing effort.
Software testing budgets around the world are increasing every year. This indicates that testing is becoming more critical and picking up steam in terms of importance to organizations. It’s obvious that individuals within an organization plays a role in maintaining quality, but those individuals usually have differing viewpoints on the level of testing effort needed. At a high level, we can say that there are two groups — insiders and outsiders. The insider view of quality is very different from the perspective of an outsider. Insiders are responsible for quality and held accountable to stakeholders for quality levels.
Outsiders expect to have quality without much second thought, not taking into account the effort that is needed to produce quality. How do we address the needs of the two groups? First and foremost, the two groups need to be brought together under one unified vision. Success in quality testing can be attained only when there is a shared perspective across the entire organization.
It’s also extremely important to define the purpose of any given testing type. Too often, testing teams settle into mechanically recommending the exact same set of testing activities for any given application. This practice needs to stop immediately. Before you dive into the actual testing, you need to figure out what the purpose of the testing activity is, which will also affect into its timing in the entire project timeline.
A test plan is often seen as a static document. But by keeping test planning an active process, you can help steer the testing needs of the project. These play a major role in getting the message across to the stakeholders. Define the scope of each testing type and include it in the test plan. Make it a point to keep the plan updated, and make it an executional plan for each of the team members. Standup meetings should follow test planning once testing actually begins.
Testing teams can easily slip into a captive mindset, as in, “You tell us what to do, and we’ll do it.” Given the nature of testing, testing teams can become technically passive over time. If left unchecked, this can lead to a situation of technical incompetence. When that happens, everything ends up being tested every time, which ends up taking a lot of time and effort. So how can you get out of that situation? First and foremost, empower the testing team to make decisions. Giving the testing team the power to own the decision will be a great starting point. Really, it’s foundational to building any robust testing team. Encourage the testing team to come up with a risk-based assessment. Actively engage the technical team to support assessment and root cause analysis. This method automatically builds in a systematic way of approaching what needs to be tested.
Effort plays a huge role in the entire product life cycle, and it needs to be measured with metrics accordingly. These metrics will then play a pivotal role in decision-making for future projects, along with informing strategy for new leads. Use tools to track tasks and corresponding effort invested by the team and its individuals. It’s essential for team members to be aware of how effort ties into the project as a whole, and that begins with making sure that learning, non-project, and other types of effort are correctly tagged.
Teams need to have a platform for honest conversation, especially when dealing with projects that are completely new to the organization. When a team is taking on such a project, certain questions need to be asked. Will the level effort established for an earlier project be suitable for this project? Have the size differences of the two projects been taken into account? Such questions play an important role in assessing the situation on the ground. Metrics gathered regarding the new initiative also need to be carefully reviewed for inclusions and their use in the decision-making process.
Project strains and an ever-increasing demand for fast time to market require well defined plans and execution strategies. Both require quick turnaround times, limiting the amount of effort that can be invested. When rushed to meet the most current needs, ad hoc approaches are often taken. Continuous refinement is looked upon as impractical and only belonging in the realm of academics. But in reality, including continuous refinement in the project execution plan in essential. Figure out how continuous refinement can apply to every major phase of the project, and identify areas in which continuous refinement can be done better. Draw up an action plan for continuous refinement, and integrate it with the execution plan. This will all help you optimize your levels of effort, as well.
In the end, there is no easy answer as to how much testing effort is required — it really will vary from organization to organization and project to project. With that said, though, the above steps will definitely help you structure your software testing efforts and custom tailor them to your specific organization’s needs.