---
description: Dynamic Testing is defined as a software testing type, which checks the dynamic behaviour of the code is analysed.
title: What is Dynamic Testing? Types, Techniques &#038; Example
image: https://www.guru99.com/images/what-is-dynamic-testing.png
---

 

[Skip to content](#main) 

**⚡ Smart Summary**

Dynamic Testing executes the application and observes how the running code behaves with real inputs, so testers can validate functionality, performance and stability that no amount of document review is able to reveal.

* 🎯 **Purpose:** Validate real runtime behaviour, not the documents that describe it.
* 🔀 **Two branches:** White box examines the code, black box examines the behaviour.
* 🧱 **Four levels:** Unit, integration, system and acceptance testing all execute code.
* ⚙️ **Non-functional:** Performance, recovery, compatibility, security and usability checks run here.
* 🔄 **Process:** Strategy, test design, environment setup, execution and defect reporting.
* 💰 **Trade-off:** Deeper defect detection in exchange for time, environments and cost.

[ Read More ](javascript:void%280%29;) 

![Dynamic Testing types, techniques and example](https://www.guru99.com/images/what-is-dynamic-testing.png) 

## What is Dynamic Testing?

**Dynamic Testing** is a software testing method used to test the dynamic behaviour of software code. The main purpose of dynamic testing is to examine software behaviour with dynamic variables — variables that are not constant — and to find weak areas in the software runtime environment. The code must be executed in order to test the dynamic behaviour.

Testing is [verification and validation](https://www.guru99.com/verification-v-s-validation-in-a-software-testing.html), and it takes both Vs to make testing complete. Verification is carried out by static testing, which reviews requirements, design documents and code without running them. Validation is carried out by dynamic testing, which runs the build and compares what the application actually does against what it is supposed to do.

The table below sets the two apart at a glance.

| **Aspect**             | **Static testing (verification)**                             | **Dynamic testing (validation)**                                |
| ---------------------- | ------------------------------------------------------------- | --------------------------------------------------------------- |
| Code executed          | No                                                            | Yes                                                             |
| Typical activities     | Reviews, walkthroughs, inspections, static analysis           | Test case execution across all test levels                      |
| Question answered      | Are we building the product right?                            | Are we building the right product?                              |
| Defects found          | Ambiguous requirements, coding-standard violations, dead code | Wrong output, memory leaks, timing faults, integration failures |
| Starts                 | As soon as an artifact exists                                 | Once an executable build exists                                 |
| Relative cost of a fix | Lower, because defects are caught earlier                     | Higher, because defects surface later                           |

## Dynamic Testing Example

A short worked example shows how dynamic testing behaves in practice.

Suppose a Login page is being tested. It has two fields, Username and Password, and the Username is restricted to alphanumeric characters.

When the user enters the Username as “Guru99”, the system accepts it. When the user enters “Guru99@123”, the application throws an error message. This result shows that the code is acting dynamically based on the user input.

Dynamic testing therefore means working with the actual system, providing an input, and comparing the actual behaviour of the application with the expected behaviour — in other words, working with the system with the intent of finding errors.

Dynamic testing is therefore the process of validating a software application as an end user would, under different environments, to build the right software.

## What does dynamic testing do?

The main aim of dynamic tests is to ensure that the software works properly during and after installation, delivering a stable application without major flaws. No software is completely error free, and testing can show the presence of defects but never their absence.

Dynamic tests also ensure consistency across the software, as this example shows.

In a banking application there are several screens, such as My Accounts, Funds Transfer and Bill Pay. All of them contain an amount field.

Suppose the My Accounts field displays the amount as 25,000, Funds Transfer displays $25,000 and the Bill Pay screen displays $25000\. The amount is the same, but the way it is displayed is not, which makes the software inconsistent.

Consistency is not limited to functionality. It also covers standards such as performance, usability and compatibility, which is why dynamic testing matters so much.

## Types of Dynamic Testing

Dynamic testing is classified into two categories.

* White Box Testing
* Black Box Testing

The diagram below maps the two categories against the levels of testing that sit beneath them.

[](https://www.guru99.com/images/3-2016/032216%5F0804%5FDynamicTest1.png)

Each type and its intended purpose is described below.

[White Box Testing](https://www.guru99.com/white-box-testing.html) — a software testing method in which the internal structure and design are known to the tester. Its main aim is to check how the system performs based on the code. It is mainly performed by developers or by white box testers who have programming knowledge.

[Black Box Testing](https://www.guru99.com/black-box-testing.html) — a method of testing in which the internal structure, code and design are NOT known to the tester. Its main aim is to verify the functionality of the system under test. This type of testing requires the complete test suite to be executed, is mainly performed by testers, and needs no programming knowledge.

Black box testing is again classified into two types.

* Functional Testing
* Non-Functional Testing

### RELATED ARTICLES

* [Static Vs Dynamic Testing: Difference Between Them ](https://www.guru99.com/static-dynamic-testing.html "Static Vs Dynamic Testing: Difference Between Them")
* [Agile Test Automation Framework ](https://www.guru99.com/automation-testing-agile-scrum.html "Agile Test Automation Framework")
* [Test Condition vs Test Scenario in Software Testing ](https://www.guru99.com/test-scenario-vs-test-condition.html "Test Condition vs Test Scenario in Software Testing")
* [What is Application Testing? ](https://www.guru99.com/application-testing.html "What is Application Testing?")

### Functional Testing

[Functional testing](https://www.guru99.com/functional-testing.html) is performed to verify that all the features developed match the functional specifications. It is carried out by executing the functional [test cases](https://www.guru99.com/test-case.html) written by the QA team. In this phase the system is tested by providing input, verifying the output, and comparing the actual results with the expected results.

There are different levels of functional testing, of which the most important are the four below.

* [Unit Testing](https://www.guru99.com/unit-testing-guide.html) — a unit is a small, testable piece of code. Unit testing is performed on an individual unit of software and is performed by developers.
* [Integration Testing](https://www.guru99.com/integration-testing.html) — performed after unit testing, by combining the individual testable units. It is performed either by developers or by testers.
* [System Testing](https://www.guru99.com/system-testing.html) — performed to ensure that the system behaves as per the requirements. It is generally performed when the complete system is ready, by testers, once the build is released to the QA team.
* [Acceptance Testing](https://www.guru99.com/user-acceptance-testing.html) — performed to verify whether the system has met the business requirements and is ready for use or deployment. It is generally performed by the end users.

### Non-Functional Testing

[Non-functional testing](https://www.guru99.com/non-functional-testing.html) is a testing technique that does not focus on functional aspects and instead concentrates on non-functional attributes of the system, such as memory leaks, performance or robustness. Non-functional testing is performed at all test levels.

There are many non-functional testing techniques, of which the most important are the five below.

* [Performance Testing](https://www.guru99.com/performance-testing.html) — checks whether the response time of the system is normal, as per the requirements, under the desired network load.
* [Recovery Testing](https://www.guru99.com/recovery-testing.html) — verifies how well a system recovers from crashes and hardware failures.
* [Compatibility Testing](https://www.guru99.com/compatibility-testing.html) — verifies how the system behaves across different environments.
* [Security Testing](https://www.guru99.com/what-is-security-testing.html) — verifies the robustness of the application, ensuring that only authorised users and roles can access the system.
* [Usability Testing](https://www.guru99.com/usability-testing-tutorial.html) — verifies the usability of the system by the end users, and how comfortable those users are with it.

## Dynamic Testing Techniques

With the types settled, the next question is how a dynamic test cycle is actually run.

Dynamic testing techniques in the [STLC](https://www.guru99.com/software-testing-life-cycle.html) consist of tasks such as requirements analysis for the tests, test planning, test case design and implementation, test environment setup, test case execution, bug reporting and finally test closure. Every task in dynamic testing depends on the completion of the previous task in the testing process.

Within the STLC, the actual dynamic testing process starts from test case design. The diagram below shows the sequence of activities, each of which is described after it.

[](https://www.guru99.com/images/3-2016/032216%5F0804%5FDynamicTest2.png)

Before entering the process, the strategy to be followed for dynamic testing has to be agreed.

A test strategy should focus mainly on the resources available and the timeframe. Based on those two factors, the objective of the testing, the scope of testing, the phases or cycles of testing, the type of environment, the assumptions or challenges that may be faced and the risks all have to be documented.

Once the strategy is defined and accepted by management, the actual test case design process starts.

### Test design and implementation

In this phase the team identifies the following.

* Features to be tested
* Test conditions derived from those features
* Coverage items derived from the test conditions
* Test cases derived from the coverage items

Black box [test design techniques](https://www.guru99.com/equivalence-partitioning-boundary-value-analysis.html) such as equivalence partitioning, boundary value analysis, [decision table testing](https://www.guru99.com/decision-table-testing.html) and [state transition testing](https://www.guru99.com/state-transition-testing.html) are what turn a test condition into a concrete set of executable cases.

### Test environment setup

The [test environment](https://www.guru99.com/test-environment-software-testing.html) should always be similar to the production environment. In this phase the build is installed and the test machines are managed and configured.

### Test execution

During this phase the test cases are actually executed, either manually or through [automation](https://www.guru99.com/automation-testing.html), and the actual results are recorded against the expected results.

### Bug report captured

Based on the execution, if the expected and actual results are not the same, the test case has to be marked as Fail and a bug logged in the [defect management](https://www.guru99.com/defect-management-process.html) process.

## Advantages of Dynamic Testing

* Dynamic testing reveals defects that are considered too difficult or complicated to catch, and that static analysis cannot cover at all.
* The software is executed end to end, which raises the quality of both the product and the project.
* Dynamic testing is an essential means of detecting security threats in a running system.
* Runtime-only faults such as memory leaks, timing problems and integration failures surface here and nowhere else.

## Disadvantages of Dynamic Testing

* Dynamic testing is time consuming, because executing the application or code requires a large amount of resources.
* It increases the cost of the project, because it does not start early in the software lifecycle and issues fixed in later stages cost more to repair.
* A production-like environment and realistic test data are prerequisites, and both take effort to build and maintain.

## FAQs

👥 Who performs dynamic testing?

Developers own the white box side, running unit and component checks. QA testers own the black box side, from system testing onward. End users close the cycle with acceptance testing.

🤖 How does AI help generate dynamic test cases?

Models read requirements and existing cases, then propose the boundary values, invalid inputs and state sequences a human backlog usually skips. A tester still confirms each expected result before execution.

🧑‍💻 Can GitHub Copilot write dynamic test scripts?

Yes. Assertion scaffolding, page objects and fixture setup are repetitive code an assistant handles well. Deciding what constitutes correct behaviour remains a human judgement rooted in the requirements.

🛠️ Which tools support dynamic testing?

Unit frameworks such as JUnit, TestNG and pytest, plus UI and API runners such as Selenium, Cypress and Postman. Load tools such as JMeter cover the non-functional side of [automation](https://www.guru99.com/automation-testing.html).

📊 How is dynamic test coverage measured?

White box work reports statement, branch and path coverage from instrumented runs. Black box work reports requirement and test condition coverage. Neither number alone proves the build is adequately tested.

🆚 Is dynamic testing the same as manual testing?

No. Dynamic testing describes executing the code, whoever or whatever drives it. A scripted [manual](https://www.guru99.com/manual-testing.html) run and an automated regression suite are both dynamic testing.

🔐 Is DAST a form of dynamic testing?

Yes. Dynamic Application Security Testing probes a running application from the outside, exactly as black box [security testing](https://www.guru99.com/what-is-security-testing.html) does, and reports vulnerabilities that only appear at runtime.

🔁 Does dynamic testing fit into a CI/CD pipeline?

It is the backbone of one. Unit and API suites gate every commit, while longer [regression](https://www.guru99.com/regression-testing.html) and performance runs execute nightly against a deployed build.

#### Summarize this post with:

ChatGPT Perplexity Grok Google AI 

**Stay Updated on AI** **Get Weekly AI Skills, Trends, Actionable Advice.** 

##### Sign up for the newsletter

Subscribe for Free 

You have successfully subscribed.  
Please check your inbox. 

![AI-Newsletter]() Chosen by over **350,000+** professionals 

[Scroll to top ](#wrapper)Scroll to top 

× 

Toggle Menu Close 

Search for: 

Search

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://www.guru99.com/#organization","name":"Guru99","sameAs":["https://www.facebook.com/Guru99Official","https://twitter.com/guru99com"],"logo":{"@type":"ImageObject","@id":"https://www.guru99.com/#logo","url":"https://www.guru99.com/images/guru99-logo-v1-150x59.png","contentUrl":"https://www.guru99.com/images/guru99-logo-v1-150x59.png","caption":"Guru99","inLanguage":"en-US"}},{"@type":"WebSite","@id":"https://www.guru99.com/#website","url":"https://www.guru99.com","name":"Guru99","publisher":{"@id":"https://www.guru99.com/#organization"},"inLanguage":"en-US"},{"@type":"ImageObject","@id":"https://www.guru99.com/images/what-is-dynamic-testing.png","url":"https://www.guru99.com/images/what-is-dynamic-testing.png","width":"700","height":"250","caption":"What is Dynamic Testing?","inLanguage":"en-US"},{"@type":"BreadcrumbList","@id":"https://www.guru99.com/dynamic-testing.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":"1","item":{"@id":"https://www.guru99.com","name":"Home"}},{"@type":"ListItem","position":"2","item":{"@id":"https://www.guru99.com/softwaretesting","name":"Software Testing"}},{"@type":"ListItem","position":"3","item":{"@id":"https://www.guru99.com/dynamic-testing.html","name":"What is Dynamic Testing? Types, Techniques &#038; Example"}}]},{"@type":"WebPage","@id":"https://www.guru99.com/dynamic-testing.html#webpage","url":"https://www.guru99.com/dynamic-testing.html","name":"What is Dynamic Testing? Types, Techniques &#038; Example","dateModified":"2026-07-29T12:34:02+05:30","isPartOf":{"@id":"https://www.guru99.com/#website"},"primaryImageOfPage":{"@id":"https://www.guru99.com/images/what-is-dynamic-testing.png"},"inLanguage":"en-US","breadcrumb":{"@id":"https://www.guru99.com/dynamic-testing.html#breadcrumb"}},{"@type":"Person","@id":"https://www.guru99.com/author/thomas","name":"Thomas Hamilton","description":"I am Thomas Hamilton, a seasoned professional in software testing, specializing in crafting comprehensive guides to help you master your software testing skills.","url":"https://www.guru99.com/author/thomas","image":{"@type":"ImageObject","@id":"https://www.guru99.com/images/thomas-hamilton-author-v2-120x120.png","url":"https://www.guru99.com/images/thomas-hamilton-author-v2-120x120.png","caption":"Thomas Hamilton","inLanguage":"en-US"},"worksFor":{"@id":"https://www.guru99.com/#organization"}},{"articleSection":"Software Testing","headline":"What is Dynamic Testing? Types, Techniques &#038; Example","description":"Dynamic Testing is defined as a software testing type, which checks the dynamic behaviour of the code is analysed.","keywords":"testing","speakable":{"@type":"SpeakableSpecification","cssSelector":[".entry-title",".summary"]},"@type":"Article","author":{"@id":"https://www.guru99.com/author/thomas","name":"Thomas Hamilton"},"dateModified":"2026-07-29T12:34:02+05:30","image":{"@id":"https://www.guru99.com/images/what-is-dynamic-testing.png"},"copyrightYear":"2026","name":"What is Dynamic Testing? Types, Techniques &#038; Example","subjectOf":[{"@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Who performs dynamic testing?","acceptedAnswer":{"@type":"Answer","text":"Developers own the white box side, running unit and component checks. QA testers own the black box side, from system testing onward. End users close the cycle with acceptance testing."}},{"@type":"Question","name":"How does AI help generate dynamic test cases?","acceptedAnswer":{"@type":"Answer","text":"Models read requirements and existing cases, then propose the boundary values, invalid inputs and state sequences a human backlog usually skips. A tester still confirms each expected result before execution."}},{"@type":"Question","name":"Can GitHub Copilot write dynamic test scripts?","acceptedAnswer":{"@type":"Answer","text":"Yes. Assertion scaffolding, page objects and fixture setup are repetitive code an assistant handles well. Deciding what constitutes correct behaviour remains a human judgement rooted in the requirements."}},{"@type":"Question","name":"Which tools support dynamic testing?","acceptedAnswer":{"@type":"Answer","text":"Unit frameworks such as JUnit, TestNG and pytest, plus UI and API runners such as Selenium, Cypress and Postman. Load tools such as JMeter cover the non-functional side of automation."}},{"@type":"Question","name":"How is dynamic test coverage measured?","acceptedAnswer":{"@type":"Answer","text":"White box work reports statement, branch and path coverage from instrumented runs. Black box work reports requirement and test condition coverage. Neither number alone proves the build is adequately tested."}},{"@type":"Question","name":"Is dynamic testing the same as manual testing?","acceptedAnswer":{"@type":"Answer","text":"No. Dynamic testing describes executing the code, whoever or whatever drives it. A scripted manual run and an automated regression suite are both dynamic testing."}},{"@type":"Question","name":"Is DAST a form of dynamic testing?","acceptedAnswer":{"@type":"Answer","text":"Yes. Dynamic Application Security Testing probes a running application from the outside, exactly as black box security testing does, and reports vulnerabilities that only appear at runtime."}},{"@type":"Question","name":"Does dynamic testing fit into a CI/CD pipeline?","acceptedAnswer":{"@type":"Answer","text":"It is the backbone of one. Unit and API suites gate every commit, while longer regression and performance runs execute nightly against a deployed build."}}]}],"@id":"https://www.guru99.com/dynamic-testing.html#schema-1154415","isPartOf":{"@id":"https://www.guru99.com/dynamic-testing.html#webpage"},"publisher":{"@id":"https://www.guru99.com/#organization"},"inLanguage":"en-US","mainEntityOfPage":{"@id":"https://www.guru99.com/dynamic-testing.html#webpage"}}]}
```
