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 testing phase.
Consequences of this superficial approach to testing can range from funny to tragic (e.g. Boeing flight software). And sometimes, they can have ramifications that put a whole sector into question.
Case in point – the Iowa election fiasco. What happened? After people voted, results were initially delayed and four different candidates declared victorious. Later, it turned out that the cause of confusion was the mobile application used to vote & report results. It turned out that it was full of errors, and for some users it did not work at all.
How could something like this get overlooked? We analyzed some hypotheses with our Tech Lead, whose 19 yeas experience in software testing could surely shed some light.
- Q: What do you think went wrong in the Iowa election application case?
- A: With the information, I managed to gather 3 things stand out. First, the company that built it had little to no prior experience in election software. Second, their team was quite small and seemed to lack senior developers. Thinking of the importance of the app you would expect more seniority. Then again, the 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 testing approach?
- A: 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 de market average. You can already see this was a high-risk project. And it feels like it got miss-managed.
- Q: How come?
- A: 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: Anything else that could have had an impact?
- A: The fact that it did not work at all for some phones, points at a performance or functional issues. This brings the entire development process into question.
- Q: What is the lesson to be learned here?
- A: Do things right! 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.