Software Static and Dynamic Analysis

STATIC ANALYSIS:
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?

  • Reliability
  • Maintainability
  • Testability
  • Re-usability
  • Portability

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.

DYNAMIC ANALYSIS:
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.