Are there bugs in your voting software?

A bug in voting software could be very disruptive. If a bug is found after a winner is announced, turmoil could arise within the organization, especially if a significant amount of time has passed.

OpenSTV is designed to minimize the possibility of bugs ocurring:

  1. Testing. A former co-worker of mine wisely stated, "Each software bug is really two bugs. The bug itself and the failure of any test to catch the bug" (paraphrased). OpenSTV is extensively tested to ensure that any changes in the code do not change election results.
  2. Comparing with results of other software. Testing ensures that you don't have unintended changes, but you also need to ensure that the results are correct. Many of OpenSTV's methods have been tested against other software implementations to validate correctness.
  3. Comparing against actual election results. Where other software is not available, correctness may also be validated against actual election results where the ballots are publicly available.
  4. Code reuse. OpenSTV's methods rely on core code that is shared among all the methods. Because of this code reuse, the core code is extensively tested and even more likely to be correct.

Here is a summary of the testing of some of OpenSTV's methods:

  • Cambridge STV -- Tested against Choice Plus Pro and Cambridge election results for about 14 elections.
  • ERS97 STV -- Tested against eSTV for hundreds of test elections.
  • Iceland STV -- Tested against eSTV for hundreds of test elections.
  • Minneapolis STV -- Tested against two election results.
  • San Francisco RCV -- Tested against San Francisco election results for about 10 elections.
  • Scottish STV -- Tested against eSTV for hundreds of test elections.

Several other methods have also been tested against other software but to a lesser extent than the ones listed above.

Because of the design and testing of OpenSTV, you can use it to run your elections with confidence.