SlideShare uma empresa Scribd logo
1 de 35
Baixar para ler offline
QA Strategies for
Testing Legacy Web
Apps
Paul Miles
Software Development Manager
An Introduction to NPR
An Introduction to NPR
… more than Radio
What Apps?
What Apps?
What Apps?
What Apps?
What Apps?
Legacy App, Defined
A Legacy App is an important app in production that
has little to no automated tests.
Let’s Add Some Tests...
Let’s Add Some Tests...
● Many Tests
● Fast to Execute
● Run Every Build
Let’s Add Some Tests...
● Integration Level
● Harder to Build
Let’s Add Some Tests...
● Most Comprehensive Quality View
● Slowest to Execute
● Tend to be Brittle
Where to Start?
Where to Start?
● Identify the Most Important Tests
○ Key workflows only
○ Goal is not to cover all features
○ Don’t let perfect be the enemy of good
● Choose Your Tools
○ Consider the real cost of in-house test automation frameworks
■ High Test Maintenance & Infrastructure Costs
○ Online tools are changing the game
■ Permits developers to Focus on Lower Level Tests
Tests at the Top
Start at the Top of the Pyramid
● Phase 0
○ Put failing and brittle tests tests in a corner (if you have any)
Unit Tests
● Phase 0
○ Put failing and brittle tests tests in a corner (if you have any)
● Phase 1
○ Run unit tests with every build
○ Make the results easy to see
Unit Tests
● Phase 0
○ Put failing and brittle tests tests in a corner (if you have any)
● Phase 1
○ Run unit tests with every build
○ Make the results easy to see
● Phase 2
○ Require all tests to pass as a part of the QA process
Unit Tests
● Phase 0
○ Put failing and brittle tests tests in a corner (if you have any)
● Phase 1
○ Run unit tests with every build
○ Make the results easy to see
● Phase 2
○ Require all tests to pass as a part of the QA process
● Then...
○ Add additional tests
○ Consider fixing the brittle ones
○ Do more advanced build and test practices
Unit Tests
Build process around your passing unit tests first, then add
● Phase 0
○ Designate the master environment you are running tests against
○ Put failing and brittle tests tests in a corner (if you have any)
Service Tests
● Phase 0
○ Designate the master environment you are running tests against
○ Put failing and brittle tests tests in a corner (if you have any)
● Phase 1
○ Require all tests to pass as a part of the QA process
Service Tests
● Phase 0
○ Designate the master environment you are running tests against
○ Put failing and brittle tests tests in a corner (if you have any)
● Phase 1
○ Require all tests to pass as a part of the QA process
● Phase 2
○ Run tests as a part of the build / deployment process if possible
○ May require additional automation of those items
Service Tests
● Phase 0
○ Designate the master environment you are running tests against
○ Put failing and brittle tests tests in a corner (if you have any)
● Phase 1
○ Require all tests to pass as a part of the QA process
● Phase 2
○ Run tests as a part of the build / deployment process if possible
○ May require additional automation of those items
● Then...
○ Add additional tests
○ Consider fixing the brittle ones
Service Tests
Service Tests
● “Convert” tests to unit-type tests if possible
○ Utilize data manipulation scripts, mocks, fakes, etc.
● Make tests able to be run on all environments
○ Pre-requisite to incorporate them in the build process
○ May need to address differences in the environments
○ May need to bolster other processes (automation, data import, etc)
● Make them repeatable
○ Bolster setup / teardown
● Incorporate tests in the automated build loop
○ Don’t make the build too long, though
Learn from your unit tests & build from there
There’s More to It
Static Quality Analysis
● Often overlooked, but very effective in improving code quality
● Tools
○ Your IDE
○ Integrate with your Build Server: SonarQube, FindBugs, CheckStyle
○ Integrate with GitHub / BitBucket: CodeClimate
● Adoption Tips
○ Get shared settings for IDE’s in place
○ Tune the settings
○ Focus on new code only
○ Apply “periodic paydown” on issues
○ Address issues before incorporating into the build process
● Run tests (of all kinds) as soon as possible after a commit
○ 10 minute “magic mark”
○ Slow tests may not fail the build, but they still indicate a quality problem if they fail
● Add in coverage measuring tools
● Feature branches / feature toggles
○ Run tests on a designated environment
○ Require tests to pass before merge
○ Complete code reviews flagged by other tools (and incorporate changes before merge)
○ Add tests as code is written
● Separate releases from coding “sprints”
Incorporating Testing in Build Pipelines
Testing Infrastructure
● Requires substantial investment
○ Environments
○ Build servers / tooling
○ Test beds / devices
● Automate everything
● Designate an expert, but get the team to buy in and share responsibility
Iterate, and don’t underestimate the time it will take
Q/A
Contact Info
Paul Miles
pmiles@npr.org
@milespj
https://npr.codes/

Mais conteúdo relacionado

Mais procurados

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integrationdrluckyspin
 
Shift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality AssuranceShift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality AssuranceZbyszek Mockun
 
CodeScience Webinar - Automated Testing for Your Salesforce App — Tips and Tr...
CodeScience Webinar - Automated Testing for Your Salesforce App — Tips and Tr...CodeScience Webinar - Automated Testing for Your Salesforce App — Tips and Tr...
CodeScience Webinar - Automated Testing for Your Salesforce App — Tips and Tr...CodeScience
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueRapidValue
 
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...Steve Lange
 
Continuous delivery in practice (public)
Continuous delivery in practice (public)Continuous delivery in practice (public)
Continuous delivery in practice (public)Tzach Zohar
 
Agile testing for large projects
Agile testing for large projectsAgile testing for large projects
Agile testing for large projectsgaoliang641
 
Integrated Dev And Qa Team With Scrum
Integrated Dev And Qa Team With ScrumIntegrated Dev And Qa Team With Scrum
Integrated Dev And Qa Team With ScrumEthan Huang
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itFarooq Ali
 
Development and test infrastructure
Development and test infrastructureDevelopment and test infrastructure
Development and test infrastructureJun Li
 
How We Build Confidence with Continuous Integration and Automated Testing
How We Build Confidence with Continuous Integration and Automated TestingHow We Build Confidence with Continuous Integration and Automated Testing
How We Build Confidence with Continuous Integration and Automated TestingGareth Marland
 
Quality not-speed-for-distrobution
Quality not-speed-for-distrobutionQuality not-speed-for-distrobution
Quality not-speed-for-distrobutionbownyboy
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated TestingLars Thorup
 
There and back again, Our journey with QA Reports and metrics
There and back again, Our journey with QA Reports and metricsThere and back again, Our journey with QA Reports and metrics
There and back again, Our journey with QA Reports and metricsZbyszek Mockun
 
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang GottesheimPerformance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang GottesheimJAXLondon2014
 

Mais procurados (19)

Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Shift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality AssuranceShift left as first transformation step into Quality Assurance
Shift left as first transformation step into Quality Assurance
 
CodeScience Webinar - Automated Testing for Your Salesforce App — Tips and Tr...
CodeScience Webinar - Automated Testing for Your Salesforce App — Tips and Tr...CodeScience Webinar - Automated Testing for Your Salesforce App — Tips and Tr...
CodeScience Webinar - Automated Testing for Your Salesforce App — Tips and Tr...
 
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValueDevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
DevOps Continuous Integration & Delivery - A Whitepaper by RapidValue
 
DevOps
DevOpsDevOps
DevOps
 
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
PHX - Session #2 Test Driven Development: Improving .NET Application Performa...
 
Continuous delivery in practice (public)
Continuous delivery in practice (public)Continuous delivery in practice (public)
Continuous delivery in practice (public)
 
How to Introduce Continuous Delivery
How to Introduce Continuous DeliveryHow to Introduce Continuous Delivery
How to Introduce Continuous Delivery
 
Agile testing for large projects
Agile testing for large projectsAgile testing for large projects
Agile testing for large projects
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Integrated Dev And Qa Team With Scrum
Integrated Dev And Qa Team With ScrumIntegrated Dev And Qa Team With Scrum
Integrated Dev And Qa Team With Scrum
 
Why your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating itWhy your company loves to welcome change but sucks at accommodating it
Why your company loves to welcome change but sucks at accommodating it
 
Unit testing for project managers
Unit testing for project managersUnit testing for project managers
Unit testing for project managers
 
Development and test infrastructure
Development and test infrastructureDevelopment and test infrastructure
Development and test infrastructure
 
How We Build Confidence with Continuous Integration and Automated Testing
How We Build Confidence with Continuous Integration and Automated TestingHow We Build Confidence with Continuous Integration and Automated Testing
How We Build Confidence with Continuous Integration and Automated Testing
 
Quality not-speed-for-distrobution
Quality not-speed-for-distrobutionQuality not-speed-for-distrobution
Quality not-speed-for-distrobution
 
Introduction to Automated Testing
Introduction to Automated TestingIntroduction to Automated Testing
Introduction to Automated Testing
 
There and back again, Our journey with QA Reports and metrics
There and back again, Our journey with QA Reports and metricsThere and back again, Our journey with QA Reports and metrics
There and back again, Our journey with QA Reports and metrics
 
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang GottesheimPerformance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
Performance Metrics for your Delivery Pipeline - Wolfgang Gottesheim
 

Destaque

Mobile Application Testing in the Cloud - Oct 2012
Mobile Application Testing in the Cloud - Oct 2012Mobile Application Testing in the Cloud - Oct 2012
Mobile Application Testing in the Cloud - Oct 2012CloudBees
 
Managing Cost in Public Cloud Environments
Managing Cost in Public Cloud EnvironmentsManaging Cost in Public Cloud Environments
Managing Cost in Public Cloud EnvironmentsCompuware APM
 
Mobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsMobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsRapidValue
 
Cloud based Testing Mobile Apps
Cloud based Testing Mobile AppsCloud based Testing Mobile Apps
Cloud based Testing Mobile AppsIndicThreads
 

Destaque (6)

Mobile Application Testing in the Cloud - Oct 2012
Mobile Application Testing in the Cloud - Oct 2012Mobile Application Testing in the Cloud - Oct 2012
Mobile Application Testing in the Cloud - Oct 2012
 
Managing Cost in Public Cloud Environments
Managing Cost in Public Cloud EnvironmentsManaging Cost in Public Cloud Environments
Managing Cost in Public Cloud Environments
 
Mobile Testing in the Cloud
Mobile Testing in the CloudMobile Testing in the Cloud
Mobile Testing in the Cloud
 
Mobile testing in the cloud
Mobile testing in the cloudMobile testing in the cloud
Mobile testing in the cloud
 
Mobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue SolutionsMobile App Testing Strategy by RapidValue Solutions
Mobile App Testing Strategy by RapidValue Solutions
 
Cloud based Testing Mobile Apps
Cloud based Testing Mobile AppsCloud based Testing Mobile Apps
Cloud based Testing Mobile Apps
 

Semelhante a QA Strategies for Testing Legacy Web Apps

Quality Assurance: An Overview
Quality Assurance: An OverviewQuality Assurance: An Overview
Quality Assurance: An OverviewAnant Corporation
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering TeamsLars Thorup
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017Xavi Hidalgo
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code cleanBrett Child
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...Max Barrass
 
Php Inspections (EA Extended): The Cookbook
Php Inspections (EA Extended): The CookbookPhp Inspections (EA Extended): The Cookbook
Php Inspections (EA Extended): The CookbookVladimir Reznichenko
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesLars Rosenquist
 
A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)Thierry Gayet
 
Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Abhijeet Vaikar
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkPeter Kofler
 
Testing in a continuous delivery environment
Testing in a continuous delivery environmentTesting in a continuous delivery environment
Testing in a continuous delivery environmentStefan Verhoeff
 
Agile Software Testing the Agilogy Way
Agile Software Testing the Agilogy WayAgile Software Testing the Agilogy Way
Agile Software Testing the Agilogy WayJordi Pradel
 
Test Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh DahalTest Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh DahalQA or the Highway
 
A brief history of automation in Software Engineering
A brief history of automation in Software EngineeringA brief history of automation in Software Engineering
A brief history of automation in Software EngineeringGeorg Buske
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test AutomationPekka Klärck
 
Indy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-muleIndy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-muleikram_ahamed
 

Semelhante a QA Strategies for Testing Legacy Web Apps (20)

Quality Assurance: An Overview
Quality Assurance: An OverviewQuality Assurance: An Overview
Quality Assurance: An Overview
 
High Performance Software Engineering Teams
High Performance Software Engineering TeamsHigh Performance Software Engineering Teams
High Performance Software Engineering Teams
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 
How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...How to establish ways of working that allows shifting-left of the automation ...
How to establish ways of working that allows shifting-left of the automation ...
 
Php Inspections (EA Extended): The Cookbook
Php Inspections (EA Extended): The CookbookPhp Inspections (EA Extended): The Cookbook
Php Inspections (EA Extended): The Cookbook
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
Cloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud PipelinesCloud Native CI/CD with Spring Cloud Pipelines
Cloud Native CI/CD with Spring Cloud Pipelines
 
A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)
 
UPC Plone Testing Talk
UPC Plone Testing TalkUPC Plone Testing Talk
UPC Plone Testing Talk
 
Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)Unit testing (Exploring the other side as a tester)
Unit testing (Exploring the other side as a tester)
 
Writing Tests with the Unity Test Framework
Writing Tests with the Unity Test FrameworkWriting Tests with the Unity Test Framework
Writing Tests with the Unity Test Framework
 
Testing in a continuous delivery environment
Testing in a continuous delivery environmentTesting in a continuous delivery environment
Testing in a continuous delivery environment
 
Agile Software Testing the Agilogy Way
Agile Software Testing the Agilogy WayAgile Software Testing the Agilogy Way
Agile Software Testing the Agilogy Way
 
Test Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh DahalTest Automation Architecture That Works by Bhupesh Dahal
Test Automation Architecture That Works by Bhupesh Dahal
 
A brief history of automation in Software Engineering
A brief history of automation in Software EngineeringA brief history of automation in Software Engineering
A brief history of automation in Software Engineering
 
Introduction to Test Automation
Introduction to Test AutomationIntroduction to Test Automation
Introduction to Test Automation
 
Indy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-muleIndy meetup#7 effective unit-testing-mule
Indy meetup#7 effective unit-testing-mule
 
Methodology: IT test
Methodology: IT testMethodology: IT test
Methodology: IT test
 
QAorHighway2016
QAorHighway2016QAorHighway2016
QAorHighway2016
 

Último

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Último (20)

Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 

QA Strategies for Testing Legacy Web Apps

  • 1. QA Strategies for Testing Legacy Web Apps Paul Miles Software Development Manager
  • 3. An Introduction to NPR … more than Radio
  • 10. A Legacy App is an important app in production that has little to no automated tests.
  • 11. Let’s Add Some Tests...
  • 12. Let’s Add Some Tests... ● Many Tests ● Fast to Execute ● Run Every Build
  • 13. Let’s Add Some Tests... ● Integration Level ● Harder to Build
  • 14. Let’s Add Some Tests... ● Most Comprehensive Quality View ● Slowest to Execute ● Tend to be Brittle
  • 17. ● Identify the Most Important Tests ○ Key workflows only ○ Goal is not to cover all features ○ Don’t let perfect be the enemy of good ● Choose Your Tools ○ Consider the real cost of in-house test automation frameworks ■ High Test Maintenance & Infrastructure Costs ○ Online tools are changing the game ■ Permits developers to Focus on Lower Level Tests Tests at the Top
  • 18. Start at the Top of the Pyramid
  • 19. ● Phase 0 ○ Put failing and brittle tests tests in a corner (if you have any) Unit Tests
  • 20. ● Phase 0 ○ Put failing and brittle tests tests in a corner (if you have any) ● Phase 1 ○ Run unit tests with every build ○ Make the results easy to see Unit Tests
  • 21. ● Phase 0 ○ Put failing and brittle tests tests in a corner (if you have any) ● Phase 1 ○ Run unit tests with every build ○ Make the results easy to see ● Phase 2 ○ Require all tests to pass as a part of the QA process Unit Tests
  • 22. ● Phase 0 ○ Put failing and brittle tests tests in a corner (if you have any) ● Phase 1 ○ Run unit tests with every build ○ Make the results easy to see ● Phase 2 ○ Require all tests to pass as a part of the QA process ● Then... ○ Add additional tests ○ Consider fixing the brittle ones ○ Do more advanced build and test practices Unit Tests
  • 23. Build process around your passing unit tests first, then add
  • 24. ● Phase 0 ○ Designate the master environment you are running tests against ○ Put failing and brittle tests tests in a corner (if you have any) Service Tests
  • 25. ● Phase 0 ○ Designate the master environment you are running tests against ○ Put failing and brittle tests tests in a corner (if you have any) ● Phase 1 ○ Require all tests to pass as a part of the QA process Service Tests
  • 26. ● Phase 0 ○ Designate the master environment you are running tests against ○ Put failing and brittle tests tests in a corner (if you have any) ● Phase 1 ○ Require all tests to pass as a part of the QA process ● Phase 2 ○ Run tests as a part of the build / deployment process if possible ○ May require additional automation of those items Service Tests
  • 27. ● Phase 0 ○ Designate the master environment you are running tests against ○ Put failing and brittle tests tests in a corner (if you have any) ● Phase 1 ○ Require all tests to pass as a part of the QA process ● Phase 2 ○ Run tests as a part of the build / deployment process if possible ○ May require additional automation of those items ● Then... ○ Add additional tests ○ Consider fixing the brittle ones Service Tests
  • 28. Service Tests ● “Convert” tests to unit-type tests if possible ○ Utilize data manipulation scripts, mocks, fakes, etc. ● Make tests able to be run on all environments ○ Pre-requisite to incorporate them in the build process ○ May need to address differences in the environments ○ May need to bolster other processes (automation, data import, etc) ● Make them repeatable ○ Bolster setup / teardown ● Incorporate tests in the automated build loop ○ Don’t make the build too long, though
  • 29. Learn from your unit tests & build from there
  • 31. Static Quality Analysis ● Often overlooked, but very effective in improving code quality ● Tools ○ Your IDE ○ Integrate with your Build Server: SonarQube, FindBugs, CheckStyle ○ Integrate with GitHub / BitBucket: CodeClimate ● Adoption Tips ○ Get shared settings for IDE’s in place ○ Tune the settings ○ Focus on new code only ○ Apply “periodic paydown” on issues ○ Address issues before incorporating into the build process
  • 32. ● Run tests (of all kinds) as soon as possible after a commit ○ 10 minute “magic mark” ○ Slow tests may not fail the build, but they still indicate a quality problem if they fail ● Add in coverage measuring tools ● Feature branches / feature toggles ○ Run tests on a designated environment ○ Require tests to pass before merge ○ Complete code reviews flagged by other tools (and incorporate changes before merge) ○ Add tests as code is written ● Separate releases from coding “sprints” Incorporating Testing in Build Pipelines
  • 33. Testing Infrastructure ● Requires substantial investment ○ Environments ○ Build servers / tooling ○ Test beds / devices ● Automate everything ● Designate an expert, but get the team to buy in and share responsibility
  • 34. Iterate, and don’t underestimate the time it will take