13 October 2004
Testing times for software
'Life can only be understood backwards, but it must be lived forwards.' - Soren Kierkegaard. (1813 - 1855).
A software controlled cruise control system needs to undergo more than 800,000 unique test scenarios before software errors that could cause a malfunction can be completely removed.
And, because the number of test scenarios required is so high, it is economically impossible to implement using standard software development techniques.
That's according to two English fellas that have recently started a new company - Verum Consultants - to help software developers over this seemingly insurmountable hurdle.
And since they were in London last week, having flown over from their software base in the Netherlands, I had the pleasure of meeting them. During our summit, the two chaps in question- Guy Broadfoot and Robert Howe - demonstrated just why modern car manufacturers cannot wholly guarantee that software based electronic systems incorporated in modern vehicles are safe and reliable.
Naturally, as a car driver, I was rather unnerved by the demonstration. And I must say, rather relieved to discover how they had developed a solution to the problem as a result of some rather late nights of study at the rather prestigious Oxford University in England.
The two engineers believe that existing software development models, based on testing as the principle means to remove software defects, are flawed. Because no design verification is possible, software testing involves finding and removing not only implementation defects, but all defects introduced through the development lifecycle, and the inherently non-deterministic nature of complex behavioural software means that it is essentially untestable.
"Every experienced software professional and computer scientist knows that software correctness cannot be established by testing alone. It is simply impossible to test all aspects of a complex software system. Even if this were not the case, the number of tests required would be so large as to be economically infeasible," said Broadfoot.
The Verum solution, which they've called the Analytical Software Design (ASD) process, brings an engineering design discipline and mathematical rigor to the development of software design to eliminate these errors and reduce rework.
ASD itself enables the specification for a software program to be written in simple terms that are comprehensible to the layperson. The technique generates a series of models that can then be used to test the software's accuracy against the original specification.
It was impressive to see it run on Broadfoot's notebook. The software rattled through the 800,000 test scenarios of a cruise controller in less than a few minutes. And Broadfoot demonstrated how the software could flag software inconsistencies and then allow the user to fix them rather rapidly too.
But despite all their smarts, Broadfoot and Howe face an uphill battle over the coming years. They must now set about convincing busy software development managers that they should re-examine their software design process - concentrating on the testing of the software architecture of their systems prior to deployment.
Let's hope that it doesn't take a cruise control to lock up at 350 kph on a German autobahn before some of the automotive OEMs invite them in to share their knowledge.
To learn more about the Verum software, go to http://www.verum.com.
Comments: Post a Comment