Business Critical sectors are characterized by intense levels of competition, where software is vital to the running of the business model. When striving towards gaining a competitive advantage, industry leaders today practice static analysis as well as unit and integration testing. This developer level of software testing helps to reduce commercial risk and minimize testing costs.
Where the scale of software production is significant, the greatest commercial risk is of a software failure infecting the wider brand and corporate reputation. The consequences of this often far exceed the development cost of any individual application.
Where companies do not employ best industry practices, such as thorough static analysis and unit testing, they cannot use the “state of the art” legal defence against fitness for purpose litigation.
Static analysis identifies coding issues extremely early in the development cycle, passing better code into the latter stages of the development process. As well as providing a highly effective means to analyse your code against any coding standards that you have chosen to use.
As modern systems are very large and complex, the only viable way to thoroughly test them is to break them down into manageable units. Thorough testing of software units (unit and integration testing) by developers gives companies the most re-assurance that business critical systems perform reliably in the field.
Static analysis, followed by unit and integration testing, are the earliest tests performed during the software development cycle. Defects in objects can be identified and fixed nearly immediately, so there is less re-work and re-test dependency on other code. Testing as soon as code is written can be done with isolation unit testing, not waiting for a full system build. Static and dynamic testing during these early stages of the software development life-cycle is therefore the most cost effective time to fix defects. Retaining the ability to automatically re-run these tests as development proceeds through later stages to final release, also provides the most efficient means of pin pointing regression errors which may have been introduced.
“Applied Software Measurement”
(Capers Jones, McGraw-Hill)
QA Systems testing tools
QA Systems enables organisations to accelerate software reliability with automated static analysis and software testing tools: