Process vs. Improvisation in Software Testing

In the world of software testing, there seems to be a constant debate about what is more effective – do you follow strict processes or allow room for improvisation?

Sooner or later, all QA engineers will find themselves at a crossroads. Is it better to structure your testing activities into a process or just go with the flow? The answer is not that straightforward, as both approaches include certain benefits. 

When you’re working on a large and complex project, missing even one test can have significant consequences. Adhering to a process ensures all tests are performed in a consistent manner, and all potential defects are covered. 

On the other hand, some will argue that adapting to changing circumstances is crucial for effective testing. When testers foster creativity and allow themselves to think outside the box, they can potentially discover more defects.

Having a defined process in place ensures thoroughness and consistency. But why stick to rigid processes in an industry that’s constantly evolving?

So which way is the right one? We’ll explore the pros and cons of both in more detail, so you can consider all the aspects when deciding what path to follow.

Following a strict process in your software testing methodology

A process is defined as a system of rules, procedures, and standards that must be adhered to precisely and consistently in order to accomplish a particular purpose. 

From the QA perspective, it’s about being aware of the rules and specifications established by the framework and verifying that the development team complies with them. This includes tracking and evaluating development, identifying areas for growth, and providing comments to support the members in achieving their goals. 

By adhering to the established procedures, the QA team can help maintain quality standards and guarantee that the project is delivered on time and within budget.

Pros of following a strict process

Consistency makes it easier to identify patterns

A process ensures that all necessary tests are performed consistently. This is especially important when multiple testers are involved because it confirms that everyone is on the same page. Consistency makes it easier to identify trends and patterns in defects, which can be useful for analyzing the root cause of an issue and improving the testing process.

Thorough testing covers more ground

When you’re following pre-defined steps, it’s easier to make sure that all potential defects are identified. This is important for mission-critical systems where even a minor defect could have far-reaching consequences. You want to be certain that you’ve covered all your bases, even if it’s not immediately clear why you need a particular test.

Easier time and resource allocation

A process makes it easier to predict the time and resources needed for testing, and this helps with project planning and budgeting. With this information, you can set expectations about the testing process with the stakeholders and management.

Cons of following a strict process

Reduced capability to respond to new information

When you’re strictly adhering to a process, you may miss the chance to adapt to changing circumstances or new information. This could potentially lead to some missed defects or an inefficient testing process. In a rapidly evolving industry, it is important to be able to adapt and respond to new challenges as they arise.

A well-beaten path can lead to complacency

Relying too heavily on processes may lead to a drop in creativity and out-of-the-box thinking. When you’re only sticking to what you’re used to, you can miss some opportunities for discovering defects. In addition, never veering away from processes can create a sense of complacency, as testers may begin to feel that they don’t need to think critically or creatively because they have a set process to follow.

Nurturing improvisation for more agility in software testing

The term improvisation describes our capacity to change with the times and react in a flexible and original way. 

Improvisation is crucial for dealing with unforeseen problems and changes that may occur during the development process. A QA team’s capacity for improvisation depends on their ability to change course mid-project and modify their strategy as necessary. 

This is evident in the way a team responds to adjustments in the project parameters. Maybe they are looking for possibilities to optimize procedures or come up with original solutions to issues that arise. By allowing themselves to improvise, a QA team can ensure that the project remains on track and achieves its objectives even in the face of unforeseen difficulties.

Pros of improvisation

Adaptability to changing circumstances

In a field that is continually changing, adaptation can be crucial. The ability to improvise enables testers to address unforeseen difficulties or obstacles as they appear, potentially resulting in more effective problem-solving.

Improvisation develops creativity

Allowing space for improvisation can encourage testers to be creative and think outside the box. QA specialists can approach the testing process from a different angle and thus discover more flaws. Creativity can also be a great asset.

Cons of improvisation

Risk of omitting crucial tests

There’s a reason why we go to the store with a shopping list. Just going with the flow can take your attention elsewhere so you unwillingly omit a test that may have been crucial. A process makes it easier to check all the boxes so no defects go under the radar.

Increased risk of human error

Our memory is unfortunately not 100% reliable. With no process to follow, it’s much easier to omit a certain test or perform it poorly. Certain applications are built in a way that just one bug left uncaught can have a cascading effect, so it’s better to reduce the risk of error as much as possible. 

Confusing the stakeholders

At Infinum, we highly value transparency and like to keep stakeholders informed about the processes involved in their digital product development projects. When testers improvise a lot, plans change, which can create confusion among the stakeholders and management. Confusion leads to misunderstandings and miscommunication, neither of which is welcome on a quality project.

Lack of documentation

Without a defined process, it can be more difficult to document the testing procedures and results. And without proper documentation, it’s harder to track progress and identify trends or patterns in defects. Reproducing testing results or troubleshooting issues becomes more challenging as well.

How to formalize improvisation

It’s important to realize that the choice between following strict processes and improvisation is not necessarily exclusive. You absolutely can combine both in your work to create a unique process that yields the best results. 

The best way of going about that is to allow space for improvisation but approach it with care. In other words, to formalize it.

If a team decides to move away from the established process at a certain point, they need to define and document the steps they took. That way, they are incorporating improvisation into the QA procedure.

For instance, if the development team improvises a solution to a certain issue, the QA team can assist by documenting what they’ve done and thus create a repeatable process that can be used going forward. 

One way of accomplishing this is writing test cases based on the improvised solution. It’s a way of guaranteeing that the solution is completely tested and potential problems are found and fixed. 

As a supplementary measure, the QA team might also want to conduct exploratory testing to find any unexpected behaviors that may have developed as a result of the improvisation.

Another method that helps formalize improvisation is organizing testing sessions with the development team. When the improvised actions are discussed and noted, the process can be well-documented and repeatable in the future.

By taking the necessary steps when allowing for improvisation, the QA team contributes to making the development process successful, efficient, and repeatable. When testers and developers work together from the earliest possible stages of the process, even the most improvisation-dependent projects can be given some structure so that product quality remains a top priority.

Process vs. improvisation – all in good measure

The balance between following a set of processes and improvisation in software testing is a complex one, and there is no one-size-fits-all solution. Both approaches have their pros and cons, and the most effective strategy may be to combine them both. 

Ultimately, choosing your approach will depend on the specific goals of the project at hand. It is important to consider all aspects and implications and make a decision that aligns with the project’s needs.

By striking a balance between processes and improvisation, teams can create a testing approach that is thorough, efficient, and adaptable to changing circumstances. 

Finding your testing path on a specific project may be difficult, but it gets easier when you focus on the final destination — assuring that the end product is of great quality and completely defect-free.