During a lecture earlier this year, one of Andy Zaidman’s students stood up in class and asked him a frustrating question: “Why do I need to test my program? If I get a correct result, that means my program works. Why waste time testing?”
That, for Zaidman, is the biggest problem with the mindset to software design today. People do not test their programs beyond a superficial result.
“I get very frustrated when there are bugs in a program,” the TU Delft Software Engineering Associate Professor says. “More and more programs are launched today without being vetted for bugs. Frankly, it doesn’t surprise me. I see how my students approach design. They only want their program to work, to be functional. They are not interesting in ensuring that it’s flawless.”
His talk at TEDxDelft 2015 will address the need to change that very approach to software design. In order to help with that mind shift, Zaidman is creating software that, on the one hand, stimulates software developers to keep on testing, but it also recommends to test parts of the software because of previous weaknesses. “The idea is to stimulate an interest in the program beyond the result and make it fun to keep testing, a bit like playing a game.”
Zaiman’s interest in software started with his fascination for computers as a teenager. “It seemed only logical for me to study computer science. In the course of actually studying the subject, I realized how complex it was. I feel it’s strange that we haven’t found a way to make the process of testing complex programs more interesting.”
As part of his talk, he will explore examples of high profile projects that went wrong due to software bugs. One such example was the Fyra – the high-speed rail service launched between Netherlands and Belgium. “One of the biggest reasons why that project didn’t work was failing software. Sometimes there are errors because people don’t look into all kinds of things that can go wrong and take precaution against them.”
Programmers and cross disciplinary teams are often unaware of the kind of pitfalls that can occur if a program is not well tested. These examples will help create some awareness about what to watch out for. “In the larger picture, I think the talk is also about how we should be critical of our own work. Keep testing it, looking at it from different perspectives and trying to ensure it’s as flawless as possible.”