The following test strategies are applied during system and acceptance testing, as applicable for the project:
Functional testing
Functional tests aim to test whether the system meet the functional requirements. Functional tests normally use test automation tools to record and simulate user behavior. Many times functional tests are organized in sets of preordered tests to simulate particular sequence of user activities.
Data-Integrity testing
Data-integrity tests aim to verify that the application data remains consistent when the application is used. Data-integrity tests usually represent a set of scripts that perform database queries to verify that the data is consistent. Data-integrity tests shall be performed before, with, and after the functional tests.
User-Interface testing
User-interface tests aim to ensure that the user-interface is usable. Content validation (e.g. proofreading) is also considered part of the user-interface tests.
Load and Stress testing
Load and stress tests aim to test the system behavior under load condition. Their goal is to ensure that the system meets its performance and stability requirements, and to identify the limits of the system. Load and stress tests are usually performed with test automation tools that simulate the simultaneous activity of multiple users.
Security and Access Control testing
Security and access control tests aim to verify that the system properly implements all security requirements.
Fail over and Recovery testing
Fail over and recovery tests aim to verify that the system reliability requirements are met. These tests are usually performed manually.
Installation testing
Installation tests aim to ensure that an installation of the software product is complete and functional. They are usually performed either manually or with scripts that verify the system configuration, the availability of all required components, and the accessibility of all external information systems such as databases, mail servers, etc.