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

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...masabamasaba
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
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
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...masabamasaba
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfonteinmasabamasaba
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Hararemasabamasaba
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...masabamasaba
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburgmasabamasaba
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 

Recently uploaded (20)

Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
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
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
%in Lydenburg+277-882-255-28 abortion pills for sale in Lydenburg
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 

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