Dynamic testing

In software development, dynamic testing (or dynamic analysis) is examining the runtime response from a software system to particular input (test case).

Tests can be run manually or via automation.

Unit testing, integration testing, System testing and acceptance testing are forms of dynamic testing.

In contrast to static testing, the software must runnable.

Evaluation
Proponents cite that dynamic testing:


 * can identify weak areas in the runtime environment
 * supports application analysis even when the tester cannot access the source code
 * can identify vulnerabilities that are difficult to find via static testing
 * can verify the correctness of static testing results

Critics cite that:


 * Automated tools may give the wrong security, such as check everything
 * Automated tools can generate false positives and negatives
 * Dynamic testing is hard to track down the vulnerabilities in the code, and it takes longer to fix the problem, therefore, fixing bugs is expensive