The ability to deliver secure, accurate and reliable elections is of chief importance to local and state governments during election years. Our client, a national provider of voting systems and election management products, contracted Excellarate to develop a multi-tier application to be used in pre-vote casting (ballot definition) and post-vote casting (central scanning and/or vote tabulation) and that also worked seamlessly with their devices.
Excellarate’s Role
Design and Development: Excellarate’s team worked on design, development, enhancements, and maintenance of both the user-facing side of the system as well as the complete architecture from application down to database layers.
In this case, Excellarate carried out development in 3-week sprints, then moved into QA testing sprints.
Quality Assurance (QA) Testing: Excellarate’s QA team employed manual testing, automation testing, API Testing and white box testing.
Integration with Devices: Excellarate devoted a year to QA cycles to test versions of the voting program with the client’s embedded voting devices.
Security: Excellarate was responsible for necessary security features to comply with the US Election Assistance Commission’s (EAC) standards.
Challenges and Solutions
Understanding of U.S. Elections: To ensure everyone understood the client’s requirements, the entire team had several in-depth discussions with subject matter experts about the United States election process.
VVSG and VSTL Certification: The voting systems required EAC accreditation through the Voluntary Voting System Guidelines (VVSG) and Voting System Test Laboratories (VSTL).
The VVSG provide a set of requirements to test against to determine if the systems provide all of the basic functionality, accessibility and security capabilities. To meet the requirements, Excellarate implemented security measures such as salt encryption for passwords, digital signature generations, and cryptographic algorithms for key generations.
Results
The end result was a best-in-class voting ecosystem that allows for election administrators to setup and administrate elections and ballots, connect with devices that voters use to cast their vote, and conclude with the counting and reporting of the vote.
Technologies Used
- .NET 4.5, C#5, WPF MVVM, WCF
- Dev Tools
- NUnit Rhino Mocks, NHibernate 3.3, Unity Container IOC for DI, Interception, Service Hosting, and other Cross Cutting Concerns implementation, VS 2012 .Net framework 4.5, Sql Server 2012, Telerik, Prism Galasoft & MVVM Lite, Resharper and FXCop.
- QA Tools
- HPQC, HP Unified Functional Testing, WCFTestClient and Open.Cover