Skip to content
This repository has been archived by the owner on Jan 28, 2019. It is now read-only.

Addition of unit tests #14

Closed
avelis opened this issue Nov 5, 2014 · 3 comments
Closed

Addition of unit tests #14

avelis opened this issue Nov 5, 2014 · 3 comments

Comments

@avelis
Copy link

avelis commented Nov 5, 2014

To whom it may concern,

There doesn't seem to be any unit tests in the code base. I believe something as legally binding as a voting system should have at least some unit tests. The benefits of unit tests far outweigh the costs. So, I hope this request is taken into consideration.

Thank you.

@svenheiberg
Copy link
Contributor

Thank you for the comment. The sole purpose of this repository is to publish the source code of the production system.

@martinsookael
Copy link

@avelis - (as a bystander I can guess that this is what caused it) The voting code was first created (procured) as a closed source solution. When open-source became hip, a part of the code was open-sourced. I've seen it a couple of times - it always raises a couple of questions when a code that was not meant to be public ends up being public.

I guess what @svenheiberg is trying to say is that this code here is meant more for the purpose of "showing the voting code to people", not production systems. If you do need it for production, why not add the tests yourself? It's an open-source project now :).

@svenheiberg - I do hope that this conversation (and other comments by @avelis) helps to make the next generation of our voting software better. Please do not be discouraged, keep supporting open source and keep up the kick-ass work you are doing!

@svenheiberg
Copy link
Contributor

It's a set of complex questions. Strictly speaking this is not open-source project - the license is restrictive, we just provide the source code for review and NEC has a procedure to use this source code in their production system (and yes, there is this problem - how do you really-really prove that you actually run the code that you claim to run)

Opening the source code for general public is a controversial topic. One has a temptation to believe that opening a source code of an information system adds features, fixes bugs and increases transparency and trustworthiness in general. It's such a beautiful and easy story, if you leave out the details. Most successful open-source projects take advantage of the wide user-space who rely on the software in question on frequent basis. This user-space contains people who in addition to the need for the software

  • have motivation to develop the software,
  • are capable of developing the software,
  • have resources (time, money, access to technology) to develop the software.

The success of the project depends on the ability to organize these people for a common cause and maintaining their resources and motivation. Internet voting system is a complex software project

  • the feature set must comply with the requirements originating from the legislation,
  • the underlying problem is a specific security problem – how to maintain vote integrity and ballot secrecy in the environment with active adversary,
  • the entry level of expertise for the project is relatively high.

In my very personal opinion (shared by some but not by all) - if the voting system has certain qualities, then I do not care whether it is open-source or not - it is 'nice to have' but not vital from the perspective of the election integrity and transparency. Use your favourite search engine and read a bit about 'software independence' and 'universal verifiability'. Lot of this work is still experimental, but there is a clear direction and some promising approaches.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants