This article was developed from concepts in the book Global Software Test Automation: Discussion of Software Testing for Executives. |
Introduction
When thinking of the types of Software Testing, many mistakenly equate the mechanism by which the testing is performed with types of Software Testing. The mechanism simply refers to whether you are using Manual or Automated Software Testing. This article goes beyond that simple mechanism-based definition to define the intrinsic nature of the tests themselves.
Types of Software Testing
There are a number of types of Software Testing, categorized by what is being tested and the purpose, or objective, of the test. The objectives range from usability to disaster recovery. For many organizations, the most common testing types are: functionality testing, compatibility testing, performance testing, scalability testing, usability testing, application security testing, accessibility testing, and regulatory-compliance testing. A short list follows:
- QA Testing – QA Testing is loosely defined vernacular for a combination of requirements-based, regression, and feature level testing performed during post code-delivered phases such as the system, integration, and final test phase, to assess and assure the quality of the product.
Note: Currently, the term “QA testing” is widely misused to refer to functionality validation and verification testing. This is technically incorrect, but since its use is pervasive, we offer the above definition for it.
- Functionality, or feature-level, Testing – Functionality, or feature-level, testing is performed to verify the proper functionality of the software. It may include testing of the mathematical and algorithm correctness of scientific and financial software, as well as testing of GUI functionality.
- Compatibility Testing – Compatibility testing ensures that the software is compatible with the hardware, operating systems, and other software packages that it will be working with.
- Performance Testing – Performance testing determines how well the software performs in terms of the speed of computations or responsiveness to the user.
- Scalability Testing – Scalability testing is performed to ensure that the software will function well as the number of users, size of data sets, or other factors change from small to large values.
- Usability Testing – Usability testing ensures that the software has a good level of ease of use.
- Application Security Testing – Application security testing determines how well the software can defend against attacks, such as firewall software securing a computer against Internet viruses and worms.
- Accessibility Testing – Accessibility testing is performed to ensure that the software will be accessible under various scenarios by the intended users.
- Regulatory-Compliance Testing – Regulatory-compliance testing is performed to ensure that the software is in compliance with all applicable regulations.
Conclusion
Understanding the various types of Software Testing from the point of view of the intrinsic nature of the tests themselves helps an individual to better understand the testing process. This helps them to understand the complexity of the testing task, and the interrelation of the components of Software Testing.