Software bugs are expensive. Typically, software developers waste around a quarter of their time testing and debugging programs. The later bugs are detected in the software development process the more expensive they are, and the more they delay the product launch. This is especially true in the case of embedded systems software which has to be developed at the same time as the hardware. If a bug gets through, it may mean millions of dollars is spent recalling the product.