The frequent and high profile software failures such as the Ariane Rocket and the Chinook helicopter crash have highlighted the difficulties facing project management teams. The trade off with commercial pressures and timescales invariably compromises the quality of software. And each subsequent bug fix can in itself alter the code to its detriment. Given enough time and maintenance, even good programmes will degrade.
Companies have historically relied on time-consuming and expensive manual testing procedures to ensure their software quality. A new form of inspection has emerged: Automated Software Inspection, which not only saves companies' time and money, but which is also more effective at detecting and removing all kinds of software defects.
Automated Software Inspection (ASI) provides the benefits of manual inspection and focuses on the software source code itself, rather than its actual operation. The objective is to identify and remove problems before the code is actually executed. In the time taken for this newsletter to reach your desk ASI can identify a major percentage of your software errors. Leaving you with much less to find!
Combining ASI with conventional testing methods provides a balanced, cost-effective programme that will result in higher quality software.
Companies such as IBM, Oracle, Natwest Bank, and Unisys are now turning to ASI. The integrity and quality of their software is improved, the need for upgrades to bug fixes is removed, and they are therefore finding their maintenance costs reduced.
Automated Software Inspection related services improve the reliability and time-to-market of business critical applications by combining proprietary ASI technology and quality assurance methodology. For the first time, businesses can send their source code over the Internet to facilitate rapid inspection and reporting of software defects found.
Unlike traditional testing, this process provides 100% coverage of the source code, documents all defects found and can document other quality issues to speed the identification and repair of faults.
It can be employed before, during or after traditional testing to improve the effectiveness of test cycles, and to inspect internal or third-party code. Compared to in-house inspection or product-based offerings, ASI related services typically deliver results in under a quarter of the time - and do not require large capital outlays for tools, training or personnel.
ASI identifies numerous bugs that can easily be missed by traditional testing. This is because traditional testing relies heavily on test cases to interrogate all code paths. Research has shown that testing based on test case development seldom achieves more than 50% code coverage, and it is difficult to keep test scripts current.
Since ASI finds defects based upon code structure – not test cases – it can achieve complete code coverage. The types of defects identified by ASI include: assignment, arithmetic, client-specific, and initialisation defects.
Furthermore, it is possible for ASI to identify software fragility (the likelihood of the software to be corrupted over time) and dangerous coding practices, thus encouraging programmers to re-examine their code and design and use better, more understandable coding techniques.
Every week, another high profile system crash or software failure makes the headlines: this week's outage at the London Stock Exchange will no doubt be joined by another disaster next week. Each is just one more reason why ASI should be part of every IT department’s plans for the future.
John Rodford, Reasoning UK Ltd