SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
From
Sledgehammer to
Fine Brush for QA
@ShelleyMLambert
shelley.lambert@adoptopenjdk.net
August 2020
About Me
• AdoptOpenJDK TSC
• AQA Lead
• Eclipse OpenJ9 Committer
• IBM Runtimes Global QA Lead
• Deep Learning Aficionado
• Edible Food Forests
• FCF Director (tree planting!)
• Yoga teacher
Progressive Refinement
Start with brute force
End with finesse
Both needed in QA
• Sledgehammer – ruthless, insensitive, unnecessary force
• Fine brush – detail work
The Steps
ASSESS WHERE
YOU ARE
DETERMINE
WHAT MATTERS
DESIGN PROTOTYPE
APPROACH
REFINE
Assess Where You Are
• What resources you have
• Team/people
• Existing tests
• Dove-tailing into existing solution? Machines / CI
• Measure
• Code coverage (sledgehammer blow)
• Functional coverage (brush stroke)
• Other metrics (PR list, change-based testing)
• Issues list
• What your users tell you
Determine What Matters
• Requirements
• Users
• Prioritize
• functionality, security, perf, scalability
• Risk map, meh? (related to Issues list)
Design
• Design your QA approach like it is a software solution (because it is)
• Understand where your tool choices will constrain you
• Select tools for prototype, but design to avoid lock-in… (portability)
• Online tutorials focus on ‘test with IDE xxxx’ or ‘use framework yyyy’
Prototype Approach
• Bare minimum needed to ‘plug in’ testing
Refine
• Keep the good, toss the bad
• Friction is bad
• Testing evolves alongside your code base
• Always ask, how can we improve?
Specific Example: AQA
• AdoptOpenJDK Quality Assurance (AQA)
• Community driven, open-source project
• Broadest set of platforms of any OpenJDK distributor
• Testing a wide criteria representing actual business
requirements to identify binaries ready for
production usage
AQA: Assess
Current state Post-assessment Roadmap
Functional correctness Security
OpenJDK regression (open) Passes known vulnerability tests
Functional correctness
Compliance OpenJDK regression
Oracle JCK (closed) Eclipse functional
Usability
Builder-specific testing (unknown) Application & framework tests
Performance
Published metrics
Achieves minimum throughput scores
Scalability & durability
Load & stress testing
AQA: Determine What Matters
• “Make quality certain to happen”
• AQA Manifesto
• Open and transparent and community driven
• Diverse and robust enough to cover enterprise requirements
• Evolving alongside JDK
• Portable (run on laptop to support development, run in CI servers)
• Tagged/tracked and published to rerun tests and reproduce results
AQA: Design
AQA: Scope
OpenJ9 Hotspot SAP Corretto
8 11 13 14 15 +
openjdk functional perf system
external
(3rd
party app)
Red Hat
Branch
X
JDK Implementations
Platforms
JDK Versions
Test Categories
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 &
Docker image testing
Built in-house Built upstream
scala
scala
scala
scala
scala
camel
scala
scala
scala
derby
scala
scala
scala
scala
elasticsearch
scala
scala
scala
scala
openliberty
scala
scala
scala
scala
jenkins
scala
scala
scala
scala
kafka
scala
scala
scala
scala
quarkus
AQA: Design
AQA AUTOMATION: 3 LAYER CAKE
testkitgen (TKG)
Test Results Summary Service (TRSS)
CI System (Jenkins / Tekton / AzDO / Github Actions, etc.)
Responsibilities:
- Categorize logically, Generates test targets based on playlist (level/platform/version/impl specific)
- Execute tests via common command line / make target patterns
- Test addition via auto-discovered directories, Standardize exclusion
- Parameters: BUILD_LIST, EXTRA_OPTIONS, JVM_OPTIONS, TEST_FLAG, ITERATION
- Generate dynamic test playlists based on input (smart parallelization)
Responsibilities:
- Schedule regular builds
- Multiplex tests across multiple nodes of all platforms
- Basic GUI view of test results
- Basic forms of parallelization
Responsibilities:
- Monitor multiple CI servers
- Graphical, Aggregate summary, Deep history
- Search/sort/filter
- Pluggable parsers
- Basis for deeper analytics and deep learning services
Layer 1: Standalone
- Execution
- Exclusion
- Test target report
summary (TAP)
- Reproducibility
Layer 2: Requires L1
- More nodes
- Scheduling
- GUI
- enhanced reporting for
tests that support Junit
output
Layer 3: Requires L1 & L2
- Database queries
- Basis for extras, search /sort
/filter /analyze across DB
entries
- Monitor anything
AQA: Prototype Approach
1st layer of the cake
AQA: Refine
• Past 2.5 years have been a shocking amount of refinement
• Refer to tests repo history (openjdk-tests, TKG, openjdk-test-tools,etc)
• Building blocks for further refinement
AQA 2020 Plans – Keep on Refinin’
• Performance
• compare from release to release
• Multi-machine
• EXTERNAL Test group expansion/clean-up
• External_custom, ‘_with_tag’ targets
• Smarter/Better/Faster
• Smart Parallelism
• Automatically test and reinclude excluded tests
• Change-based testing
• TRSS enhancements
• BY ‘started_by’ view, By ‘Version_info’ view
• Enhanced Analytics services to aid triage, Bug prediction, Core analytics
• Collaboration with research
• Deepsmith – deep learning model to generate fuzzers
• Feedback to open benchmark teams
The Long List of Brush Strokes
In no particular order and definitely not the full list:
• Bug prediction
• Combinatorial Test Design / Modeling
• Improve your Triage tools
• Change-based testing (combine codecov with PR list)
• Verify your Tests (defect injection)
• Apply deep learning to help with certain QA tasks
Functional vs Code Coverage
static Integer mathyJunkFunction(int num1, Integer num2, String num3) {
return new Integer(num1) / (num2 + new Integer(num3));
}
Integer result = mathyJunkFunction(1, new Integer(1), “1”);
TESTED, 100% code coverage
hazaa!
• Defect 1: What if num3 has a value of null (throws NumberFormatException)?
• Defect 2: What if num3 is “1” and num2 is -1, or “0” and 0, or any other combination that sum to
0 (throws ArithmeticException)?
• Defect 3: What if num2 is null (throws NullPointerException)?
Bug Prediction
• SCORES PER FILE BASED ON ‘RECENT’ CHANGES DUE TO DEFECTS (GITHUB PRS/ISSUES), PREDICT
BASED ON CHANGE & DEFECT HISTORY, OTHER FEATURES?
Hear from More AdoptOpenJDK Folks
https://blog.adoptopenjdk.net/2020/07/
adoptopenjdk-virtual-roadshow
Extra Info
• adoptopenjdk.net
• trss.adoptopenjdk.net
• Bi-weekly AQAvit meetups (open, transparent evolution)
• https://github.com/AdoptOpenJDK/openjdk-tests/issues?q=+label%3A%22AQAvit+Meeting%22+
Demo TRSS

Más contenido relacionado

La actualidad más candente

Xray & Xporter were in Austria: Jira & Confluence Solutions Day 2018
Xray & Xporter were in Austria: Jira & Confluence Solutions Day 2018Xray & Xporter were in Austria: Jira & Confluence Solutions Day 2018
Xray & Xporter were in Austria: Jira & Confluence Solutions Day 2018Xpand IT
 
Strategies in continuous delivery
Strategies in continuous deliveryStrategies in continuous delivery
Strategies in continuous deliveryAviran Mordo
 
Quality Dashboard, an industry collaborative platform for translation quality...
Quality Dashboard, an industry collaborative platform for translation quality...Quality Dashboard, an industry collaborative platform for translation quality...
Quality Dashboard, an industry collaborative platform for translation quality...TAUS - The Language Data Network
 
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agileExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agileEduardo Riol
 
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQuali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQualiQuali
 
Lessons Learned Monitoring Production
Lessons Learned Monitoring ProductionLessons Learned Monitoring Production
Lessons Learned Monitoring ProductionAviran Mordo
 
DevOps as-a-Service (DaaS) value
DevOps as-a-Service (DaaS) valueDevOps as-a-Service (DaaS) value
DevOps as-a-Service (DaaS) valueMarc Hornbeek
 
Improved Reporting with JIRA Add-ons - Xpand IT & Atlassian JAM Sessions 2017
Improved Reporting with JIRA Add-ons - Xpand IT & Atlassian JAM Sessions 2017Improved Reporting with JIRA Add-ons - Xpand IT & Atlassian JAM Sessions 2017
Improved Reporting with JIRA Add-ons - Xpand IT & Atlassian JAM Sessions 2017Xpand IT
 
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham CarrickFrom Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham CarrickAtlassian
 
DevOps presentation
DevOps presentationDevOps presentation
DevOps presentationAxsh Co. LTD
 
Fostering Long-Term Test Automation Success
Fostering Long-Term Test Automation SuccessFostering Long-Term Test Automation Success
Fostering Long-Term Test Automation SuccessJosiah Renaudin
 
Test management in scrum
Test management in scrumTest management in scrum
Test management in scrumQA Club Kiev
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+OpsShalu Ahuja
 
DevOps maturity models Knowit and DASA
DevOps maturity models Knowit and DASADevOps maturity models Knowit and DASA
DevOps maturity models Knowit and DASAKari Kakkonen
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Kaizenko
 
Leading the Transformation
Leading the TransformationLeading the Transformation
Leading the TransformationXebiaLabs
 
JIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesJIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesAtlassian
 
QTest - Test management Tool
QTest - Test management ToolQTest - Test management Tool
QTest - Test management ToolShivaraj R
 

La actualidad más candente (20)

Xray & Xporter were in Austria: Jira & Confluence Solutions Day 2018
Xray & Xporter were in Austria: Jira & Confluence Solutions Day 2018Xray & Xporter were in Austria: Jira & Confluence Solutions Day 2018
Xray & Xporter were in Austria: Jira & Confluence Solutions Day 2018
 
Strategies in continuous delivery
Strategies in continuous deliveryStrategies in continuous delivery
Strategies in continuous delivery
 
Quality Dashboard, an industry collaborative platform for translation quality...
Quality Dashboard, an industry collaborative platform for translation quality...Quality Dashboard, an industry collaborative platform for translation quality...
Quality Dashboard, an industry collaborative platform for translation quality...
 
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agileExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
ExpoQA 2017 testing_tools_in_the_ages_of_devops_and_agile
 
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspectiveQuali webinar de-mystifyind dev_ops-a practitioner’s perspective
Quali webinar de-mystifyind dev_ops-a practitioner’s perspective
 
Lessons Learned Monitoring Production
Lessons Learned Monitoring ProductionLessons Learned Monitoring Production
Lessons Learned Monitoring Production
 
QualiSystems-Brief TestShell
QualiSystems-Brief TestShellQualiSystems-Brief TestShell
QualiSystems-Brief TestShell
 
DevOps as-a-Service (DaaS) value
DevOps as-a-Service (DaaS) valueDevOps as-a-Service (DaaS) value
DevOps as-a-Service (DaaS) value
 
Improved Reporting with JIRA Add-ons - Xpand IT & Atlassian JAM Sessions 2017
Improved Reporting with JIRA Add-ons - Xpand IT & Atlassian JAM Sessions 2017Improved Reporting with JIRA Add-ons - Xpand IT & Atlassian JAM Sessions 2017
Improved Reporting with JIRA Add-ons - Xpand IT & Atlassian JAM Sessions 2017
 
Introducing DevOps
Introducing DevOpsIntroducing DevOps
Introducing DevOps
 
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham CarrickFrom Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
From Concept to Clustered JAC (jira.atlassian.com) - Graham Carrick
 
DevOps presentation
DevOps presentationDevOps presentation
DevOps presentation
 
Fostering Long-Term Test Automation Success
Fostering Long-Term Test Automation SuccessFostering Long-Term Test Automation Success
Fostering Long-Term Test Automation Success
 
Test management in scrum
Test management in scrumTest management in scrum
Test management in scrum
 
Dev ops != Dev+Ops
Dev ops != Dev+OpsDev ops != Dev+Ops
Dev ops != Dev+Ops
 
DevOps maturity models Knowit and DASA
DevOps maturity models Knowit and DASADevOps maturity models Knowit and DASA
DevOps maturity models Knowit and DASA
 
Agile testing - Testing From Day 1
Agile testing - Testing From Day 1Agile testing - Testing From Day 1
Agile testing - Testing From Day 1
 
Leading the Transformation
Leading the TransformationLeading the Transformation
Leading the Transformation
 
JIRA Performance After 300,000 Issues
JIRA Performance After 300,000 IssuesJIRA Performance After 300,000 Issues
JIRA Performance After 300,000 Issues
 
QTest - Test management Tool
QTest - Test management ToolQTest - Test management Tool
QTest - Test management Tool
 

Similar a Sledgehammer to Fine Brush for QA

SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021Shelley Lambert
 
Implementation of Agile SDLC with JIRA and CICD.pptx
Implementation of  Agile SDLC with JIRA and CICD.pptxImplementation of  Agile SDLC with JIRA and CICD.pptx
Implementation of Agile SDLC with JIRA and CICD.pptxknowworld
 
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
 
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Vimal Suba
 
No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous TestingParasoft
 
RTTS - the Software Quality Experts
RTTS - the Software Quality ExpertsRTTS - the Software Quality Experts
RTTS - the Software Quality ExpertsRTTS
 
DefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStackDefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStackMark Voelker
 
Agile_Jira_Presentation_1.pptx
Agile_Jira_Presentation_1.pptxAgile_Jira_Presentation_1.pptx
Agile_Jira_Presentation_1.pptxknowworld
 
Shilpa Basu - CV
Shilpa Basu - CVShilpa Basu - CV
Shilpa Basu - CVShilpa Basu
 
A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversionAshish Kumar
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterDeclan Whelan
 
ALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudJeremy Likness
 
InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)Mark Voelker
 
Salesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITSalesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITVishnu Raju Datla
 
AUG NYC June 12 - Event Presentations
AUG NYC June 12 - Event PresentationsAUG NYC June 12 - Event Presentations
AUG NYC June 12 - Event PresentationsMadhusudhan Matrubai
 
Roadmap to Enterprise Quality
Roadmap to Enterprise QualityRoadmap to Enterprise Quality
Roadmap to Enterprise QualityJeff Bramwell
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersSPC Adriatics
 
Shuvam dutta | Performance testing & engineering
Shuvam dutta | Performance testing & engineeringShuvam dutta | Performance testing & engineering
Shuvam dutta | Performance testing & engineeringShuvam Dutta
 

Similar a Sledgehammer to Fine Brush for QA (20)

SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021SledgehammerToFinebrush_Devnexus_2021
SledgehammerToFinebrush_Devnexus_2021
 
Implementation of Agile SDLC with JIRA and CICD.pptx
Implementation of  Agile SDLC with JIRA and CICD.pptxImplementation of  Agile SDLC with JIRA and CICD.pptx
Implementation of Agile SDLC with JIRA and CICD.pptx
 
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
 
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
Cloud and Network Transformation using DevOps methodology : Cisco Live 2015
 
No Devops Without Continuous Testing
No Devops Without Continuous TestingNo Devops Without Continuous Testing
No Devops Without Continuous Testing
 
RTTS - the Software Quality Experts
RTTS - the Software Quality ExpertsRTTS - the Software Quality Experts
RTTS - the Software Quality Experts
 
DefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStackDefCore: The Interoperability Standard for OpenStack
DefCore: The Interoperability Standard for OpenStack
 
Agile_Jira_Presentation_1.pptx
Agile_Jira_Presentation_1.pptxAgile_Jira_Presentation_1.pptx
Agile_Jira_Presentation_1.pptx
 
Agile testing
Agile testingAgile testing
Agile testing
 
Shilpa Basu - CV
Shilpa Basu - CVShilpa Basu - CV
Shilpa Basu - CV
 
A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversion
 
Agile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile TesterAgile Testing: The Role Of The Agile Tester
Agile Testing: The Role Of The Agile Tester
 
ALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the CloudALM with TFS: From the Drawing Board to the Cloud
ALM with TFS: From the Drawing Board to the Cloud
 
InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)InteropWG Intro & Vertical Programs (May. 2017)
InteropWG Intro & Vertical Programs (May. 2017)
 
Salesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABITSalesforce Continuous Integration with AutoRABIT
Salesforce Continuous Integration with AutoRABIT
 
AUG NYC June 12 - Event Presentations
AUG NYC June 12 - Event PresentationsAUG NYC June 12 - Event Presentations
AUG NYC June 12 - Event Presentations
 
Roadmap to Enterprise Quality
Roadmap to Enterprise QualityRoadmap to Enterprise Quality
Roadmap to Enterprise Quality
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Lean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill AyersLean-Agile Development with SharePoint - Bill Ayers
Lean-Agile Development with SharePoint - Bill Ayers
 
Shuvam dutta | Performance testing & engineering
Shuvam dutta | Performance testing & engineeringShuvam dutta | Performance testing & engineering
Shuvam dutta | Performance testing & engineering
 

Más de Shelley Lambert

Listening To a Forest for Project Health
Listening To a Forest for Project HealthListening To a Forest for Project Health
Listening To a Forest for Project HealthShelley Lambert
 
AQAvit: Vitality through Testing
AQAvit: Vitality through TestingAQAvit: Vitality through Testing
AQAvit: Vitality through TestingShelley Lambert
 
Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Shelley Lambert
 
Learning on Deep Learning
Learning on Deep LearningLearning on Deep Learning
Learning on Deep LearningShelley Lambert
 
The_Little_Jenkinsfile_That_Could
The_Little_Jenkinsfile_That_CouldThe_Little_Jenkinsfile_That_Could
The_Little_Jenkinsfile_That_CouldShelley Lambert
 
DealingwithVerificationDataOverload
DealingwithVerificationDataOverloadDealingwithVerificationDataOverload
DealingwithVerificationDataOverloadShelley Lambert
 
AdoptOpenJDK Quality Assurance OJDK Lightning Talk
AdoptOpenJDK Quality Assurance OJDK Lightning TalkAdoptOpenJDK Quality Assurance OJDK Lightning Talk
AdoptOpenJDK Quality Assurance OJDK Lightning TalkShelley Lambert
 

Más de Shelley Lambert (7)

Listening To a Forest for Project Health
Listening To a Forest for Project HealthListening To a Forest for Project Health
Listening To a Forest for Project Health
 
AQAvit: Vitality through Testing
AQAvit: Vitality through TestingAQAvit: Vitality through Testing
AQAvit: Vitality through Testing
 
Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014Cloud-based Test Microservices JavaOne 2014
Cloud-based Test Microservices JavaOne 2014
 
Learning on Deep Learning
Learning on Deep LearningLearning on Deep Learning
Learning on Deep Learning
 
The_Little_Jenkinsfile_That_Could
The_Little_Jenkinsfile_That_CouldThe_Little_Jenkinsfile_That_Could
The_Little_Jenkinsfile_That_Could
 
DealingwithVerificationDataOverload
DealingwithVerificationDataOverloadDealingwithVerificationDataOverload
DealingwithVerificationDataOverload
 
AdoptOpenJDK Quality Assurance OJDK Lightning Talk
AdoptOpenJDK Quality Assurance OJDK Lightning TalkAdoptOpenJDK Quality Assurance OJDK Lightning Talk
AdoptOpenJDK Quality Assurance OJDK Lightning Talk
 

Último

SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profileakrivarotava
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?Alexandre Beguel
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfRTS corp
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingShane Coughlan
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shardsChristopher Curtin
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalLionel Briand
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLionel Briand
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxRTS corp
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...Bert Jan Schrijver
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsJean Silva
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxRTS corp
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 

Último (20)

SoftTeco - Software Development Company Profile
SoftTeco - Software Development Company ProfileSoftTeco - Software Development Company Profile
SoftTeco - Software Development Company Profile
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?SAM Training Session - How to use EXCEL ?
SAM Training Session - How to use EXCEL ?
 
VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024VictoriaMetrics Anomaly Detection Updates: Q1 2024
VictoriaMetrics Anomaly Detection Updates: Q1 2024
 
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdfEnhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
Enhancing Supply Chain Visibility with Cargo Cloud Solutions.pdf
 
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full RecordingOpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
OpenChain Education Work Group Monthly Meeting - 2024-04-10 - Full Recording
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards2024 DevNexus Patterns for Resiliency: Shuffle shards
2024 DevNexus Patterns for Resiliency: Shuffle shards
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Precise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive GoalPrecise and Complete Requirements? An Elusive Goal
Precise and Complete Requirements? An Elusive Goal
 
Large Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and RepairLarge Language Models for Test Case Evolution and Repair
Large Language Models for Test Case Evolution and Repair
 
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptxReal-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
Real-time Tracking and Monitoring with Cargo Cloud Solutions.pptx
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
JavaLand 2024 - Going serverless with Quarkus GraalVM native images and AWS L...
 
Strategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero resultsStrategies for using alternative queries to mitigate zero results
Strategies for using alternative queries to mitigate zero results
 
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptxThe Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
The Role of IoT and Sensor Technology in Cargo Cloud Solutions.pptx
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 

Sledgehammer to Fine Brush for QA

  • 1. From Sledgehammer to Fine Brush for QA @ShelleyMLambert shelley.lambert@adoptopenjdk.net August 2020
  • 2. About Me • AdoptOpenJDK TSC • AQA Lead • Eclipse OpenJ9 Committer • IBM Runtimes Global QA Lead • Deep Learning Aficionado • Edible Food Forests • FCF Director (tree planting!) • Yoga teacher
  • 3. Progressive Refinement Start with brute force End with finesse Both needed in QA • Sledgehammer – ruthless, insensitive, unnecessary force • Fine brush – detail work
  • 4. The Steps ASSESS WHERE YOU ARE DETERMINE WHAT MATTERS DESIGN PROTOTYPE APPROACH REFINE
  • 5. Assess Where You Are • What resources you have • Team/people • Existing tests • Dove-tailing into existing solution? Machines / CI • Measure • Code coverage (sledgehammer blow) • Functional coverage (brush stroke) • Other metrics (PR list, change-based testing) • Issues list • What your users tell you
  • 6. Determine What Matters • Requirements • Users • Prioritize • functionality, security, perf, scalability • Risk map, meh? (related to Issues list)
  • 7. Design • Design your QA approach like it is a software solution (because it is) • Understand where your tool choices will constrain you • Select tools for prototype, but design to avoid lock-in… (portability) • Online tutorials focus on ‘test with IDE xxxx’ or ‘use framework yyyy’
  • 8. Prototype Approach • Bare minimum needed to ‘plug in’ testing
  • 9. Refine • Keep the good, toss the bad • Friction is bad • Testing evolves alongside your code base • Always ask, how can we improve?
  • 10. Specific Example: AQA • AdoptOpenJDK Quality Assurance (AQA) • Community driven, open-source project • Broadest set of platforms of any OpenJDK distributor • Testing a wide criteria representing actual business requirements to identify binaries ready for production usage
  • 11. AQA: Assess Current state Post-assessment Roadmap Functional correctness Security OpenJDK regression (open) Passes known vulnerability tests Functional correctness Compliance OpenJDK regression Oracle JCK (closed) Eclipse functional Usability Builder-specific testing (unknown) Application & framework tests Performance Published metrics Achieves minimum throughput scores Scalability & durability Load & stress testing
  • 12. AQA: Determine What Matters • “Make quality certain to happen” • AQA Manifesto • Open and transparent and community driven • Diverse and robust enough to cover enterprise requirements • Evolving alongside JDK • Portable (run on laptop to support development, run in CI servers) • Tagged/tracked and published to rerun tests and reproduce results
  • 14. AQA: Scope OpenJ9 Hotspot SAP Corretto 8 11 13 14 15 + openjdk functional perf system external (3rd party app) Red Hat Branch X JDK Implementations Platforms JDK Versions Test Categories 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 & Docker image testing Built in-house Built upstream scala scala scala scala scala camel scala scala scala derby scala scala scala scala elasticsearch scala scala scala scala openliberty scala scala scala scala jenkins scala scala scala scala kafka scala scala scala scala quarkus
  • 15. AQA: Design AQA AUTOMATION: 3 LAYER CAKE testkitgen (TKG) Test Results Summary Service (TRSS) CI System (Jenkins / Tekton / AzDO / Github Actions, etc.) Responsibilities: - Categorize logically, Generates test targets based on playlist (level/platform/version/impl specific) - Execute tests via common command line / make target patterns - Test addition via auto-discovered directories, Standardize exclusion - Parameters: BUILD_LIST, EXTRA_OPTIONS, JVM_OPTIONS, TEST_FLAG, ITERATION - Generate dynamic test playlists based on input (smart parallelization) Responsibilities: - Schedule regular builds - Multiplex tests across multiple nodes of all platforms - Basic GUI view of test results - Basic forms of parallelization Responsibilities: - Monitor multiple CI servers - Graphical, Aggregate summary, Deep history - Search/sort/filter - Pluggable parsers - Basis for deeper analytics and deep learning services Layer 1: Standalone - Execution - Exclusion - Test target report summary (TAP) - Reproducibility Layer 2: Requires L1 - More nodes - Scheduling - GUI - enhanced reporting for tests that support Junit output Layer 3: Requires L1 & L2 - Database queries - Basis for extras, search /sort /filter /analyze across DB entries - Monitor anything
  • 16. AQA: Prototype Approach 1st layer of the cake
  • 17. AQA: Refine • Past 2.5 years have been a shocking amount of refinement • Refer to tests repo history (openjdk-tests, TKG, openjdk-test-tools,etc) • Building blocks for further refinement
  • 18. AQA 2020 Plans – Keep on Refinin’ • Performance • compare from release to release • Multi-machine • EXTERNAL Test group expansion/clean-up • External_custom, ‘_with_tag’ targets • Smarter/Better/Faster • Smart Parallelism • Automatically test and reinclude excluded tests • Change-based testing • TRSS enhancements • BY ‘started_by’ view, By ‘Version_info’ view • Enhanced Analytics services to aid triage, Bug prediction, Core analytics • Collaboration with research • Deepsmith – deep learning model to generate fuzzers • Feedback to open benchmark teams
  • 19. The Long List of Brush Strokes In no particular order and definitely not the full list: • Bug prediction • Combinatorial Test Design / Modeling • Improve your Triage tools • Change-based testing (combine codecov with PR list) • Verify your Tests (defect injection) • Apply deep learning to help with certain QA tasks
  • 20. Functional vs Code Coverage static Integer mathyJunkFunction(int num1, Integer num2, String num3) { return new Integer(num1) / (num2 + new Integer(num3)); } Integer result = mathyJunkFunction(1, new Integer(1), “1”); TESTED, 100% code coverage hazaa! • Defect 1: What if num3 has a value of null (throws NumberFormatException)? • Defect 2: What if num3 is “1” and num2 is -1, or “0” and 0, or any other combination that sum to 0 (throws ArithmeticException)? • Defect 3: What if num2 is null (throws NullPointerException)?
  • 21. Bug Prediction • SCORES PER FILE BASED ON ‘RECENT’ CHANGES DUE TO DEFECTS (GITHUB PRS/ISSUES), PREDICT BASED ON CHANGE & DEFECT HISTORY, OTHER FEATURES?
  • 22. Hear from More AdoptOpenJDK Folks https://blog.adoptopenjdk.net/2020/07/ adoptopenjdk-virtual-roadshow
  • 23. Extra Info • adoptopenjdk.net • trss.adoptopenjdk.net • Bi-weekly AQAvit meetups (open, transparent evolution) • https://github.com/AdoptOpenJDK/openjdk-tests/issues?q=+label%3A%22AQAvit+Meeting%22+