|Criteria||Static Testing||Dynamic Testing|
|Definition||Static Testing is a method of testing whereby work products are reviewed without executing them.||Dynamic Testing is a method of testing whereby the behavior of work products is evaluated by executing them.|
|Objective||Static Testing ‘prevents’ bugs in the software.||Dynamic Testing ‘detects’ bugs in the software.|
||Work products like Requirements (Business / Software), Architecture & Design, Mockups, Code, Test Artifacts and User Guides are evaluated.||Executable code / program is tested.|
||Usually, static testing is conducted manually though code reviews can be tool-assisted.||Dynamic testing can be either manual or automated.|
||Reviews, walkthroughs and inspections are the three types of Static Testing.||Dynamic Testing comprises of two major groups of testing (Functional Testing and Non-Functional Testing) each of which have many types.|
||Static Testing is conducted throughout the life cycle of the software.||Dynamic Testing is conducted at four distinct levels: Unit, Integration, System and Acceptance.|
|Responsibility||Depending on the work product, all members of the team may be involved at one time or the other.||Generally, Unit Testing is conducted by software developers, Integration and System Testing by software testers, and Acceptance Testing by clients.|
||Static Testing can be conducted right from the beginning of the project — as soon as Requirements Specification is ready.||Dynamic Testing can be conducted only after executable code is ready.|
|Assistance||Normally, checklists are used to assist in testing.||Normally, test cases are used to assist in testing.|
|Cost||The cost of finding and fixing defects during Static Testing is low.||The cost of finding and fixing defects during Dynamic Testing is high.|
|VvsV||Static Testing is a part of Verification.||Dynamic Testing is a part of Validation.|
Need more clarity?
Learn about VERIFICATION vs VALIDATION.
Last Updated on September 16, 2020 by STF