A versatile technique
As well as the code itself, software development produces a lot of other work products too. Most documents play some kind of role in the further development of a product, making the quality of each individual document an important factor in the overall quality of the results.
Work products that can be checked using static analysis (especially reviews, see below) include specifications, business requirements, functional and non-functional requirements, and security requirements. Specification errors need to be found before they are converted into code. In agile projects, epics [URL: Epic] and user stories are subject to static testing. The kinds of defects that static analysis reveals include inconsistencies, ambiguities, contradictions, gaps, inaccuracies, and redundancies.
During the software design process, architecture and design specifications (such as class diagrams) are created that can be tested statically just like program code. The code that makes up a website can be tested this way too (for example, automatic verification of links and their corresponding target sites). Code can be checked for consistency with the project’s programming guidelines2.
Generally speaking, static testing verifies that any predefined standards have been adhered to in the documents being analyzed.
It is also advisable to examine and verify all documents, definitions, and tools that are created during testing (such as the test plan, test cases, test procedure and scripts, acceptance criteria). Other documents and work products that can be verified by static testing include contracts, project plans, schedules, budgets, and user manuals.
Furthermore, the results of static testing can also be used to improve the overall development process. If certain kinds of defects occur repeatedly during specific development steps, this is a sign that this step requires investigation and, if necessary, optimization. This kind of process is usually accompanied by additional staff training.
Leave a Reply