Test Stand with Automated Acceptance Test Suite

The OpenProcurement toolkit has been extended with Test Stand with Automated Acceptance Test Suite. It covers running tests, exploring test run details (including historical records), and publishing the results. Test Stand provides self-service means for project stakeholders to enable adding new test configurations as needs arise. Test Stand includes test cases documentation, instructions and implementation recommendations for use by existing, prospective and future web platforms.

Acceptance test suite is an unbiased criteria for evaluation of the web platform readiness and compliance levels. It serves the two main objectives:

  • the ability to evaluate new web platforms via such objective and automated criteria as acceptance tests;
  • the ability to continue using the Test Stand by stakeholders in order to ensure compliance during operations and further project development.

Automated Acceptance Testing

The Test Stand includes creating testcases, instructions and implementation recommendations for web platforms to cover Anonymous User, Procuring Entity, Provider and Complaint Review Body roles. Test suites and their updates are sent to the code hosting platform Github. Continuous integration server Jenkins allows running jobs that continually test provided test scenarios.

OpenProcurement Test Stand with automated acceptance test suite

The web platform that wants to be connected to the Central Database has to prove its compliance by implementing relevant part of acceptance testsuite and passing the tests run. Early bug detection is ensured because new versions of the web platform code have to be tested with automated acceptance test suite before deployment to production. On the other hand, ability to test new versions of Central Database API codebase will provide confidence in their compatibility with current web platform codebase.

All these factors shorten development iterations for OpenProcurement toolkit and for web platforms. Their continuous re-testing enables fast regression detection and allows faster bug fixing turnaround.