The testing process is the third major step in the technology project development and implementation methodology, following the development process (see Development Process). It 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, at least it is likely that most of 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 should 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 thing'. Given the high-pressure nature of elections, this aspect of technology testing is crucial to the success of the electoral process.
The testing strategy, part of the overall project management plan, will set out the steps necessary to test the new technology. These steps could include:
- Allocating responsibility for testing to appropriate technical committee
- Taking delivery of prototype system or production version of system, as appropriate
- Assembling system in a test environment
- Applying structured tests to system, noting in writing where the system does or does not meet the specifications
- Establishing a panel of users to test the system in a simulation environment
- If appropriate, including external stakeholders in the testing process
- Asking suppliers to correct any identified problems and resubmit the system for further testing
- After initial low-load testing indicates the product is fit for purpose, conducting high-load tests, simulating as close as possible the maximum load expected under real conditions
- Having independent auditors verify integrity of source codes and escrow source codes as appropriate
- Providing the technical committee and the management committee with a report on the results of the testing
- Once the system has passed all tests and management has agreed to proceed, moving to implement the system
If tests 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. For this next and final stage in the technology project development and implementation methodology, see Implementation Process.