The NIST Voting Common Data Format (CDF) Test Method (“Test Method”) is a machine executable method for testing NIST Voting (i.e. NIST SP 1500 series) CDFs. Its use is intended for voting system manufacturers, Voting System Test Labs (VSTLs), and other members of the election community that require a standardized method to determine election technology systems’ conformance to the CDFs.
The Test Method supports CDFs referenced by the Voluntary Voting System Guidelines, Version 2.0. It may possible to use this tool to test additional CDFs as well.
Test data in many of the CDFs is also available.
To provide feedback, please open an issue on this repository.
Builds of the tool are available under the releases section of this GitHub repository.
- Java Virtual Machine, either version 8.0 or 11 (and later)
The following system configurations have been tested:
- Windows 11 with OpenJDK 17.0.6 (64-bit)
- Windows 11 with OpenJDK 1.8.0_382 (64-bit)
- Debian Linux 11.6 with OpenJDK 11.0.16 (64-bit)
See the usage documentation for more information.
Current Limitations (expected to be lifted in subsequent versions):
- Baseline semantic rulesets (Schematron) may be incomplete
- TM does not support external Schematron rulesets
- JSON Schema Validation of Voter Records Interchange (VRI) is not supported
NB: Voter Records Interchange does not have any interoperability requirements in VVSG 2.0
Test Data for many of the NIST Voting Common Data Formats is also located in this repository, under test_data/ and included with each release. Please refer to the README for more information.
Principal investigators are Benjamin Long and Barbara Guttman of the Information Systems Group and Software Quality Group of NIST's Information Technology Lab (ITL), Software and Systems Division (SSD). They can be contacted via the NIST Voting Team email address. More information on the NIST Voting Program can be found here.
Example Citation: Citation - Dziurłaj, J., Marcotte, J., Guttman, B., and Long, B. (2023), Common Data Format Test Method, Version 1.0, National Institute of Standards and Technology, [Software], https://github.com/usnistgov/cdf-test-method/ (Accessed March 16, 2023)
The NIST Test Method license can be found here. NIST Test Data license can be found here.
This tool uses several open source libraries including:
- MorganaXProc [GPLv3]
- Saxon-HE 11.5 [MPLv2]
- schxslt [MIT]
- Xerces 2.12.2 [Apache]
NB: This list does not include dependencies of the libraries. E.g. MorganXProc includes several libraries, licensed separately.