Testing the digital CRVS system rigorously is essential to ensure that the system is fit for purpose when it is deployed. Testing should be done sequentially, as per the figures below, and trace directly back to system requirements defined in the Analysis and Design Phase.



Testing Top Tips

  1. Understand your test results: spend time to understand the root cause of test “fails” – this will lead you to the solution to the problem.
  2. Enforce strict phase containment: Phase containment is the finding and removing of bugs/defects within the phase in which they were discovered. By containing the faults in one phase of software development the bug/defect cannot affect later phases.
  3. Increase test coverage by breaking each test case into individual units: this will allow you to test different aspects of the component e.g. security, user experience, functional testing etc.
  4. Performance testing is critical: without it, the system could fulfil all functional requirements but operate at an unacceptable speed.
  5. Go beyond requirements testing: Test the system for what it is not supposed to do as well as what it is supposed to do.
  6. Keep developers away from the test environment, this reduces the likelihood that they will omit important code/configuration changes from system documentation.
  7. Write clear and descriptive bug reports: these should include symptoms of the bug, the effects and all possible solutions.

Define the testing approach and plan by completing the Testing Approach Template, considering:

  • What types of testing need to be completed?
  • How will each test phase be contained?
  • How will defects been managed and resolved?
  • What is the acceptance criteria?
  • What test environments are required?
  • Which project actor is responsible for each test type/phase?

Identify the required team to implement the testing approach; onboard these resources onto the CRVS Digitisation Team and ensure that they understand the scope and objectives of the CRVS Digitisation Project.


Define a testing plan in consultation with the developers. The plan below demonstrates the phased manner in which testing should be conducted, ensuring that clear stage gates are defined to enforce phase containment and mitigate the risk of the passing on of bugs from one test phase to the next.


High-level testing plan: enforcing phase containment

The V Model: Traceable Testing

The V-Model is a software development process that ensures that each stage of testing is contained and directly traceable to defined requirements. If the test does not fulfil all documented requirements and design principles, you should not progress to the next phase of testing. The V-model is a useful approach to adopt to ensure that the digital CRVS system fulfils all business, user and technical needs.


CRVS Guidebook_V Model

The V Model: Traceable Testing