Software Static and Dynamic Analysis

Static Analysis and  Dynamic Analysis in Software Testing:

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.
More topics from Software Engineering to read
Software Engineering

EasyExamNotes.com covered following topics in Software Engineering.