Static Testing


Static test techniques provide a powerful way to improve the quality and productivity of software development. 

The fundamental objective of static testing is to improve the quality of software work products by assisting engineers to recognize and fix their own defects early in the software development process. 

While static testing techniques will not solve all the problems, they are enormously effective. Static techniques can improve both quality and productivity by impressive factors.

Reviews and the Test Process


As indicated in the definition two approaches can be used to achieve these objectives, static testing and dynamic testing. 

With dynamic testing methods, software is executed using a set of input values and its output is then examined and compared to what is expected. 

During static testing, software work products are examined manually, or with a set of tools, but not executed

As a consequence, dynamic testing can only be applied to software code. 

Dynamic execution is applied as a technique to detect defects and to determine quality attributes of the code. This testing option is not applicable for the majority of the software work products.

In principle all software work products can be tested using static testing such as review techniques. 

Dynamic testing and static testing are complementary methods, as they tend to find different types of defects effectively and efficiently. 

Types of defects that are easier to find during static testing are: 
  • deviations from standards
  • missing requirements
  • design defects
  • non-maintainable code
  • inconsistent interface specifications.

In contrast to dynamic testing, static testing finds defects rather than failures.

In addition to finding defects, the objectives of reviews are often also:

  • informational, 
  • communicational and 
  • educational, 
whereby participants learn about the content of software work products to help them understand the role of their own work and to plan for future stages of development. 

Reviews often represent project milestones, and support the establishment of a baseline for a software product.

Reviews on software products have advantage such as :
  • Since static testing can start early in the life cycle, early feedback on quality issues can be established, e.g.an early validation of user requirements and not just late in the life cycle during acceptance testing.
  • By detecting defects at an early stage, rework costs are most often relatively low and thus a relatively cheap improvement of the quality of software products can be achieved.
  • Since rework effort is substantially reduced, development productivity figures are likely to increase.
  • The evaluation by a team has the additional advantage that there is an exchange of information between the participants. 
  • Static tests contribute to an increased awareness of quality issues. 
  • Static testing is a very suitable method for improving the quality of software work products. This applies primarily to the assessed products themselves, but it is also important that the quality improvement is not achieved once but has a more structural character. 
  • The feedback from the static testing process to the development process allows for process improvement, which supports the avoidance of similar errors being made in the future.



Comments

  1. Nice post. Thanks for sharing. According to me both that is static and dynamic testing plays equally an important role in testing phase of the software. It depends on you which one suits your methodology. I would like to share an article that describes both and why they are important. Here's the link, please have a look - http://www.infotales.com/static-testing-vs-dynamic-testing-using-test-automation-tools

    ReplyDelete
  2. It was a nice article on static testing tools. Thanks for sharing

    ReplyDelete

Post a Comment

Popular posts from this blog

Types of Review

Phases of Formal Review

Structure Based or Whitebox Testing Techniques