What is Static Analysis in Software Testing?
- Static analysis involve software under test to detect possible defects before running the program.
- During testing software is not in execution mode.
- Static analysis is done after coding.
- Static analysis can be performed by a person or a machine.
- In Static analysis a “walk through” is made through source code to detect:
- Noncomplying rules. (For example compiler which find lexical, syntactic, semantic mistakes).
- To ensure proper coding standards are used to construct program.
- Static analysis forced developers not to used risky or buggy parts of the programming language.
What developers looks in Static Analysis in Software Testing?
- Lines of Code
- Proper nesting.
- Comment frequency
- Number of function calls
- Cyclomatic complexity
- Check of unit tests
Which quality attributes are focus in Static analysis?
What are the Advantages of Static analysis ?
- It can find defects in coding at exact location in source code.
- It is easy to understand source code.
- It allows fast defects fixing.
- Defects can be found in starting of the development of software which reduces overall costing.
- After Static analysis testing future test lest gives less defects compare to present test.
- Some defects are easy to detect in Static analysis only, like:
- Uncalled functions
- Undeclared, unused variables
- Unreachable code
What are the Disadvantages of Static analysis ?
- Time consuming if conducted manually (By Humans not machines).
- Static analysis automated tools are good for code scan only.
- Static analysis automated tools may produce false positive and negative.
- Static analysis not work when software is in execution.
What is Dynamic Analysis in Software testing?
- Dynamic analysis is performed when software /coding is in execution.
- Dynamic analysis often uses tools to perform testing.
- Mostly unit testing is performed in Dynamic Testing.
What are the advantages of Dynamic analysis ?
- It can be performed for any application.
- It finds defects in runtime environment.
- It allows application analysis without accessing its source code.
- Use of it validates Static analysis findings.
- It finds defects which were not included in Static Analysis.
What are the disadvantages of Dynamic Analysis?
- Cannot guarantee that full source code is covered under testing.
- Automated tools not ensure about security in testing.
- Dynamic analysis automated tools may produce false positive and negative.
- Dynamic analysis automated tools are good for code scan only.
- Time consuming to fix the problem.
- Difficult to find the exact location of defects.