Insufficient testing and delayed patches make for unreliable software products, writes William Knight.