# Testing

Testing is the process of verifying and validating that the software meets the requirements of the institution and its stakeholders. This phase involves a variety of testing activities, such as unit testing, system testing, integration testing, user acceptance testing, performance testing and security testing.

The activities to be carried out in this phase are detailed below.

# Test planning [Mandatory]

#### Test planning \[Mandatory\]

<span style="color: black;">The objective of test planning is to define the scope, approach, resources and schedule of testing activities. It includes:</span>

1. <span style="color: black;">Defining test scope and objectives</span>
2. <span style="color: black;">Defining the required resources including testing team, infrastructure, logistics and testing tools</span>
3. <span style="color: black;">Defining the approach for testing including the entry and exit criteria for each testing stage</span>
4. <span style="color: black;">Defining the expected test deliverables</span>
5. <span style="color: black;">Scheduling test activities in an appropriate manner</span>

<p class="callout success">**<span style="color: black;">Output: </span>**<span style="color: black;">Test strategy and test plan</span></p>

# Test design [Mandatory]

<span style="color: black;">This step involves defin</span>ing<span style="color: black;"> the test scenarios required to test the software requirements and the test cases required to test each scenario. Test cases should include:</span>

<span style="color: black;"> </span>

1. The reference to the requirement being tested
2. Description of the function or feature being tested
3. Test data &amp; instructions to run the test
4. Expected test results

<p class="callout warning"><span style="color: black;">It is crucial to keep in mind that tests should be designed to test both the specified and unwritten requirements including expected user behavior and arbitrary scenarios that could break the system.</span></p>

<p class="callout success">**<span style="color: black;">Output: </span>**<span style="color: black;">Test scenarios and test cases</span></p>

# Test execution[Mandatory]

<span style="color: black;">In this step testing is executed based on the test plan and test cases. Ensure the testing teams are aware of their responsibilities prior to testing. Ideally the testing team should be in one location to enable easier collaboration. Key activities include:</span>

1. Preparation and setup of the test environment
2. Execution of test cases based on the test plan
3. Recording of test results
4. Recording, classification and prioritization of identified defects
5. Resolution of defects based on priority
6. Regression testing after defects have been resolved

<span style="color: #1f1f1f; background: white; mso-highlight: white;">The minimum test types to conduct include</span>

- <span style="color: #1f1f1f; background: white; mso-highlight: white;">Unit testing</span>
- <span style="color: #1f1f1f; background: white; mso-highlight: white;">Integration end-to-end (e2e) tests </span>
- <span style="color: #1f1f1f; background: white; mso-highlight: white;">User acceptance tests</span>
- <span style="color: #1f1f1f; background: white; mso-highlight: white;">Security testing as per software security guidelines</span>
- <span style="color: #1f1f1f; background: white; mso-highlight: white;">Performance / Stress tests</span>

<p class="callout success">**<span style="color: black;">Output<span style="mso-tab-count: 1;">: </span></span>**<span style="color: black;">Test reports with test completion status and test pass rates, </span><span style="color: black;">Defect logs</span></p>

# Test closure [Mandatory]

<span style="color: black;">This is the final step in the testing process. The testing phase is closed when the following is achieved:</span>

1. <span style="color: black;">All the tests have been completed and there are justifications for any tests that cannot be completed </span>
2. <span style="color: black;">All critical defects have been resolved. If any defects are open, then reasons for defects being open should be provided. Defects should be analysed based on their impact on the operations of the institution. A decision should be made on which defects must be closed before the software or a </span>component of the software <span style="color: black;">can go to production</span>

<p class="callout success">**<span style="color: black;">Output:</span>**<span style="font-family: 'Noto Sans Symbols'; mso-fareast-font-family: 'Noto Sans Symbols'; mso-bidi-font-family: 'Noto Sans Symbols'; color: black;"><span style="mso-list: Ignore;"><span style="font: 7.0pt 'Times New Roman';"> </span></span></span><span style="color: black;">Final testing report showing completion rate, pass rate and status of defects</span></p>