Search your topic here

Software Static and Dynamic Analysis

Static Analysis and  Dynamic Analysis in Software Testing:



    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.


    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.