2. What is AQA?
Set of tests run against JDK binaries to “make
quality certain to happen”
Addresses enterprise customer requirements
that JDK binaries must be:
– Functionally correct
– Performant
– Secure
– Scalable
– Robust
Tests selected in the spirit of the AQA manifesto
3. AQK manifesto
AQA should be:
• open & transparent
• diverse & robust set of test suites
• evolving alongside implementations
– continual investment
– process to modify (TSC / quarterly review)
– codecov & other metrics
– comparative analysis
• portable
• tagged/tracked & published
4. AdoptOpenJDK Quality Assurance
• “Make quality certain to happen”
• Testing a wide criteria representing actual enterprise requirements to
identify binaries ready for production usage
Today AQA Roadmap
Functional correctness Security
OpenJDK regression (open) Passes known vulnerability tests
Oracle JCK (closed) Functional correctness
OpenJDK regression
Builder-specific testing (unknown) Eclipse functional
Application & framework tests
Performance
Published metrics
Achieves minimum throughput
scores
Scalability & durability
Load & stress testing
5. AQA in practice
• See https://github.com/AdoptOpenJDK/openjdk-tests/issues/1166
• AQA v1.0 definition
• Mark JDK binaries if they pass defined set of
AQA tests
• BoM (Bill of Materials) for all tested releases
– SHAs of all test material
– summary of test results & exclusions available for
all binaries
6. AQK 1.0: Definition
openjdk (8) system (62) external (4) perf (4) functional (45)
sanity.openjdk = 8
targets
sanity.system = 38
targets (+ 16)
sanity.external = 4
targets
sanity.perf = 4
target
sanity.functional
extended.openjdk extended.system =
4 targets (+ 4)
extended.external extended.perf extended.function
al
special.openjdk special.system special.external special.perf special.functional=
45
• diverse & robust
123 test targets span regression, performance, app and stress categories
Applicable to all implementations, platforms and versions
Passing on all current build variations on current set of test hardware*
*Exclude implementation specific tests (example: DAA load tests not included)
(numbers in brackets have some disabled tests on some version/platforms)
Test Groups
15. Summary
• AQA v1.0 is MVP to ensure mechanisms work
• Next steps:
– expanded set of tests
– additional metrics to support choices
– greater trss integration (not restricted to a single
Jenkins instance)
– website & releases repo updates