What is Dynamic Testing?
Dynamic testing is a term in which the software is tested by executing the code. Dynamic testing uses different types of test techniques and test approaches to derive test cases such as black-box, white-box, and experience-based test techniques. Test objectives include improving quality, detecting defects, and assessing characteristics like functionality, performance, security, usability, and reliability.
Value of Dynamic Testing
Dynamic testing provides a realistic assessment of the software's behavior under various conditions. It can help identify defects that are difficult to find through static testing alone. Dynamic testing can also provide insights into the software's performance, security, and usability. By executing the code, testers can observe the software's behavior in real-time and verify that it meets the specified requirements.
Typical defects find through Dynamic Testing
Coding defects:
- Not coverage of all the code paths (e.g., missing test cases for error handling, edge cases)
- Incorrect data handling that leads to data corruption or loss (e.g., a database query that deletes records instead of updating them)
- Security vulnerabilities that expose sensitive information or allow unauthorized access (e.g., SQL injection, cross-site scripting)
Usability defects:
- User interface design that makes it difficult for users to navigate or interact (e.g., inconsistent layout, confusing navigation)
- Inconsistent user experience that confuses users or leads to errors (e.g., different error messages for the same issue, inconsistent button labels)
Functional defects:
- Incorrect functionality that does not meet the specified requirements (e.g., a login form that does not show an error message when the password is incorrect)
- Missing functionality (e.g., a search feature that does not return any results)
- Inconsistent functionality that behaves differently under different conditions (e.g., a shopping cart that displays different prices for the same
Performance defects:
- Slow response times that affect the user experience (e.g., adding items to a shopping cart takes too long)
- High resource consumption that leads to system hangs, crashes or slowdowns (e.g., a web application that consumes excessive memory or CPU)