NICTA researchers hope to prevent up to 40 percent of device driver bugs with new manufacturing tools that automatically yield software as a by-product of the hardware testing process.

The technique was patented last February by Leonid Ryzhyk, who hoped to market a commercial product to hardware vendors by the end of this year.
Ryzhyk said the tools yielded far more reliable drivers than current techniques, and could be used to build anything from simple keyboards to systems for motor vehicles and medical devices.
“Most of the time, if you see the ‘blue screen of death’, that’s caused by the device driver,” he told iTnews. “That’s not something you want to happen in an aircraft or car.”
Developed in partnership with Intel and NICTA spin-off, Open Kernel Labs, Ryzhyk’s method prevented protocol violations, which he estimated to account for 40 percent of all driver bugs.
Other bugs would be left to formal verification techniques and conventional testing.
“The fact of life is that drivers are extremely buggy,” he said. “Formal [testing] techniques are very, very limited in terms of what they can achieve.”
“Basically, we started looking at how hardware devices are designed and manufactured ... You can essentially obtain a driver from the hardware verification process.”
Ryzhyk explained that formal verification techniques were a form of ‘black-box testing’, which focussed on drivers’ functionality, rather than their internal workings.
By contrast, NICTA’s development technique took place during the design process, so both hardware and software could be cheaply modified if errors were found.
Although Ryzhyk said vendors could implement the technique into the design process at minimal additional cost and effort, he planned to market it as an automated tool to “make the value proposition more obvious”.
The patented technique won Ryzhyk this year’s FB Rice NICTA Innovation Award, which was decided in December, and would be presented next week.
“I think it is easier to sell tools than this ability,” he said, noting that a prototype would likely be developed by the end of the year.