Software testing is a process of executing a program or system with the intent of finding defects. Testing is a concurrent lifecycle process of engineering, using, and maintaining test ware in order to measure and improve the quality of the software.
In simple words, testing is a process of verifying that the developed software system meets the specified requirements and business needs. Issues/defects identified during testing need to be analyzed, corrected, and retested.
The best practice in testing is to develop test cases as per the V-model given below:
As we can see, test cases can be prepared once requirements have been identified. Testing occurs at multiple levels. Business Analyst gets actively involved most of them. Here is a diagram depicting various types of testing and their focuses:
Unit Testing is carried out on a single module or component. The programmers test the component independently to make sure that expected outputs are generated when inputs are provided.
The primary support provided by BA in this aspect of the component testing can be:
Unlike testing of an independent single component, two or more components are involved in Integration testing. Integration Testing should be performed each time any changes to a component that is likely to impact associated components. Integration testing ensures multiple components and applications can work together. Programmers / independent QA team are responsible for carrying out integration testing.
The primary support provided by BA in this aspect of the component testing can be:
System testing verifies that the system, as a whole, works as per specified requirements. Also called Business Process Testing or as End-to-end testing. System is performed to ensure that all system components run with one another. System testing also ensures that all interfaces work together properly.
Business Analysts are actively involved in System Testing. The following are common activities (not a comprehensive list)
User acceptance testing is conducted by end users to give them the confidence that the system can be rolled out into production.
Business Analysts are actively involved during User Acceptance Testing. The following are common activities (not a comprehensive list)
Regression Testing ensures that a change of a particular module does not negatively affect existing modules. Typically, a Regression Testing suite is a subset of system test cases. Business Analyst is generally involved in Regression testing. S(he) may carry out testing of a few critical test cases form the Regression suite to verify critically functionality is functioning.
Though Business Analysts’ primary role is to be the requirements owner in a project, they do play a significant role in software testing. To ensure that the developed system meets the business needs, Business Analysts get involved in assisting test case development, review, execution of part of test cases and support all stakeholders during testing activities.