top of page

Risking It All Without Testing

Cowboy riding a bull
Do you really think a cowboy would survive riding a bull without proper risk management? That’s a wild ride straight into chaos! Let’s put our cowboy hats on and start doing proper risk-based testing.

By Jean-François Riverin: Expert in Software Engineering and Co-founder of Zentelia

September 13, 2024

 

Testing—it's a word that might seem tedious or unnecessary to some, but what if skipping it meant risking everything? My initial goal was to dive into the technicalities of testing, offering a definition and explaining its role in software systems. But that felt too detached, too abstract. Instead, let's focus on the reality: testing isn't just a step in the process; it's the safeguard that prevents catastrophic failures. Without testing, every decision becomes a gamble, every release a risk. The real question isn't whether to test—it's whether we can afford not to.


As I thought more about the real-world implications of not testing, I began to wonder if this notion of testing could be found in everyday life. By observing the world around me, I naturally started to see tests everywhere. Every time we doubt or want to verify a hypothesis, we test—sometimes without even realizing it. When we write a text like this, we proofread it and have someone else read it too. To decide what to wear, we check the weather. Similarly, before an important evening, we ensure our attire is appropriate by trying various combinations. Before hiring someone, we interview candidates. Even a cowboy practices before a rodeo, testing his skills to prepare for the big event. When we create something new, something we've never done before, we verify it. Testing is what we do to reassure ourselves of our choices when in doubt, and everyone does it, even animals! Testing is simply inseparable from any evolution, from any creative process.


Okay, in our lives, we test intuitively, but is this reflective of what we find in the industrial world? After all, the major manufacturers of the world, in fields such as transportation or pharmaceuticals, for example, don't they hire the best engineers? In that case, do these large companies also need to conduct tests? Let's think about it for a moment. Would we take a medication that hadn’t been thoroughly tested? Would we want software in our computers, cars, cell phones, or household appliances without it being tested? The answer is, of course, no, almost never. Why? Because most of the time, there are too many risks, and it's too dangerous!


And what if tests were precisely for reducing risk? What kinds of risks do we want to avoid? As customers, we don't want to waste our time or risk significant financial losses. Health and safety risks are also generally unacceptable. Manufacturers also have a tolerance limit for risk. They want to avoid displeasing their customers, harming their reputation, and significant financial losses.


Testing in industry is managing risk

 

So, what is the best way to use tests to reduce risks? Would it be to add tests before going live to check if the customer is happy with the product? If those are the only tests that are done, personally, I wouldn't want to be the first on the plane! I'd like someone else to go before me, maybe a test pilot? Before risking the life of this daredevil, the idea of building a simulator to safely test the system would be a good preliminary step. This allows for testing a large number of hypotheses, sometimes very difficult to reproduce in the real environment. However, the simulator, though excellent, has a cost and doesn't allow for checking the defects of the components. We will need to ensure the functionality of each of the components involved in the design of our product by verifying them individually. For example, the propulsion system, the braking system, the steering system are critical components that must be checked well before the first flight! But we can do better. Each of these systems (components) consists of specific parts assembled according to a precise plan. For each part, the material, size, shape, resistance, etc., had to be specified so that once assembled, they work together without individual failures.


For the software world, aren't the issues "virtually" the same? The world of software development is certainly much closer to design and conception than to industrial production proper. But unlike a piece of furniture, which is finished once it's built, software is more like a biological system—it follows a life cycle, constantly evolving as features are updated and new requirements emerge. Precisely because testing is inseparable from any creative process, and because each need generates a unique idea leading us to create new IT solutions, the earlier we validate (test), the better we manage our risks. That's why each piece of code, just like each part of an airplane, must be tested individually to ensure its quality. This piece of code is part of a function; a function that can be, for example, a rate calculation system. This function will itself be tested to ensure it delivers the expected results, just like our navigation system. This function is then integrated into a larger system. It is linked to other components, such as a database or an interface allowing the input of values. Once all the components are integrated into a complete solution, it will evolve in an environment connected to external systems providing services to support it, such as an authentication service. Even after the product is in production, the cycle continues: when new features are required, the existing product must be modified, which can introduce regressions in parts of the software that weren't even touched. Only after all these steps do we finally have a new or updated product ready to be put into service.


So, the next time someone asks you what the point of testing early is since the system isn't finished, you can answer that it’s precisely to reduce risk. The longer we wait, the more risks we take, and the bigger the stakes, the sooner we should test! It's paradoxical because very often, it's in important projects that we test the latest under the pretext that there is “NO TIME TO WASTE.” From now on, don't hesitate to respond to these arguments by saying that there are especially “NO RISKS TO TAKE,” and I'd add, "So when do we start testing to get this project finished?" Enhance your risk management practices and ensure top-quality outcomes for your upcoming projects by exploring our specialized training, "Ensuring quality through risk management". Don't miss out on this opportunity to elevate your project success!


Have questions or ready to take the next step in improving your projects' quality? Reach out to us today! Our team of experts is here to help you find the best solutions tailored to your needs. Contact us now to learn more!



23 views1 comment

Recent Posts

See All

1 Comment


Evgenii Morgunov
Evgenii Morgunov
Oct 09, 2024

Thank you for sharing such an insightful article, Jean-François! I couldn't agree more with your analogy about the cowboy riding a bull—without proper risk management, it’s a wild ride into chaos. Testing early and consistently is crucial, especially in the fast-paced world of software development, where things are always evolving.


Your emphasis on reducing risks by validating each component along the way really resonated with me. It reminds me of how, in programming, we must ensure every piece of code functions before integrating it into larger systems. This mindset not only prevents potential failures but also optimizes performance, delivering better results in the long run.


Risk-based testing isn't just a safeguard—it's an integral part of a successful project. Thanks again…


Like