Software testing process consists of dynamic and static activities, each of which has advantage over other. Static testing is carried out without any codding execution. The dynamic testing in its turn is performed with the executing the application or the software.
Static testing plays a key role in the software testing process and has its own techniques and activities.
This type of testing is performed with examining the software product with the use of certain tools or manually. However, the direct execution of the software is not effected at all. The main goal of static testing is to check if the codding and the algorithm of software works properly. This testing helps to indicate code errors at the beginning of testing process and to make further testing more efficient and productive.
There are two main activities in static testing:
- testing with the use of tools.
Let’s take a look at each of them more detailed.
Review activities of static testing can be formal or informal. However, the informal activities are used more often that formal, and in both cases the reviewed document can be checked more than once.
Another classification of review activities divides it into three different groups:
- software walkthroughs;
- technical review;
- software inspections.
Software walkthroughs and inspections are usually united into peer reviews.
Static testing with the use of automated tools is effected before the code execution and helps to inspect design, code and other testing activities. This type of testing aims to check the code of software and uses the following tools:
- structure of the code;
- metrics of the code;
- code conformity with the modern standards.
Static testing with the use of automated tools is usually carried out at the same time or before the integration and component testing.
The decision concerning the choice of testing activities mainly depends on the type of the software tested or the organization. But you also should take into account such factors as resource loading, time availability and others to provide the most efficient software testing.