The testing process is the third major step in the technology project development. It follows the development process and precedes the implementation stage.
As with the development process, the complexity of the testing process will depend on the complexity of the technology being implemented. If the technology is a standard off-the-shelf product, it will already have undergone considerable testing. While standard products may not be perfect, most likely their limitations will be well known.
However, many electoral applications of technology involve more than standard products. In some cases, standard products may have to be adapted or modified to perform tasks other than those for which the products were designed. In other cases, new products may have to be designed and built to meet a specific electoral need. These kinds of products will require rigorous testing for the election management body (EMB) to be satisfied that they are fit for their intended purpose.
The testing process generally involves the EMB working with the suppliers of the products or services. The process can vary greatly in length, depending on how rigorous the testing.
For most items of technology, a structured, documented testing strategy should be prepared before the technology is delivered for testing. The testing strategy ought to be designed to test that the product correctly performs all of the required functions as per the specifications.
In particular, where the technology is to be used in large quantities or in high-pressure situations involving tight deadlines or large quantities of data or users, it is wise to subject the technology to load tests to ensure that the technology will stand up to the pressure of the real event. Given the high-pressure nature of elections, this aspect of technology testing is crucial to the success of the electoral process.
The testing strategy, which is part of the overall project management plan, sets out the necessary steps to test the new technology:
- allocate responsibility for testing to appropriate technical committee
- take delivery of prototype system or production version of system, as appropriate
- assemble the system in a test environment
- apply structured tests to system, noting in writing where the system does or does not meet the specifications
- establish a panel of users to test the system in a simulation environment
- include external stakeholders in the testing process, if appropriate
- request that suppliers correct any identified problems and resubmit the system for further testing
- conduct high-load tests (after initial low-load testing indicates the product is fit for purpose), simulating as close as possible the maximum load expected under real conditions
- have independent auditors verify the integrity of source codes and escrow source codes, as appropriate
- provide the technical committee and the management committee with a report on the results of the testing
- move towards implementing the system once it has passed all tests and management has agreed to proceed,
If tests up to this stage have involved only prototypes or limited quantities of the required product, the production version of the system will need to be tested again after installation, particularly where the product is networked and/or geographically dispersed.
Once the production version has been delivered and passed testing, the implementation stage can begin.