SlideShare a Scribd company logo
1 of 15
AdoptOpenJDK Quality Assurance (AQA)
Shelley Lambert
July 17, 2019
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
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
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
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
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
AQK 1.0: Definition (groups x specs x versions)
Platform/spec = os + arch + variant
• Linux: Linux: x86_64, x86_64_XL, s390x, ppc64le, aarch64, aarch32
• Windows: x86_64, x86_64_XL, x86_32
• Mac: x86_64, x86_64_XL
• AIX: ppc64
• Solaris: sparcv9
Versions
• 8
• 11
• 12
• 13
Currently testing:
Build_Impl
• adopt_hotspot
• adopt_openj9
• upstream
jdk8
J9 HS Upstream
jdk12
J9 HS
jdk13
J9 HS
jdk11
J9 HS Upstream
x64linux
x64linux_XL
s390xLinux
ppc64leLinux
aarch64Linux
arm32Linux
x64Win
x64Win_XL
x32Win
jdk8
J9 HS Upstream
jdk12
J9 HS
jdk13
J9 HS
jdk11
J9 HS Upstream
x64Mac
x64Mac_XL
ppc64Aix
solarisSparcv9
• group=openjdk
• Targets (8 + 15):
– sanity.openjdk = jdk_math jdk_math_jre jdk_lang jdk_io
jdk_nio jdk_util jdk_rmi jdk_net jdk_security1
– extended.openjdk = jdk_beans jdk_other jdk_security2
jdk_security3 jdk_security4 jdk_text jdk_time
jdk_management jdk_jmx jdk_tools jdk_jdi jdk_jfr, jdk_awt
jdk_swing jdk_sound
openjdk
sanity.openjdk
jdk_math
Java/math/BigDecimal/NegateTests.java
• group=system
• Targets (62 + 8) :
– sanity.system = ClassLoadingTest MauveSingleThreadLoadTest MauveSingleInvocationLoadTest
MauveMultiThreadLoadTest NioLoadTest LambdaLoadTest TestJlmRemoteClassNoAuth
MathLoadTest_autosimd MauveSingleThreadLoadTest MauveSingleInvocationLoadTest
MauveMultiThreadLoadTest CpMpTest_CpMp CpMpTest_MP CpMpTest2 CpMpTest3 CpMpModularJarTest
CpMpModularJarTest2 CpMpModularJarTest3 JDKInternalAPIsTest AutomaticModulesTest1
AutomaticModulesTest_ImpliedReadabilityTest1 AutomaticModulesTest_ImpliedReadabilityTest2
AutomaticModulesTest_ImpliedReadabilityTest3 JDKInternalAPIsTest ServiceLoadersTest
PatchModuleTest_AppModPatchModule PatchModuleTest_AdvancedPatchModule
PatchModuleImageTest_AppModPatchModule PatchModuleImageTest_UnexportedTypePatchModule
PatchModuleImageTest_AdvancedPatchModule UpgradeModPathTest_ExpDirModUpgrade
UpgradeModPathTest_ExpDirModUpgradeCRImage UpgradeModPathTest_JarredModUpgrade
UpgradeModPathTest_JarredModUpgradeCRImage CpMpJlinkTest CLTest CLTestImage CLLoadTest,
– TestJlmLocal TestJlmRemoteClassAuth TestJlmRemoteMemoryAuth TestJlmRemoteMemoryNoAuth
TestJlmRemoteNotifierProxyAuth TestJlmRemoteThreadNoAuth MathLoadTest_bigdecimal ExplicitModulesTest
PatchModuleTest_PlatformModPatchModule PatchModuleImageTest_PlatformModPatchModule
JlinkTest_RequiredMod JlinkTest_AddModLimitMod JlinkPluginOpt_GenOptTest CLStressWithLayers
CLStressWithLayersCRI NioLoadTest
– extended.system = LangLoadTest LockingLoadTest UtilLoadTest HCRLateAttachWorkload
JdiTest HCRLateAttachWorkload ConcurrentLoadTest DirectByteBufferLoadTest
system
sanity.system
ClassLoadingTest
net/adoptopenjdk/test/classloading/ClassMapHog.java
• group=external
• Targets (4 + 9) :
– sanity.external = openliberty-mp-tck payara-mp-tck
thorntail-mp-tck tomee-mp-tck
– extended.external = derby elasticsearch jenkins kafka
lucene-solr scala tomcat wildfly wycheproof
external
sanity.external
openliberty-mp-tck
• group=perf
• Targets (4 + 25) :
– sanity.perf = dacapo-eclipse dacapo-h2 dacapo-lusearch-fix idlemicrobenchmark
– extended.perf = OpenLibertyStartupDT7 akka-uct als chi-square db-shootout
dec-tree finagle-chirper finagle-http fj-kmeans future-genetic gauss-mix log-
regression mnemonics movie-lens naïve-bayes par-mnemonics philosophers
scala-kmeans dacapo-avrora dacapo-fop dacapo-jython dacapo-luindex dacapo-
pmd dacapo-sunflow dacapo-tomcat dacapo-xalan
perf
sanity.perf
dacapo-eclipse
• group=functional
• Targets (137 + 146 + 27) :
– sanity.functional = 137 targets
– extended.functional = 146 targets
– special.functional = 27 targets (MBCS_Tests_regex_ja_JP,
MBCS_Tests_regex_ko_KR, MBCS_Tests_urlclassloader_ja_JP, etc)
functional
special.functional
MBCS_Tests_regex_ja_JP
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

More Related Content

What's hot

Beyond Horizon: Open Source Management On the Go for OpenStack and the Rest o...
Beyond Horizon: Open Source Management On the Go for OpenStack and the Rest o...Beyond Horizon: Open Source Management On the Go for OpenStack and the Rest o...
Beyond Horizon: Open Source Management On the Go for OpenStack and the Rest o...Mike Muzurakis
 
Oracle Exalogic X3-02 Elastic Cloud System
Oracle Exalogic X3-02 Elastic Cloud SystemOracle Exalogic X3-02 Elastic Cloud System
Oracle Exalogic X3-02 Elastic Cloud SystemJithin Kuriakose
 
VMware Integrated OpenStack 2.0
VMware Integrated OpenStack 2.0VMware Integrated OpenStack 2.0
VMware Integrated OpenStack 2.0Erik Bussink
 
Moog Test and Simulation Overview
Moog Test and Simulation  OverviewMoog Test and Simulation  Overview
Moog Test and Simulation OverviewKrishnaswamy Sanjay
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overviewindevlab
 
Successfully Deliver and Operate OpenStack in Production with VMware VIO
Successfully Deliver and Operate OpenStack in Production with VMware VIOSuccessfully Deliver and Operate OpenStack in Production with VMware VIO
Successfully Deliver and Operate OpenStack in Production with VMware VIOArraya Solutions
 

What's hot (6)

Beyond Horizon: Open Source Management On the Go for OpenStack and the Rest o...
Beyond Horizon: Open Source Management On the Go for OpenStack and the Rest o...Beyond Horizon: Open Source Management On the Go for OpenStack and the Rest o...
Beyond Horizon: Open Source Management On the Go for OpenStack and the Rest o...
 
Oracle Exalogic X3-02 Elastic Cloud System
Oracle Exalogic X3-02 Elastic Cloud SystemOracle Exalogic X3-02 Elastic Cloud System
Oracle Exalogic X3-02 Elastic Cloud System
 
VMware Integrated OpenStack 2.0
VMware Integrated OpenStack 2.0VMware Integrated OpenStack 2.0
VMware Integrated OpenStack 2.0
 
Moog Test and Simulation Overview
Moog Test and Simulation  OverviewMoog Test and Simulation  Overview
Moog Test and Simulation Overview
 
RedHat OpenStack Platform Overview
RedHat OpenStack Platform OverviewRedHat OpenStack Platform Overview
RedHat OpenStack Platform Overview
 
Successfully Deliver and Operate OpenStack in Production with VMware VIO
Successfully Deliver and Operate OpenStack in Production with VMware VIOSuccessfully Deliver and Operate OpenStack in Production with VMware VIO
Successfully Deliver and Operate OpenStack in Production with VMware VIO
 

Similar to AdoptOpenJDK Quality Assurance OJDK Lightning Talk

AQA_You are_Soaking_In_It_DevNexus2020
AQA_You are_Soaking_In_It_DevNexus2020AQA_You are_Soaking_In_It_DevNexus2020
AQA_You are_Soaking_In_It_DevNexus2020Shelley Lambert
 
OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)Jooho Lee
 
SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021Shelley Lambert
 
Docker ee an architecture and operations overview
Docker ee an architecture and operations overviewDocker ee an architecture and operations overview
Docker ee an architecture and operations overviewDocker, Inc.
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1Rubens Dos Santos Filho
 
Sledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QASledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QAShelley Lambert
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_GalloAndrea Gallo
 
Overview about OracleVM and Oracle Linux
Overview about OracleVM and Oracle LinuxOverview about OracleVM and Oracle Linux
Overview about OracleVM and Oracle Linuxandreas kuncoro
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureQAware GmbH
 
Webinar June 2017 l Apica LoadTest to compliment HP Loadrunner
Webinar June 2017 l Apica LoadTest to compliment HP LoadrunnerWebinar June 2017 l Apica LoadTest to compliment HP Loadrunner
Webinar June 2017 l Apica LoadTest to compliment HP LoadrunnerWhitney Donaldson
 
GNAT Pro for ARM processors
GNAT Pro for ARM processorsGNAT Pro for ARM processors
GNAT Pro for ARM processorsAdaCore
 
Automated Testing with Docker on Steroids - nlOUG TechExperience 2018 (Amersf...
Automated Testing with Docker on Steroids - nlOUG TechExperience 2018 (Amersf...Automated Testing with Docker on Steroids - nlOUG TechExperience 2018 (Amersf...
Automated Testing with Docker on Steroids - nlOUG TechExperience 2018 (Amersf...Lucas Jellema
 
The_Little_Jenkinsfile_That_Could
The_Little_Jenkinsfile_That_CouldThe_Little_Jenkinsfile_That_Could
The_Little_Jenkinsfile_That_CouldShelley Lambert
 
Customizing Apache CloudStack - CCC13
Customizing Apache CloudStack - CCC13Customizing Apache CloudStack - CCC13
Customizing Apache CloudStack - CCC13Ilya Musayev
 
sigrok: Adventures in Integrating a Power-Measurement Device
sigrok: Adventures in Integrating a Power-Measurement Devicesigrok: Adventures in Integrating a Power-Measurement Device
sigrok: Adventures in Integrating a Power-Measurement DeviceBayLibre
 
The new repository in AEM 6
The new repository in AEM 6The new repository in AEM 6
The new repository in AEM 6Jukka Zitting
 
Dockercon eu tour 2015 - Devoxx Casablanca
Dockercon eu tour 2015 - Devoxx CasablancaDockercon eu tour 2015 - Devoxx Casablanca
Dockercon eu tour 2015 - Devoxx CasablancaMichel Courtine
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best PracticesDavid Delabassee
 

Similar to AdoptOpenJDK Quality Assurance OJDK Lightning Talk (20)

AQA_You are_Soaking_In_It_DevNexus2020
AQA_You are_Soaking_In_It_DevNexus2020AQA_You are_Soaking_In_It_DevNexus2020
AQA_You are_Soaking_In_It_DevNexus2020
 
OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)OpenSCAP Overview(security scanning for docker image and container)
OpenSCAP Overview(security scanning for docker image and container)
 
SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021
 
Docker ee an architecture and operations overview
Docker ee an architecture and operations overviewDocker ee an architecture and operations overview
Docker ee an architecture and operations overview
 
[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1[JOI] TOTVS Developers Joinville - Java #1
[JOI] TOTVS Developers Joinville - Java #1
 
Planning open stack-poc
Planning open stack-pocPlanning open stack-poc
Planning open stack-poc
 
Sledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QASledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QA
 
20141111_SOS3_Gallo
20141111_SOS3_Gallo20141111_SOS3_Gallo
20141111_SOS3_Gallo
 
Overview about OracleVM and Oracle Linux
Overview about OracleVM and Oracle LinuxOverview about OracleVM and Oracle Linux
Overview about OracleVM and Oracle Linux
 
Down the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile ArchitectureDown the Ivory Tower towards Agile Architecture
Down the Ivory Tower towards Agile Architecture
 
Webinar June 2017 l Apica LoadTest to compliment HP Loadrunner
Webinar June 2017 l Apica LoadTest to compliment HP LoadrunnerWebinar June 2017 l Apica LoadTest to compliment HP Loadrunner
Webinar June 2017 l Apica LoadTest to compliment HP Loadrunner
 
GNAT Pro for ARM processors
GNAT Pro for ARM processorsGNAT Pro for ARM processors
GNAT Pro for ARM processors
 
Automated Testing with Docker on Steroids - nlOUG TechExperience 2018 (Amersf...
Automated Testing with Docker on Steroids - nlOUG TechExperience 2018 (Amersf...Automated Testing with Docker on Steroids - nlOUG TechExperience 2018 (Amersf...
Automated Testing with Docker on Steroids - nlOUG TechExperience 2018 (Amersf...
 
The_Little_Jenkinsfile_That_Could
The_Little_Jenkinsfile_That_CouldThe_Little_Jenkinsfile_That_Could
The_Little_Jenkinsfile_That_Could
 
Customizing Apache CloudStack - CCC13
Customizing Apache CloudStack - CCC13Customizing Apache CloudStack - CCC13
Customizing Apache CloudStack - CCC13
 
sigrok: Adventures in Integrating a Power-Measurement Device
sigrok: Adventures in Integrating a Power-Measurement Devicesigrok: Adventures in Integrating a Power-Measurement Device
sigrok: Adventures in Integrating a Power-Measurement Device
 
The new repository in AEM 6
The new repository in AEM 6The new repository in AEM 6
The new repository in AEM 6
 
PP_Eric_Gandt
PP_Eric_GandtPP_Eric_Gandt
PP_Eric_Gandt
 
Dockercon eu tour 2015 - Devoxx Casablanca
Dockercon eu tour 2015 - Devoxx CasablancaDockercon eu tour 2015 - Devoxx Casablanca
Dockercon eu tour 2015 - Devoxx Casablanca
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 

Recently uploaded

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 

Recently uploaded (20)

The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 

AdoptOpenJDK Quality Assurance OJDK Lightning Talk

  • 1. AdoptOpenJDK Quality Assurance (AQA) Shelley Lambert July 17, 2019
  • 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
  • 7. AQK 1.0: Definition (groups x specs x versions) Platform/spec = os + arch + variant • Linux: Linux: x86_64, x86_64_XL, s390x, ppc64le, aarch64, aarch32 • Windows: x86_64, x86_64_XL, x86_32 • Mac: x86_64, x86_64_XL • AIX: ppc64 • Solaris: sparcv9 Versions • 8 • 11 • 12 • 13 Currently testing: Build_Impl • adopt_hotspot • adopt_openj9 • upstream
  • 8. jdk8 J9 HS Upstream jdk12 J9 HS jdk13 J9 HS jdk11 J9 HS Upstream x64linux x64linux_XL s390xLinux ppc64leLinux aarch64Linux arm32Linux x64Win x64Win_XL x32Win
  • 9. jdk8 J9 HS Upstream jdk12 J9 HS jdk13 J9 HS jdk11 J9 HS Upstream x64Mac x64Mac_XL ppc64Aix solarisSparcv9
  • 10. • group=openjdk • Targets (8 + 15): – sanity.openjdk = jdk_math jdk_math_jre jdk_lang jdk_io jdk_nio jdk_util jdk_rmi jdk_net jdk_security1 – extended.openjdk = jdk_beans jdk_other jdk_security2 jdk_security3 jdk_security4 jdk_text jdk_time jdk_management jdk_jmx jdk_tools jdk_jdi jdk_jfr, jdk_awt jdk_swing jdk_sound openjdk sanity.openjdk jdk_math Java/math/BigDecimal/NegateTests.java
  • 11. • group=system • Targets (62 + 8) : – sanity.system = ClassLoadingTest MauveSingleThreadLoadTest MauveSingleInvocationLoadTest MauveMultiThreadLoadTest NioLoadTest LambdaLoadTest TestJlmRemoteClassNoAuth MathLoadTest_autosimd MauveSingleThreadLoadTest MauveSingleInvocationLoadTest MauveMultiThreadLoadTest CpMpTest_CpMp CpMpTest_MP CpMpTest2 CpMpTest3 CpMpModularJarTest CpMpModularJarTest2 CpMpModularJarTest3 JDKInternalAPIsTest AutomaticModulesTest1 AutomaticModulesTest_ImpliedReadabilityTest1 AutomaticModulesTest_ImpliedReadabilityTest2 AutomaticModulesTest_ImpliedReadabilityTest3 JDKInternalAPIsTest ServiceLoadersTest PatchModuleTest_AppModPatchModule PatchModuleTest_AdvancedPatchModule PatchModuleImageTest_AppModPatchModule PatchModuleImageTest_UnexportedTypePatchModule PatchModuleImageTest_AdvancedPatchModule UpgradeModPathTest_ExpDirModUpgrade UpgradeModPathTest_ExpDirModUpgradeCRImage UpgradeModPathTest_JarredModUpgrade UpgradeModPathTest_JarredModUpgradeCRImage CpMpJlinkTest CLTest CLTestImage CLLoadTest, – TestJlmLocal TestJlmRemoteClassAuth TestJlmRemoteMemoryAuth TestJlmRemoteMemoryNoAuth TestJlmRemoteNotifierProxyAuth TestJlmRemoteThreadNoAuth MathLoadTest_bigdecimal ExplicitModulesTest PatchModuleTest_PlatformModPatchModule PatchModuleImageTest_PlatformModPatchModule JlinkTest_RequiredMod JlinkTest_AddModLimitMod JlinkPluginOpt_GenOptTest CLStressWithLayers CLStressWithLayersCRI NioLoadTest – extended.system = LangLoadTest LockingLoadTest UtilLoadTest HCRLateAttachWorkload JdiTest HCRLateAttachWorkload ConcurrentLoadTest DirectByteBufferLoadTest system sanity.system ClassLoadingTest net/adoptopenjdk/test/classloading/ClassMapHog.java
  • 12. • group=external • Targets (4 + 9) : – sanity.external = openliberty-mp-tck payara-mp-tck thorntail-mp-tck tomee-mp-tck – extended.external = derby elasticsearch jenkins kafka lucene-solr scala tomcat wildfly wycheproof external sanity.external openliberty-mp-tck
  • 13. • group=perf • Targets (4 + 25) : – sanity.perf = dacapo-eclipse dacapo-h2 dacapo-lusearch-fix idlemicrobenchmark – extended.perf = OpenLibertyStartupDT7 akka-uct als chi-square db-shootout dec-tree finagle-chirper finagle-http fj-kmeans future-genetic gauss-mix log- regression mnemonics movie-lens naïve-bayes par-mnemonics philosophers scala-kmeans dacapo-avrora dacapo-fop dacapo-jython dacapo-luindex dacapo- pmd dacapo-sunflow dacapo-tomcat dacapo-xalan perf sanity.perf dacapo-eclipse
  • 14. • group=functional • Targets (137 + 146 + 27) : – sanity.functional = 137 targets – extended.functional = 146 targets – special.functional = 27 targets (MBCS_Tests_regex_ja_JP, MBCS_Tests_regex_ko_KR, MBCS_Tests_urlclassloader_ja_JP, etc) functional special.functional MBCS_Tests_regex_ja_JP
  • 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

Editor's Notes

  1. Platform/spec = os + arch + variant Linux: Linux: x86_64, x86_64_XL, s390x, ppc64le, aarch64, aarch32 Windows: x86_64, x86_64_XL, x86_32 Mac: x86_64, x86_64_XL AIX: ppc64 Solaris: sparcv9
  2. Platform/spec = os + arch + variant Linux: Linux: x86_64, x86_64_XL, s390x, ppc64le, aarch64, aarch32 Windows: x86_64, x86_64_XL, x86_32 Mac: x86_64, x86_64_XL AIX: ppc64 Solaris: sparcv9