Software testing is a crucial part of any development process, and for those of us working in software development, the pressure to deliver something fast, fully functional, and cost-effective is something we’re accustomed to.
Yet this request, especially the “fast” part, can overlook a key part of the development process – the software testing phase.
Risks and Consequences
This superficial approach to testing can lead to risk, and consequences can range from funny to tragic, as in the Boeing 737 flawed flight control that led to 2 crashes. And sometimes, they can have ramifications that put a whole sector into question.
Case in point – the Iowa election fiasco. The mobile application was full of software bugs and errors. For some users it did not work at all. For people who could vote, results were initially delayed causing four different candidates to be declared victorious.
After a thorough investigation of the software code, it turned out that the cause of confusion was due to insufficient software testing of the mobile application.
How could something like this get overlooked?
Continuous Testing concurrent to software development is the key to prevent most software bugs. It is one of four types of SDLC testing which includes system testing, integration testing, user acceptance testing, and continuous testing.
After the Iowa election, the mobile application was launched, layers of updates were added to the list of issues. Software management became a nightmare, as developers were trying to create bug remedies to fix the software updates, and the cycle continued.
It was a disaster waiting to happen.
Insights into Software Testing
We analyzed some hypotheses with our Tech Lead, whose 19 years of experience in software testing could surely shed some light on this subject
Q. What do you think went wrong in the Iowa election application case?
After analyzing the information that was made public, I managed to gather 3 important things that stood out.
First, the company that built it had little to no prior experience in election software. Second, their team was relatively small and seemed to lack senior developers. Some of the biggest challenges are overcoming the shortage of resources, and staff augmentation would have helped. Thinking of the importance of the app you would expect more seniority or at least, software management and development could have been outsourced. However, this leads me to the third thing – software testing management.
Q. Do you think there were issues with their software testing approach?
Let’s start by pointing out that there didn’t seem to be any senior/ head of software testing on-premise at the company. Given the importance of the project, this is very weird. We know that they had roughly 2 months to build it, and most records pointed in the press show that the allocated budget was a bit under the market average. You can already see this was a high-risk project. Lack of a proper development budget can lead to excessive expenses and delayed product launches.
Q. What was software testing not their priority?
For example, the application was not distributed through app stores that need time to check applications. Apple requires at least 2 weeks to test and approve a new application. So, rollout testing comes into question. Was it done? Even if the app was not to be distributed through commercial app stores, the testing phase should have been present.
Q. Was there anything else that could have had an impact?
The fact that it did not work at all on some mobile devices points to performance or functional issues. This brings the entire software development process into question.
Q. What is the lesson to be learned here from their experience?
Plan, fund, design, develop, test, roll out and train in a proper way! Cutting corners is dangerous. Especially when the stakes are high and defects can have severe implications not only for the end-users, but for the company’s reputation. It might sound like a truism, but proper software testing is the only way to confirm if an app is fit for production.