AdoptOpenJDK a publié une suite de tests conçus pour garantir l'exactitude fonctionnelle, les performances et l'efficacité globale de chaque version d'AdoptOpenJDK.
L'AdoptOpenJDK Quality Assurance (AQA) vise à rendre la publication plus conforme aux attentes des entreprises clientes, en fournissant un emplacement cohérent aux entreprises qui souhaitent rester à jour gratuitement sur Java. Bien que Java soit gratuit, Oracle JRE est devenu un produit commercial nécessitant une licence commerciale depuis Java 11. Les utilisateurs cherchant à éviter ce changement clairement communiqué et fréquemment annoncé ont cherché d'autres JRE, tels que AdoptOpenJDK ou les builds publiques GPL, qui sont tous deux disponibles gratuitement.
Alors qu'AdoptOpenJDK fournit une version complète du code source d'OpenJDK, ce nouveau programme d'assurance qualité fournit une validation plus complète allant au-delà du Java Compatibility Kit (JCK). Outre les tests de conformité de base, les tests incluent davantage de détails sur les performances, la sécurité et l'évolutivité. Par exemple, en avril, la version Java fournie par Docker était compatible sur le plan fonctionnel, mais ne contenait pas une série de correctifs de sécurité qui la rendait vulnérable à plusieurs exploits.
La première version d'AQA fournit plus de 30 000 tests, dont la plupart sont suffisamment petits pour s'exécuter sur un ordinateur portable de développeur. Certains tests "spéciaux" sont exclus car ils nécessitent un matériel spécifique, tel que des jeux de caractères multi-octets. La compacité des tests est destinée à encourager ceux qui travaillent sur OpenJDK à exécuter ces tests avant la validation, au lieu d'exiger que ces tests soient exécutés par un serveur d'intégration continue. Les tests spéciaux ont pour objectif de détecter les problèmes nécessitant une configuration ou un matériel unique, tels que le problème de codage de caractères en Turquie en 2008 ayant entraîné un meurtre / suicide.
L'AQA propose également une série de tests de performances qui stressent les systèmes pour garantir que chaque version conserve de bonnes performances. Contrairement à SpecJBB et Renaissance, qui visent à comparer les performances de différentes implémentations Java, les tests AQA sont auto-référentiels et sont conçus pour empêcher les régressions dans lesquelles une version pourrait devenir plus lente ou consommer des ressources supplémentaires. La suite de tests AQA dans Jenkins fournit l'état des exécutions réussies, l'exécution réussie de ce test prenant 15 minutes ou moins. Les tests incluent des tests personnalisés ainsi que des tests de performance de projets open source populaires tels que Kafka et Jerry. Cela étend la couverture pour éviter les problèmes pour lesquels le JDK peut exécuter son propre test plus rapidement mais provoquer par inadvertance un ralentissement dans d'autres projets.
Alors que la plupart des utilisateurs Java n'interagiront pas directement avec AQA, l'impact sera ressenti plus en aval par ceux qui téléchargent un fichier binaire AdoptOpenJDK.