The software can be tested in two different levels: static testing and dynamic testing. The static testing involves the review of project work products. The dynamic testing tests the software under execution. The different between static testing and dynamic testing is described below:
Static Testing and Static Analysis:
Static testing is a type of technique where the project documents are reviewed to identify the errors. In the static analysis, software is tested without executing the code. It is done manually or using any simple testing tools. Here the program structure and documents related to it is tested. Static analysis is a form of testing where the actual code or application is not used.
- Review: It involves the review of the project documents by the software testers. It is used to remove the errors or faults in software documents like software requirement specification, technical design development, business requirements etc
- Static Analysis: It helps in quality of the code written by software developers by using many software testing tools and to analyse the structural design of the software.
For example there may be many security breaches in the code especially when user’s login. It is made sure that users are not publishing the passwords or any other information on the application which may lead to some security threats.
The advantage of static testing is it can start at early life cycle of software development so feedback on the quality issues can be set up.the development quality increases because of less rework. The disadvantage is
Time consuming as it is done manually and less trained staff to conduct the static analysis.
Dynamic testing is a process of testing the dynamic behaviour of the software. It is software which helps analyze both input values as well as output values. There are two types
- Functional testing
- Non-Functional testing
In dynamic type of testing test cases are executed. For example consider online shopping form dynamic testing includes testing the functionality of different page. And checking order process and payment process and a mode of checkout. Checking the interfaces between different pages. It is different from static testing since it involves execution of the software. It is called verification testing. The advantage of dynamic testing is it removes the complicated defects. It is essential tool for security threats.
Check your understanding:
- List the difference between static testing and static analysis
- List the difference between static testing and dynamic testing