SlideShare a Scribd company logo
SHELLEY LAMBERT
LAN XIA
IBM RUNTIME TECHNOLOGIES
NOV 2019
@SHELLEYMLAMBERT
@BONJOURLAN
DEALING WITH
VERIFICATION DATA OVERLOAD
Dealing with Verification Data Overload
• THE SCOPE
• TEST FRAMEWORK (TESTKITGEN)
• JENKINS BUILDS
• TEST RESULT SUMMARY SERVICE (TRSS)
• DATA REFINERY EXPERIMENTS
• PLANS FORWARD
AGENDA
Dealing with Verification Data Overload
THE SCOPE
AdoptOpenJDK
• ENSURING FREE AND VERIFIED JAVA™ FOR THE COMMUNITY
• PROJECTS: ECLIPSE OMR, ECLIPSE OPENJ9, ADOPTOPENJDK
• 6+ JENKINS SERVERS
Dealing with Verification Data Overload
Dealing with Verification Data Overload
DEGREES OF FREEDOM
OpenJ9 Hotspot SAP Corretto
8 9 10 11 12 +
openjdk functional perf system external
RI
13
JDK Implementations
Platforms
JDK Versions
Test Categories
osx
osx aix win xlinux plinux
6 versions
aarch
58 impl_platform
250000 tests
87,000,000 Tests Impl_platform x testLevels x testGroups x versions
58 x 2 x 3 x 6 x 10M = 20G+ test output per nightly build
Plus PR builds,
promotion builds and
personal builds
Dealing with Verification Data Overload
GATHER GREAT TESTS
6
functional openjdk perfexternalsystem
Dealing with Verification Data Overload
GATHER GREAT TESTS
7
functional openjdk perfexternalsystem
testNG,
cmdlinetester
STF junit & others
Assorted
benchmarks
Jtreg, testNG
Dealing with Verification Data Overload
ADOPTOPENJDK QUALITY ASSURANCE
(AQA)
8Dealing with Verification Data Overload
• “Make quality certain to happen”
• Testing a wide criteria representing actual business requirements to identify
binaries ready for production usage
Today 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 MANIFESTO
• open & transparent
• diverse & robust set of test suites
• evolution alongside implementations
• continual investment
• process to modify
• codecov & other metrics
• comparative analysis
• portable
• tag & publish
9Dealing with Verification Data Overload
INNOVATE AND COLLABORATE
• Reactive systems
• Latitude
• Flexible
• Common
• Standardized
• Simple
10Dealing with Verification Data Overload
GRANULARITY
• Specific Testcases/groups
• Different levels
• Different versions
• Different implementations
• Different iterations
• Different features
• With/Without native test image
• …
11
sanity/extended/special
8/11/13/14…
openj9/hotspot/ibm/corretto/sap
1/2/n…
AOT/JITAAS
functional/system/openjdk/perf/external
Dealing with Verification Data Overload
CONSOLIDATE AND CURATE
12
functional openjdk perfexternalsystem
TestKitGen
testNG,
cmdlinetester
STF junit & others
Assorted
benchmarks
Jtreg, testNG
Dealing with Verification Data Overload
TEST FRAMEWORK (TESTKITGEN)
13Dealing with Verification Data Overload
GROUPING & GRANULARITY
• group=openjdk
• levels=sanity.openjdk, extended.openjdk, special.openjdk
• targets=tests in playlist file
• jdk_awt, jdk_math, jdk_lang, etc.
• jdk_custom=CUSTOM_TARGET env var
• set to individual directories or classes
14
openjdk
sanity.openjdk
jdk_math
Java/math/BigDecimal/NegateTests.java
Dealing with Verification Data Overload
ADOPTOPENJDK CI PIPELINE
Run in parallel
Build Deploy
openjdk
functional
system
perf
external
Test
sanity.system
lambdaLoadTest
extended.system
special.system
mathLoadTest
…
daaLoadTest
Dealing with Verification Data Overload
JENKINS SCRIPTS FOR TESTING
16
• Repo:
https://github.com/AdoptOpenJDK/openjdk-tests
• One script (JenkinsfileBase) for all
test builds:
• Nightly/release
• Pull Request
• Promotion
• Personal/Grinder
Dealing with Verification Data Overload
SURVEY OF TESTS: CI.ADOPTOPENJDK.NET
17
Categorize test builds
based on JDK Version,
JDK Impl, test category
and platform
Dealing with Verification Data Overload
TAP & JUNIT PLUGIN
18
Standardize output
Dealing with Verification Data Overload
ARCHIVE DATA
• Archive test data from failed tests onto Jenkins master or Artifactory:
• Test logs/output files
• Diagnostic files (core/trace/javacore files)
• TAP file, JUnit *.jtr, *.xml files
• Test repo SHA
19
Minimize stored
artifacts
Dealing with Verification Data Overload
ADOPTOPENJDK TESTING
vm
docker
physical
machine
Jenkins
Server
artifactory How to monitor
the result???
Dealing with Verification Data Overload
TEST RESULT SUMMARY SERVICE (TRSS)
• Monitors multiple Jenkins servers
• Personalized Dashboard
• Provide filtering, sorting, comparing and searching feature
• Provide history for triaging and performance trends
• Available at https://trss.adoptopenjdk.net/
• Git repo: https://github.com/AdoptOpenJDK/openjdk-test-tools
21Dealing with Verification Data Overload
TRSS OVERVIEW
22
frontend
backend
backend
backend
TRSS Server
Client
Multiple
Jenkins
Servers
MongoDB
Dealing with Verification Data Overload
TRSS: PERSONALIZED DASHBOARD
23
Personalize views, only
what you need
Dealing with Verification Data Overload
TRSS: PERSONALIZED DASHBOARD
24Dealing with Verification Data Overload
Grid view for test
builds summary
TRSS: MONITOR JENKINS PIPELINE BUILDS
25
Aggregate results from
top-level pipelines
Dealing with Verification Data Overload
TRSS: TEST BUILDS RESULT
26
Test Result Summary
Dealing with Verification Data Overload
TRSS: TESTS RESULT
27
Filter and sort on test name, duration, and
test results
Dealing with Verification Data Overload
TRSS: TEST RESULT ACROSS ALL BUILDS
28
Compare test results for all JDK
impls, JDK versions and platforms
Dealing with Verification Data Overload
TRSS: SEARCH TEST
29Dealing with Verification Data Overload
Search test output among
different test builds
TRSS: TEST COMPARE
30
Diff test results among two
different builds
Dealing with Verification Data Overload
TRSS: PERF DASHBOARD
31
Visualize data
graphically
Dealing with Verification Data Overload
LET US COUNT THE WAYS
• categorize
• standardize
• minimize
• personalize
• aggregate
• summarize
• filter
• sort
• compare
• search
• diff
• visualize
• model
Dealing with Verification Data Overload
WHAT IS DEEP LEARNING?
Deep learning is a subset of ML algorithms distinguished by:
• Loosely based on structure and function of the brain, use
artificial neural networks (ANN)
• Multiple layers of processing units, “neurons”, output of a
layer is input to another layer
• Modes of learning, supervised (regression, classification)
or unsupervised (pattern analysis)
33Dealing with Verification Data Overload
INITIAL DL EXPERIMENTS
• Preprocess testOutput based on own listed feature key words index.
34
Padding preprocessed testOutput for Deep Learning
model:
“[4, 7, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…]”
Label: “1”
Original testOutput:
“Running test TestIBMJlmLocal_0: ERROR code 3, FAILED test 1,
running second test, exception ValueError, exit code 1”
Label: “FAILED”
Preprocessed testOutput:
“[4,
Label:
7, 10]”
“1”
Dealing with Verification Data Overload
INITIAL DL EXPERIMENTS
- Training Accuracy and Validation
Accuracy, our evaluation result is
98.897% with 7800 training data
(3900 failed and 3900 passed) and
7800 test data
- Training Loss and Validation Loss
35Dealing with Verification Data Overload
MODEL BUILDING
36
JVM version
Variants used
Things we know
(input layer)
Failure expression
Platform
JVM Impl
Machine ‘age’
Failure age
PR list
Defect category
Things we want to know
(output layer)
Bug prediction scores
Best next action
Rate value of test
SHAs
Dealing with Verification Data Overload
Deep Learning for Fuzzing Java Compilers
38Dealing with Verification Data Overload
Deep Learning for Fuzzing Java Compilers
39Dealing with Verification Data Overload
• Integrated DeepSmith with TKG and TRSS
• Easily run thousands of DeepSmith tests in Jenkins with different
JDK versions / impls / JVM options
• Compare and monitor test outputs using TRSS
PLANS FORWARD
• Test smarter (as test volume increases)
• Change-based testing
• Bug prediction service
• Enhance TRSS with analytics services
• Build skills and continue model/deploy, observe & measure
• Innovate/Collaborate
• AI-driven fuzz testing (with Professor Hugh Leather)
• Test generation service (application of CTD)
• Leverage & deploy useful models in open projects
40Dealing with Verification Data Overload
@ShelleyMLambert
@bonjourlan
AdoptOpenJDK: https://adoptopenjdk.net/
Git repo:
https://github.com/AdoptOpenJDK/openjdk-tests
https://github.com/AdoptOpenJDK/openjdk-test-tools
https://github.com/AdoptOpenJDK/TKG
https://github.com/eclipse/openj9
THANK YOU!
Dealing with Verification Data Overload
QUESTIONS ?

More Related Content

What's hot

PuppetConf 2017: Test First Approach for Puppet on Windows- Miro Sommer, Hiscox
PuppetConf 2017: Test First Approach for Puppet on Windows- Miro Sommer, HiscoxPuppetConf 2017: Test First Approach for Puppet on Windows- Miro Sommer, Hiscox
PuppetConf 2017: Test First Approach for Puppet on Windows- Miro Sommer, Hiscox
Puppet
 
Efficient JavaScript Unit Testing, March 2013
Efficient JavaScript Unit Testing, March 2013Efficient JavaScript Unit Testing, March 2013
Efficient JavaScript Unit Testing, March 2013
Hazem Saleh
 
Automated Application Tests For Lotus Notes Uklug 2009
Automated Application Tests For Lotus Notes Uklug 2009Automated Application Tests For Lotus Notes Uklug 2009
Automated Application Tests For Lotus Notes Uklug 2009
maxistar
 
OSGi Applications Testing - André Elia Assad, System Engineer, Cesar
OSGi Applications Testing - André Elia Assad, System Engineer, CesarOSGi Applications Testing - André Elia Assad, System Engineer, Cesar
OSGi Applications Testing - André Elia Assad, System Engineer, Cesar
mfrancis
 
Groovy Testing
Groovy TestingGroovy Testing
Groovy Testing
Davide Rossi
 
Google AppEngine (GAE/J) - Introduction and Overview from a Java Guy
Google AppEngine (GAE/J) - Introduction and Overview from a Java GuyGoogle AppEngine (GAE/J) - Introduction and Overview from a Java Guy
Google AppEngine (GAE/J) - Introduction and Overview from a Java Guy
Max Völkel
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under Test
Seb Rose
 
Qtp-training A presentation for beginers
Qtp-training  A presentation for beginersQtp-training  A presentation for beginers
Qtp-training A presentation for beginers
Dhavamani Prakash
 
TDD and the Legacy Code Black Hole
TDD and the Legacy Code Black HoleTDD and the Legacy Code Black Hole
TDD and the Legacy Code Black Hole
Noam Kfir
 
QA Meetup at Signavio (Berlin, 06.06.19)
QA Meetup at Signavio (Berlin, 06.06.19)QA Meetup at Signavio (Berlin, 06.06.19)
QA Meetup at Signavio (Berlin, 06.06.19)
Anesthezia
 
Towards Holistic Continuous Software Performance Assessment
Towards Holistic Continuous Software Performance AssessmentTowards Holistic Continuous Software Performance Assessment
Towards Holistic Continuous Software Performance Assessment
Vincenzo Ferme
 
Design For Testability
Design For TestabilityDesign For Testability
Design For Testability
Will Iverson
 
Applying TDD to Legacy Code
Applying TDD to Legacy CodeApplying TDD to Legacy Code
Applying TDD to Legacy Code
Alexander Goida
 

What's hot (13)

PuppetConf 2017: Test First Approach for Puppet on Windows- Miro Sommer, Hiscox
PuppetConf 2017: Test First Approach for Puppet on Windows- Miro Sommer, HiscoxPuppetConf 2017: Test First Approach for Puppet on Windows- Miro Sommer, Hiscox
PuppetConf 2017: Test First Approach for Puppet on Windows- Miro Sommer, Hiscox
 
Efficient JavaScript Unit Testing, March 2013
Efficient JavaScript Unit Testing, March 2013Efficient JavaScript Unit Testing, March 2013
Efficient JavaScript Unit Testing, March 2013
 
Automated Application Tests For Lotus Notes Uklug 2009
Automated Application Tests For Lotus Notes Uklug 2009Automated Application Tests For Lotus Notes Uklug 2009
Automated Application Tests For Lotus Notes Uklug 2009
 
OSGi Applications Testing - André Elia Assad, System Engineer, Cesar
OSGi Applications Testing - André Elia Assad, System Engineer, CesarOSGi Applications Testing - André Elia Assad, System Engineer, Cesar
OSGi Applications Testing - André Elia Assad, System Engineer, Cesar
 
Groovy Testing
Groovy TestingGroovy Testing
Groovy Testing
 
Google AppEngine (GAE/J) - Introduction and Overview from a Java Guy
Google AppEngine (GAE/J) - Introduction and Overview from a Java GuyGoogle AppEngine (GAE/J) - Introduction and Overview from a Java Guy
Google AppEngine (GAE/J) - Introduction and Overview from a Java Guy
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under Test
 
Qtp-training A presentation for beginers
Qtp-training  A presentation for beginersQtp-training  A presentation for beginers
Qtp-training A presentation for beginers
 
TDD and the Legacy Code Black Hole
TDD and the Legacy Code Black HoleTDD and the Legacy Code Black Hole
TDD and the Legacy Code Black Hole
 
QA Meetup at Signavio (Berlin, 06.06.19)
QA Meetup at Signavio (Berlin, 06.06.19)QA Meetup at Signavio (Berlin, 06.06.19)
QA Meetup at Signavio (Berlin, 06.06.19)
 
Towards Holistic Continuous Software Performance Assessment
Towards Holistic Continuous Software Performance AssessmentTowards Holistic Continuous Software Performance Assessment
Towards Holistic Continuous Software Performance Assessment
 
Design For Testability
Design For TestabilityDesign For Testability
Design For Testability
 
Applying TDD to Legacy Code
Applying TDD to Legacy CodeApplying TDD to Legacy Code
Applying TDD to Legacy Code
 

Similar to DealingwithVerificationDataOverload

Performance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle CoherencePerformance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle Coherence
aragozin
 
Learning on Deep Learning
Learning on Deep LearningLearning on Deep Learning
Learning on Deep Learning
Shelley Lambert
 
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
Shelley Lambert
 
Sledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QASledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QA
Shelley Lambert
 
Java Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley LambertJava Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley Lambert
Eclipse Day India
 
Robustness testing
Robustness testingRobustness testing
Robustness testing
CS, NcState
 
Performance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & WebdriverPerformance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & Webdriver
BlazeMeter
 
Testing in the cloud
Testing in the cloudTesting in the cloud
Testing in the cloud
Chandan Pandit
 
Tools of the Trade: Load Testing - Ignite session at WebPerfDays NY 14
Tools of the Trade: Load Testing -  Ignite session at WebPerfDays NY 14Tools of the Trade: Load Testing -  Ignite session at WebPerfDays NY 14
Tools of the Trade: Load Testing - Ignite session at WebPerfDays NY 14
Alexander Podelko
 
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
 
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
NaviAningi
 
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.pptKKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
Kiran Kumar SD
 
Testing in the cloud
Testing in the cloudTesting in the cloud
Testing in the cloud
MCARaghu
 
Test Automation NYC 2014
Test Automation NYC 2014Test Automation NYC 2014
Test Automation NYC 2014
Kishore Bhatia
 
Load DynamiX Company Overview
Load DynamiX Company OverviewLoad DynamiX Company Overview
Load DynamiX Company Overview
Erin Swanson
 
Design and development of automated tests for the IoT
Design and development of automated tests for the IoTDesign and development of automated tests for the IoT
Design and development of automated tests for the IoT
Axel Rennoch
 
Testing Big Data solutions fast and furiously
Testing Big Data solutions fast and furiouslyTesting Big Data solutions fast and furiously
Testing Big Data solutions fast and furiously
Katherine Golovinova
 
Modernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectModernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-Architect
DevOps.com
 
Testing Applications—For the Cloud and in the Cloud
Testing Applications—For the Cloud and in the CloudTesting Applications—For the Cloud and in the Cloud
Testing Applications—For the Cloud and in the Cloud
TechWell
 
DevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 ConferenceDevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 Conference
Grid Dynamics
 

Similar to DealingwithVerificationDataOverload (20)

Performance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle CoherencePerformance Test Driven Development with Oracle Coherence
Performance Test Driven Development with Oracle Coherence
 
Learning on Deep Learning
Learning on Deep LearningLearning on Deep Learning
Learning on Deep Learning
 
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
 
Sledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QASledgehammer to Fine Brush for QA
Sledgehammer to Fine Brush for QA
 
Java Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley LambertJava Performance Testing for Everyone - Shelley Lambert
Java Performance Testing for Everyone - Shelley Lambert
 
Robustness testing
Robustness testingRobustness testing
Robustness testing
 
Performance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & WebdriverPerformance Testing using Real Browsers with JMeter & Webdriver
Performance Testing using Real Browsers with JMeter & Webdriver
 
Testing in the cloud
Testing in the cloudTesting in the cloud
Testing in the cloud
 
Tools of the Trade: Load Testing - Ignite session at WebPerfDays NY 14
Tools of the Trade: Load Testing -  Ignite session at WebPerfDays NY 14Tools of the Trade: Load Testing -  Ignite session at WebPerfDays NY 14
Tools of the Trade: Load Testing - Ignite session at WebPerfDays NY 14
 
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...
 
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
190711_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
 
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.pptKKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
KKSD_Testbirds_Selenium_eclipsecon_FINAL_0.ppt
 
Testing in the cloud
Testing in the cloudTesting in the cloud
Testing in the cloud
 
Test Automation NYC 2014
Test Automation NYC 2014Test Automation NYC 2014
Test Automation NYC 2014
 
Load DynamiX Company Overview
Load DynamiX Company OverviewLoad DynamiX Company Overview
Load DynamiX Company Overview
 
Design and development of automated tests for the IoT
Design and development of automated tests for the IoTDesign and development of automated tests for the IoT
Design and development of automated tests for the IoT
 
Testing Big Data solutions fast and furiously
Testing Big Data solutions fast and furiouslyTesting Big Data solutions fast and furiously
Testing Big Data solutions fast and furiously
 
Modernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-ArchitectModernizing Testing as Apps Re-Architect
Modernizing Testing as Apps Re-Architect
 
Testing Applications—For the Cloud and in the Cloud
Testing Applications—For the Cloud and in the CloudTesting Applications—For the Cloud and in the Cloud
Testing Applications—For the Cloud and in the Cloud
 
DevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 ConferenceDevOps for Big Data - Data 360 2014 Conference
DevOps for Big Data - Data 360 2014 Conference
 

Recently uploaded

Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
Remote DBA Services
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
Yara Milbes
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
XfilesPro
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
Patrick Weigel
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
Peter Muessig
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
Ayan Halder
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
aymanquadri279
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
TaghreedAltamimi
 

Recently uploaded (20)

Oracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptxOracle Database 19c New Features for DBAs and Developers.pptx
Oracle Database 19c New Features for DBAs and Developers.pptx
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
SMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API ServiceSMS API Integration in Saudi Arabia| Best SMS API Service
SMS API Integration in Saudi Arabia| Best SMS API Service
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
Everything You Need to Know About X-Sign: The eSign Functionality of XfilesPr...
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
WWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders AustinWWDC 2024 Keynote Review: For CocoaCoders Austin
WWDC 2024 Keynote Review: For CocoaCoders Austin
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling ExtensionsUI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
UI5con 2024 - Boost Your Development Experience with UI5 Tooling Extensions
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
Requirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional SafetyRequirement Traceability in Xen Functional Safety
Requirement Traceability in Xen Functional Safety
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
What is Master Data Management by PiLog Group
What is Master Data Management by PiLog GroupWhat is Master Data Management by PiLog Group
What is Master Data Management by PiLog Group
 
Lecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptxLecture 2 - software testing SE 412.pptx
Lecture 2 - software testing SE 412.pptx
 

DealingwithVerificationDataOverload

  • 1. SHELLEY LAMBERT LAN XIA IBM RUNTIME TECHNOLOGIES NOV 2019 @SHELLEYMLAMBERT @BONJOURLAN DEALING WITH VERIFICATION DATA OVERLOAD Dealing with Verification Data Overload
  • 2. • THE SCOPE • TEST FRAMEWORK (TESTKITGEN) • JENKINS BUILDS • TEST RESULT SUMMARY SERVICE (TRSS) • DATA REFINERY EXPERIMENTS • PLANS FORWARD AGENDA Dealing with Verification Data Overload
  • 3. THE SCOPE AdoptOpenJDK • ENSURING FREE AND VERIFIED JAVA™ FOR THE COMMUNITY • PROJECTS: ECLIPSE OMR, ECLIPSE OPENJ9, ADOPTOPENJDK • 6+ JENKINS SERVERS Dealing with Verification Data Overload
  • 5. DEGREES OF FREEDOM OpenJ9 Hotspot SAP Corretto 8 9 10 11 12 + openjdk functional perf system external RI 13 JDK Implementations Platforms JDK Versions Test Categories osx osx aix win xlinux plinux 6 versions aarch 58 impl_platform 250000 tests 87,000,000 Tests Impl_platform x testLevels x testGroups x versions 58 x 2 x 3 x 6 x 10M = 20G+ test output per nightly build Plus PR builds, promotion builds and personal builds Dealing with Verification Data Overload
  • 6. GATHER GREAT TESTS 6 functional openjdk perfexternalsystem Dealing with Verification Data Overload
  • 7. GATHER GREAT TESTS 7 functional openjdk perfexternalsystem testNG, cmdlinetester STF junit & others Assorted benchmarks Jtreg, testNG Dealing with Verification Data Overload
  • 8. ADOPTOPENJDK QUALITY ASSURANCE (AQA) 8Dealing with Verification Data Overload • “Make quality certain to happen” • Testing a wide criteria representing actual business requirements to identify binaries ready for production usage Today 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
  • 9. AQA MANIFESTO • open & transparent • diverse & robust set of test suites • evolution alongside implementations • continual investment • process to modify • codecov & other metrics • comparative analysis • portable • tag & publish 9Dealing with Verification Data Overload
  • 10. INNOVATE AND COLLABORATE • Reactive systems • Latitude • Flexible • Common • Standardized • Simple 10Dealing with Verification Data Overload
  • 11. GRANULARITY • Specific Testcases/groups • Different levels • Different versions • Different implementations • Different iterations • Different features • With/Without native test image • … 11 sanity/extended/special 8/11/13/14… openj9/hotspot/ibm/corretto/sap 1/2/n… AOT/JITAAS functional/system/openjdk/perf/external Dealing with Verification Data Overload
  • 12. CONSOLIDATE AND CURATE 12 functional openjdk perfexternalsystem TestKitGen testNG, cmdlinetester STF junit & others Assorted benchmarks Jtreg, testNG Dealing with Verification Data Overload
  • 13. TEST FRAMEWORK (TESTKITGEN) 13Dealing with Verification Data Overload
  • 14. GROUPING & GRANULARITY • group=openjdk • levels=sanity.openjdk, extended.openjdk, special.openjdk • targets=tests in playlist file • jdk_awt, jdk_math, jdk_lang, etc. • jdk_custom=CUSTOM_TARGET env var • set to individual directories or classes 14 openjdk sanity.openjdk jdk_math Java/math/BigDecimal/NegateTests.java Dealing with Verification Data Overload
  • 15. ADOPTOPENJDK CI PIPELINE Run in parallel Build Deploy openjdk functional system perf external Test sanity.system lambdaLoadTest extended.system special.system mathLoadTest … daaLoadTest Dealing with Verification Data Overload
  • 16. JENKINS SCRIPTS FOR TESTING 16 • Repo: https://github.com/AdoptOpenJDK/openjdk-tests • One script (JenkinsfileBase) for all test builds: • Nightly/release • Pull Request • Promotion • Personal/Grinder Dealing with Verification Data Overload
  • 17. SURVEY OF TESTS: CI.ADOPTOPENJDK.NET 17 Categorize test builds based on JDK Version, JDK Impl, test category and platform Dealing with Verification Data Overload
  • 18. TAP & JUNIT PLUGIN 18 Standardize output Dealing with Verification Data Overload
  • 19. ARCHIVE DATA • Archive test data from failed tests onto Jenkins master or Artifactory: • Test logs/output files • Diagnostic files (core/trace/javacore files) • TAP file, JUnit *.jtr, *.xml files • Test repo SHA 19 Minimize stored artifacts Dealing with Verification Data Overload
  • 20. ADOPTOPENJDK TESTING vm docker physical machine Jenkins Server artifactory How to monitor the result??? Dealing with Verification Data Overload
  • 21. TEST RESULT SUMMARY SERVICE (TRSS) • Monitors multiple Jenkins servers • Personalized Dashboard • Provide filtering, sorting, comparing and searching feature • Provide history for triaging and performance trends • Available at https://trss.adoptopenjdk.net/ • Git repo: https://github.com/AdoptOpenJDK/openjdk-test-tools 21Dealing with Verification Data Overload
  • 23. TRSS: PERSONALIZED DASHBOARD 23 Personalize views, only what you need Dealing with Verification Data Overload
  • 24. TRSS: PERSONALIZED DASHBOARD 24Dealing with Verification Data Overload Grid view for test builds summary
  • 25. TRSS: MONITOR JENKINS PIPELINE BUILDS 25 Aggregate results from top-level pipelines Dealing with Verification Data Overload
  • 26. TRSS: TEST BUILDS RESULT 26 Test Result Summary Dealing with Verification Data Overload
  • 27. TRSS: TESTS RESULT 27 Filter and sort on test name, duration, and test results Dealing with Verification Data Overload
  • 28. TRSS: TEST RESULT ACROSS ALL BUILDS 28 Compare test results for all JDK impls, JDK versions and platforms Dealing with Verification Data Overload
  • 29. TRSS: SEARCH TEST 29Dealing with Verification Data Overload Search test output among different test builds
  • 30. TRSS: TEST COMPARE 30 Diff test results among two different builds Dealing with Verification Data Overload
  • 31. TRSS: PERF DASHBOARD 31 Visualize data graphically Dealing with Verification Data Overload
  • 32. LET US COUNT THE WAYS • categorize • standardize • minimize • personalize • aggregate • summarize • filter • sort • compare • search • diff • visualize • model Dealing with Verification Data Overload
  • 33. WHAT IS DEEP LEARNING? Deep learning is a subset of ML algorithms distinguished by: • Loosely based on structure and function of the brain, use artificial neural networks (ANN) • Multiple layers of processing units, “neurons”, output of a layer is input to another layer • Modes of learning, supervised (regression, classification) or unsupervised (pattern analysis) 33Dealing with Verification Data Overload
  • 34. INITIAL DL EXPERIMENTS • Preprocess testOutput based on own listed feature key words index. 34 Padding preprocessed testOutput for Deep Learning model: “[4, 7, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0…]” Label: “1” Original testOutput: “Running test TestIBMJlmLocal_0: ERROR code 3, FAILED test 1, running second test, exception ValueError, exit code 1” Label: “FAILED” Preprocessed testOutput: “[4, Label: 7, 10]” “1” Dealing with Verification Data Overload
  • 35. INITIAL DL EXPERIMENTS - Training Accuracy and Validation Accuracy, our evaluation result is 98.897% with 7800 training data (3900 failed and 3900 passed) and 7800 test data - Training Loss and Validation Loss 35Dealing with Verification Data Overload
  • 36. MODEL BUILDING 36 JVM version Variants used Things we know (input layer) Failure expression Platform JVM Impl Machine ‘age’ Failure age PR list Defect category Things we want to know (output layer) Bug prediction scores Best next action Rate value of test SHAs Dealing with Verification Data Overload
  • 37. Deep Learning for Fuzzing Java Compilers 38Dealing with Verification Data Overload
  • 38. Deep Learning for Fuzzing Java Compilers 39Dealing with Verification Data Overload • Integrated DeepSmith with TKG and TRSS • Easily run thousands of DeepSmith tests in Jenkins with different JDK versions / impls / JVM options • Compare and monitor test outputs using TRSS
  • 39. PLANS FORWARD • Test smarter (as test volume increases) • Change-based testing • Bug prediction service • Enhance TRSS with analytics services • Build skills and continue model/deploy, observe & measure • Innovate/Collaborate • AI-driven fuzz testing (with Professor Hugh Leather) • Test generation service (application of CTD) • Leverage & deploy useful models in open projects 40Dealing with Verification Data Overload

Editor's Notes

  1. - test frameworks are different - no summary page
  2. - Test source open, executed in the open, results openly available - Cover different test categories (functional/regression, security, performance, scalability, load/stress), implementations, versions, platforms - Evolution: - refine automation and tools - remove friction and reduce the process - review existing/new tests on regular basis - community awareness of addition/modification/deletion - codecov, heatmap and bug prediction - Easily run on local and Jenkins - Audit trail
  3. - Test source open, executed in the open, results openly available - Cover different test categories (functional/regression, security, performance, scalability, load/stress), implementations, versions, platforms - Evolution: - refine automation and tools - remove friction and reduce the process - review existing/new tests on regular basis - community awareness of addition/modification/deletion - codecov, heatmap and bug prediction - Easily run on local and Jenkins - Audit trail
  4. We need a reactive system which works well in a changing world. latitude to cover tests that may use significant different test frameworks flexible to specify and test against different requirements a common way to easily add, group, exclude and execute tests test results to have same look & feel Simple to be integrated with any build system
  5. Slice and dice Different levels of granularity
  6. Group, categorize, tag
  7. Leverage 3rd party Jenkins plugins
  8. Artifactory  open source project binary repositories
  9. TensorFlow Keras Sequential model https://keras.io/models/sequential/ https://www.tensorflow.org/tutorials/keras