An ensemble testing service with a focus on accessibility
This application uses an ensemble of 11 tools to test public web pages for standards conformity, usability, and accessibility.
The testing paradigm employed by Kilotest is discussed in these papers:
- How to run a thousand accessibility tests
- Testaro: Efficient Ensemble Testing for Web Accessibility
- Accessibility Metatesting: Comparing Nine Testing Tools
Kilotest acts as a server with human users (such as you) and with one or more testing agents that obtain jobs from Kilotest and do the actual testing. Those agents are instances of the Testaro package.
An active production instance of Kilotest may require multiple testing agents to handle the load, because testing one web page typically takes about 3 minutes and agents test only one page at a time.
In the steps below, hosts T and K may be the same host or two different hosts. Host T can be a Debian stable, Ubuntu LTS, Windows, or macOS host. Host K can be any server host that can run the latest LTS version of Node.js. If hosts T and K differ, then they must be open to https traffic and host K must permit https requests from host T.
- Clone the Testaro project into a new directory on host
T. - In that directory, install the Testaro dependencies:
npm install. - Update the Testaro dependencies and rebuild:
npm run deps. - Clone the Kilotest repository into a new directory on host
K. - In that directory, install the Kilotest dependencies:
npm install. - Copy the
env.testarofile from thekilotestdirectory to.envin thetestarodirectory and replace the__placeholder__values in.envwith actual values. - Copy the
env.examplefile in thekilotestdirectory to a new.envfile in the same directory and replace the__placeholder__values in.envwith actual values.
- In the
testarodirectory, make Testaro start listening for jobs:node call netWatch true nn true, wherennis the number of seconds to wait between checks for new jobs. - In the
kilotestdirectory, start the Kilotest service:node index.
Contributions are welcome! You can use GitHub issues to initiate discussions and propose changes. If you want to contribute code, please fork the repository and create a pull request.
See the SERVICE.md file for instructions on how to make Kilotest a service.