Every time we come across a question different types of testing? The bell that first rings for us include Integration Testing, Unit Testing, Performance Testing, Security Testing, Automation Testing and so on. While reading all about the testing processes and types, I came across the information that tells above-written types of testing lies within a specific type of testing which is called as Dynamic Testing. So, from here I craved the curiosity for the major differences among Static Testing and Dynamic Testing?
I’ve not come across the term dynamic testing before, but at my workplace, static testing is when we are reviewing documents to identify problems. General functional specifications, but could be design documents from developers too.
For us, it’s to distinguish between testing an idea, and testing code in some way.
Hmm I wonder what it could mean. The closest thing I can think of is the static analysis of code. I.E. observing our artifact before their runtime and execution.
Dynamic testing is any kind of testing that involves actually running software code - to run the software or component within the software.
Static testing does not involve running code. It usually involves reviewing requirements, documentation or code.
Static Testing and Dynamic Testing are two different types of Software testing. Dynamic testing includes functional and non-functional testing whereas Static testing includes reviews etc. Most of the functional testing services include both these types of testing and Software testers are well aware of these.
In Static Testing, the focus is not on the code execution, rather, we manually check for requirement documents, code, and design documents in order to find the errors. Therefore, the name is given for such type of testing is Static Testing. The objective of such testing is to find the errors at earlier stages of the development of any application or software. This testing is performed to prevent the bugs from occurring instead of finding the bugs. This type of testing is also called as Verification testing (where we are only verifying and not validating anything under any parameter) or non-execution technique. Static Testing includes both automated and manual reviews for the documents corresponding to a software. This review is part of early Software Testing Life Cycle, so that any major defect can be caught. This testing is consists of examining the documents such as requirement specifications, Design Document, Source Code, Test Plans, Test Cases, Test Scripts, User Help Guide and web page content. The cost involved in finding and fixing the defects is much less. This kind of testing requires ample meetings in order to come to a common conclusion.
In Dynamic Testing, the code execution takes place. It focuses on checking the functional behavior of the software and the overall performance of the system. The foremost objective of such testing is to confirm that the developed Software Product is working in accordance with the provided business requirements. These Business requirements are being already analyzed in Static Testing process. This testing is performed for finding and fixing the bug unlike preventing the bugs as in Static Testing. Dynamic testing includes the test case execution. We perform Dynamic testing after the developer has provided the fixed code to a tester for testing, therefore, the cost of finding and fixing the bugs found is higher as compared to Static Testing. In Dynamic Testing, we require fewer meetings as the developer, tester and product owner need not reach any conclusion for the feature development and also such important decisions are already been taken care in Static Testing process. This way of testing is known as Validation testing or Execution technique which is an opposite name for Static Testing. Dynamic Testing can be done at all levels of testing and can either of the two testing techniques i.e black box and white box testing. Unit Testing, Integration Testing and System Testing are all part of Dynamic testing.
Hope this information is helpful for you!
Side note / Semi-off-topic: Even in static analysis, only a human can actually test (explore, learn, and perform heuristic criticism); computers are still limited to algorithmic checking, which is only part of testing.
easy to understand…