Monday, 23 February 2015

Static Vs Dynamic Testing


Static Vs Dynamic Testing 

Under Static Testing code is not executed. Rather it manually checks the code, requirement documents, and design documents to find errors. Hence, the name "static". 

Main objective of this testing is to improve the quality of software products by finding errors in early stages of the development cycle. This testing is also called as Non-execution technique or verification testing.
Static testing involves manual or automated reviews of the documents. This review, is  done during initial phase of testing to catch defect early in STLC. It examines work documents and provides review comments
Work document can be of following:
· Requirement specifications
· Design document
· Source Code
· Test Plans
· Test Cases
· Test Scripts
· Help or User document
· Web Page content           
Under Dynamic Testing code is executed. It checks for functional behavior of software system , memory/cpu usage and overall performance of the system. Hence the name "Dynamic"
Main objective of this testing is to confirm that the software product works in conformance with  the business requirements. This testing is also called as Execution technique or validation testing.
Dynamic testing executes the software and validates the output with the expected outcome. Dynamic testing is performed at all levels of testing and it can be either black or white box testing.

Testing Techniques used for Static Testing:

· Informal Reviews: This is one of the type of review which doesn't follow any process to find errors in the document. Under this technique , you just review the document and give informal comments on it.
· Technical Reviews: A team consisting of your  peers,   review the technical specification of the software product and checks whether it is suitable for the project. They try to  find any discrepancies in the specifications and standards followed. This review concentrates mainly on the technical document related to the software such as Test Strategy, Test Plan and requirement specification documents.
· Walkthrough: The author of the work product explains the product to his team. Participants can ask questions if any.  Meeting is led by the author. Scribe makes note of review comments
· Inspection: The main purpose is to find defects and meeting is led by trained moderator. This review is a formal type of review where it follows strict process to find the defects. Reviewers have checklist to review the work products .They record the defect and inform the participants to rectify those errors.
· Static code Review: This is systematic review of the software source code without executing the code. It checks the syntax of the code, coding standards, code optimization, etc. This is also termed as white box testing .This review can be done at any point during development.

 

Testing Techniques used for Dynamic Testing:



· Unit Testing:Under unit testing ,  individual units or modules is  tested by the developers. It  involves testing of source code by developers.
· Integration Testing: Individual modules are grouped together and tested by the developers. The purpose is to determine that modules are working as expected once they are integrated.
· System Testing: System testing is performed on the whole system by checking whether the system or application meets the requirement specification document.

Also , Non-functional testing like performance, security testing fall under the category of dynamic testing.

 

Difference between Static and Dynamic Testing:



Static Testing
Dynamic Testing
Testing done without executing 
the program
Testing done by executing
 the program
This testing does verification 
process
Dynamic testing does validation
 process

Static testing is about prevention 
of defects
Dynamic testing is about finding 
and fixing the defects
Static testing gives assessment of 
code and documentation
Dynamic testing gives bugs/bottlenecks
 in the software system.
Static testing involves checklist
 and process to be followed
Dynamic testing involves test cases
 for execution
This testing can be performed before 
compilation
Dynamic testing is performed after
 compilation
Static testing covers the structural and 
statement coverage testing
Dynamic testing covers the executable 
file of the code
Cost of finding defects and fixing is 
less
Cost of finding and fixing defects is 
high
Return on investment will be high as 
this process involved at early stage
Return on investment will be low as 
this process involves after the development
 phase
More reviews  comments are highly 
recommended for good quality
More defects are highly recommended for
 good quality.
Requires loads of meetings
Comparatively requires lesser meetings

Conclusion:

Verification and Validation are two measures used to check that the software product meets the requirements specifications. Static testing involves verification whereas dynamic testing involves validation. Together they help improve software quality.


No comments:

Post a Comment