There are so many different types of testing that it would be difficult to come up with a comprehensive list. Additionally, each type of testing typically has a number of variants that have been developed based on the team creating the testing strategy. However, the most common types of testing used by a majority of projects are:
Unit Testing (Component Testing) – refers to the testing of individual software components as they are completed. This type of testing is typically completed by the development team.
Integration Testing – refers to the testing of components as they are combined or integrated together. This ensures that each component that has been tested on its own operates correctly when it is used in conjunction with the other components that it is designed to interact with. This is particularly important for client/server and service oriented architecture systems.
User Acceptance Testing – refers to testing that is performed by the user or end customer of the system as a condition of approval. User Acceptance Testing is where the user/client ensures that the final application or product meets the agreed upon requirements set forth by the Business Requirements Document. This is also why traceability of requirements throughout the entire Analysis, Development, and Testing lifecycle is so important.
Functional Testing (Black Box Testing) – refers to testing the features and behavior of an application to ensure that it coincides with the functional software specifications provided. This type of testing is also referred to as black box testing because it completely ignores the internal workings of the program and focuses only on the outputs as a result of the specified inputs and execution steps.
Usability Testing – refers to testing the ease in which users can learn the application, as well as the users’ efficiency and productivity while using the application.
Performance Testing (Load Testing, Stress Testing) – refers to testing performed to evaluate whether the system meets the documented performance requirements. Performance Testing ensures that the system will support a specified number of users while still maintaining specific service level agreements (SLAs) for page load times and service response times. This type of Performance Testing is also called Load Testing. Additionally, during Performance Testing, often it will be required to test the systems limits and determine the maximum number of concurrent users that can be supported before the system fails. This is referred to as Stress Testing.
Regression Testing – refers to testing a portion of the application that has previously been tested following a modification to ensure that the original functionality still works and behaves per the specification. While Regression Testing really just means to go back and retest, it typically refers to Functional Testing.
posted @ Thursday, July 2, 2009 11:21 PM by Chris Adams