Embedded testing - Why? - II (Part 5)

Let's continue the previous post to understand further why we need testing for embedded systems. Some might not know this, some might have experienced it, some might have tried it, and some might have been experts. What am I talking about? The process of baking bread in the oven. How many of us tried this at least once in our lifetime? 

Imagine a situation, where you have set the timer for 30 seconds (no bread will be baked in 30 seconds, this is just an example 😊) but due to a software error, the timer mistakenly interprets this as 30 minutes. What is the outcome? Burnt bread, wasted ingredients, and frustration.

Now imagine the temperature was set with the assumption of 100 degrees Fahrenheit but the oven was programmed to interpret it as Celcius. You would end up with underbaked dough instead of golden-brown perfection.

How does the baked bread come out well if the expected outcome does not meet the requirements?
These seemingly small errors arise from a lack of software testing, and they highlight why embedded testing is not optional but essential. What are the things missing in the above example? What factors affected the product? These questions highlight the critical importance of embedded software testing, which ensures that devices like ovens perform reliably and meet requirements. 

Embedded systems are the invisible brains behind countless devices we use every day, from ovens to life-critical medical equipment. Embedded software testing involves systematically verifying this software works correctly, safely, and efficiently under all expected (and unexpected) conditions.

Why does this happen?
Let's break down to analyze the problems. Humans make mistakes. Mistakes often occur due to lack of communication, incorrect implementation, insufficient testing, lack of proper validation of controlling the software, and unfollowed rules and regulations. 

Lessons from baking bread:
  1. Wrong Timing Calculations: A misinterpreted timer could lead to disastrous results - burnt bread when seconds turn into minutes.
  2. Unit of Temperature Miscommunication: Confusing Fahrenheit and Celcius values leads to undercooked bread that does not arise.
  3. Mismatched expectations: The baked bread will not meet the requirements if the provided inputs are not processed correctly.
These are the points that directly affect user satisfaction and the performance of the product.

Why does testing matter?
  • Functionality: Testing should make sure the system performs as expected like the oven's calculating time or setting the correct temperature.
  • Reliability: Testing ensures the system performs predictably even under stress such as high temperature and unexpected user inputs.
  • User safety: Unlike application software, embedded software plays a vital role in the real world. Proper testing prevents hazards, such as overheating or failure to shut off the oven.
What happens without enough testing?
Skipping proper testing leads to frustrated users, brand damage, and costly repairs.
  • Frustrated users: Burnt or undercooked bread is just an example of how a malfunctioning machine can lead to customer dissatisfaction.
  • Brand damage: The user will lose their trust in the product and company if frequent failures happen. 
  • Costly repairs: Fixing errors after deployment is more expensive than identifying and addressing them during development.
In the end, the company will lose its business if they do not concentrate on the testing part. 

So, it's bread or a spaceship, remember this: Great things come from great testing. If it is skipped, you will end up with burnt bread when you want a golden-brown bread or worse, a fire extinguisher where your breakfast/dinner should be!

Comments

Popular posts from this blog

How to Install Jenkins

HTTP Payloads

Embedded testing - Introduction (Part 1)