https://github.com/phetsims/aqua
Automatic QUality Assurance
https://github.com/phetsims/aqua
Last synced: 5 months ago
JSON representation
Automatic QUality Assurance
- Host: GitHub
- URL: https://github.com/phetsims/aqua
- Owner: phetsims
- License: mit
- Created: 2016-09-20T03:44:16.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2025-10-07T02:50:48.000Z (8 months ago)
- Last Synced: 2025-10-07T04:26:20.252Z (8 months ago)
- Language: JavaScript
- Homepage:
- Size: 1.03 MB
- Stars: 2
- Watchers: 3
- Forks: 4
- Open Issues: 36
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# aqua
**A**utomatic **QU**ality **A**ssurance
---------------
This repo contains code related to testing the PhET codebase. This includes multiple separate projects:
1. "Continuous Testing (CT)" - a server that hosts tests based on snapshots of our codebase.
- Server: run on sparky.colorado.edu
- Client: node-based browsers that fuzz sim tests
- Report: a scenery-based display of the CT results (see aqua-main)
- QuickServer: a separate server that runs a few important tests for faster turn around on larger breakages.
2. Browser tools - Local testing tools, best to be used through phetmarks, for fuzzing many sims for errors, or
comparing "snapshots" for regressions, all in your local copy.
See [continuous-testing-management](https://github.com/phetsims/aqua/blob/main/doc/continuous-testing-management.md) for
a complete guide on CT.
### Loose ends for CT
- Snapshot time may not be accurate. Should change to the time when the last-clean "SHA-check" pass started.
- Allow display of SHAs (in dependencies.json format) so devs can check out exact snapshots.
- Allow tagging browsers with a name (or display user-agent) so tests can be traced back to specific devices to
reproduce.
- Handle cloning of missing repos.
- Persistence between server restarts (currently need to wipe snapshot directories after the server process exits)
- Don't require administrator mode for Windows (that's scary!)
### Ideal CT testing in the future
Current tests live in listContinuousTests
- Color profile pages (e.g. molecule-shapes-colors_en.html)
- file: protocol sim tests
- Basic iframe tests
- Touch fuzzing (with one or more 'fingers')
- Other locales (in unbuilt and built)
- Other builds, tesing locales/brand/mangle/uglify/allHTML.
- Runtime flags, such as:
- accessibility
- brand
- phet-app
- phet-android-app
- locale
- profiler
- rootRenderer (canvas, svg, dom, webgl)
- showCanvasNodeBounds/showFittedBlockBounds/showPointerAreas/showPointers/showVisibleBounds/dev
- stringTest
- webgl=false
- Test with screenshot references (to determine if we have visual breaks)
- Test with phet-io recorded references (to determine if we have model breaks)