SlideShare a Scribd company logo
Shift-Left Accessibility
Sagar Barbhaya, Intuit Accessibility
CSUN 2018
Twitter handle: @sagarbb160

Linkedin URL: https://www.linkedin.com/in/sagarbarbhaya/
Key Factors
• Software Development lifecycle
• Large list of competing priorities when building
for the web
• Accessibility, performance, security - calls for
automation
- If we look at SDLC for any application, there are a lot of things that need to be taken care of as a part of the development.

- Some of these include performance, security, accessibility. 

- These should ideally be handled as a part of the dev cycle but generally are an after thought. This is where the problem starts. 

- We shall be seeing what problems this
causes and talk about one very important
strategy that helps us immensely in getting
around this.
Shifting Left?
• Automated testing - what is it?
• Is Automated testing self sufficient?
• Build accessibility into your UI code
• Document features for teams
• Prevent regressions in quality from deploying to
production.
Automated testing is a great way to start weaving accessibility into your website, with the ultimate goal of shifting left more and more towards the UX and discovery
process

Its not fully self sufficient but it’s a valuable way to address easy wins and prevent basic fails. Free humans up for more complex tasks. determining whether an image is
an image of text or whether an image contains important text information.
How Much Does It Actually
Cost To Fix A Bug?
“ At first, the cost of fixing a bug at the requirements stage is nominal, when
everything is on the drawing board. But as the software moves along in its life
cycle the cost of fixing a bug increases radically. We start at 1 times when we
are at the initial development stage when a bug is no more than a change in
notion. But at the design stage, the relative cost is 5 times what it was
compared to the requirements stage, and then ten times what it was when it
becomes code and on this goes until it the relative cost of a bug fix is 150
times what it was originally. Source “
I am going to be quoting some folks who have actually sat down and calculated the cost of fixing a bug later in the Software Development LifeCycle.

http://extreme-accessibility.karlgroves-sandbox.com/
More coming -
Hidden costs !
• Bug triage meetings
• Stumbling over same known issues again and
again.
There is a lot of complication and layers when it comes to SDLC without shift left. We shall see in the next slide how a bad SDLC looks in terms of fixing bugs and you
shall see the costs associated with each of these bad steps.
Development
“Complete”
QA tests,
finds and
opens bug
Bug is
assigned by
QA manager
Developer
reviews bug
Developer
reproduces
bug
Developer
fixes bug
Bug assigned
back to QA
QA re-verifies
bug
QA confirms
bug fixed -
closes it
$60 $75
$91.25
$205
$188.75 $123.75
$250 $265
Graph Explaining Shift Left
L0, L1, L2 are levels of activities that happen one after the other and show the amount of time and cost that they incur without shift left.

By shifting left, these activities are moved to lower cost delivery channels, which optimizes costs and enables more expensive resources to focus on work that can’t be
performed by less skilled labor.

In addition to reducing costs, doing this properly has the benefits of reducing both the time and total effort associated with handling requests and dealing with issues—in
addition to improving both customer satisfaction and service quality.
Development
“Incomplete”
Alongside
development,
testing by
engineers
Bugs found dealt
with as a part of
original story
QA reviews
bug
Iteration over
fix and test
cycle
Developer
and QA sign
off together
Development
NOW
COMPLETE !
The right way to triage SDLC
Types Of Shift Left Testing
• Traditional Shift Left Testing
• Incremental Shift Left Testing
• Agile/DevOps Shift Left Testing
• Model-Based Shift Left Testing
https://en.wikipedia.org/wiki/Shift_left_testing
Statistics On Software
Defects
• 56% of all software defects emerge during the
requirement phase
• 27% in the design phase
• 7% during the development phase.
Critical to start testing way ahead in the Software Development Lifecycle.

Reference - https://www.bmc.com/blogs/what-is-shift-left-shift-left-testing-explained/
Automated Testing Options
• Deque’s aXe Integrations:
• Selenium java
• WebDriverJS
• React-axe
• Lighthouse (aXe + mobile readiness)
• Android Checks - Espresso
• Apple Accessibility Inspector
Grunt + HTML CodeSniffer: https://github.com/yargalot/grunt-accessibility 

AccessSniff https://github.com/yargalot/AccessSniff
What Is aXe?
•WorldSpace aXe (The Accessibility Engine) is
free, open-source JavaScript accessibility rules
library.
•It was developed to be fast and to return zero
false errors or duplicate results, and it is available
as a GitHub repository, browser plugin, or
framework integration.
Reference - https://www.deque.com/axe/
Axe integration with
selenium java
@Test(groups = { "AxeCore" }, dataProvider = "from-json")
public void axeCoreTest(WebDriver driver) throws Exception {
final String url = "http://fyvr.net/acme/content-bad.html";
driver.get(url);
JSONObject responseJSON = new AXE.Builder(driver,
scriptUrl).analyze();
JSONArray violations =
responseJSON.getJSONArray("violations");
if (violations.length() == 0) {
assertTrue("No violations found", true);
} else {
AXE.writeResults(fileName, responseJSON);
assertTrue(AXE.report(violations), false);
}
}
What is axe-webdriverjs?

An open source library that injects axe-core into Selenium Webdriver instances
DEMO
• VIDEO
Android Accessibility Testing
WHAT IS ESPRESSO?
• Espresso is a testing framework for Android to make it
easy to write reliable user interface tests.
• Google released the Espresso framework in Oct. 2013.
Since its 2.0 release Espresso is part of the Android
Support Repository.
• Espresso automatically synchronizes your test actions
with the user interface of your application.
The framework also ensures that your activity is started before the tests run. It also let the test wait until all observed background activities have finished.

It is intended to test a single application but can also be used to test across applications. If used for testing outside your application, you can only perform black box
testing, as you cannot access the classes outside of your application
Accessibility Test Framework for Android
• Consists of rules around accessibility to help
evaluate different applications.
• Any team using Espresso for Android
Automation can integrate this library easily
into their existing automation suite!
https://github.com/google/Accessibility-Test-Framework-for-Android
React’s Accessibility Code
Linter
• What is a code linter and why would I use it?
• How do I get the React accessibility linter into
my project?
• What are the different ways I can use the code
linter?
Going to cover these questions in the next slides

JavaScript, being a dynamic and loosely-typed language, is especially prone to developer error. Without the benefit of a compilation process, JavaScript code is typically
executed in order to find syntax or other errors. Linting tools like ESLint allow developers to discover problems with their JavaScript code without executing it.
What is a11y plugin?
• In the simplest terms, a utility which helps you
write accessible code.
• It’s a plugin to be used with ESLint
• Reports issues directly in your development
terminal.
• Can also be hooked to your build systems.
a very popular and well made JavaScript code linter which is supported by all the popular code editors of today.
Installation and Usage of
eslint a11y plugin
• Name - eslint-plugin-jsx-a11y
• Easy installation - npm install eslint --save-dev
• Easy usage - {
"plugins": [
"jsx-a11y"
]
}
• You can configure the rules you want too !
This avoids the overhead of the console bombarding with errors. We can limit it to showing us only the critical one’s and others can be warnings.
DEMO - React A11y Website
• REACT ACCESSIBLE DEVELOPMENT
Build Time Warnings
./src/AboutBad.js
Line 150: img elements must have an alt prop, either with
meaningful text, or an empty string for decorative images
Line 152: Invalid alt value for img. Use alt="" for
presentational images
Line 159: <input> elements with type="image" must have a text
alternative through the `alt`, `aria-label`, or `aria-labelledby`
prop
Line 177: img elements must have an alt prop, either with
meaningful text, or an empty string for decorative images
Line 179: Each area of an image map must have a text alternative
through the `alt`, `aria-label`, or `aria-labelledby` prop Anchors
must have content and the content must be accessible by a screen
reader
Line 198: Do not use <blink> elements as they can create visual
Testing Tools
• Six Accessibility Testing Tools for Your Toolbox -
1. WAVE
2. aXe
3. Tenon
4. a11yTools
5. tota11y
6. HTML_CodeSniffer
• Do check them out !
These are five of the accessibility testing tools that I like to use on a regular basis for accessibility testing and reporting. Each tool has some pros and cons and each has
certain accessibility issues they’re great at identifying.

1. WAVE browser extensions are much more powerful than the WAVE website because you won’t be able to use the online WAVE behind password protected websites
and sometimes the online version does not work on very complex websites. The WAVE extensions work behind a firewall, are faster to run tests, and handle complex
websites.

2. The most popular way aXe is used is likely via the Chrome and Firefox Extensions that provide a user interface for the accessibility errors output.

3. Tenon:

4. 	 a11y tools No Chrome or Firefox extension. -biggest con

5. 	 tota11y - Headings testing tool is awesome for testing incorrect heading levels and nesting or not starting page with an H1 element. but ARIA Landmarks testing
tool seems less useful than some others.

6. 	 pros - Iframe testing, Tests for duplicate ID attribute values.
Concluding notes
• Automation is key.
• Encourage use of keyboard testing as a tool.
• Incorporate linters to ease accessible
development.
• Shifting left to go the right way !
Key Takeaways
1. Identify and Plan Testing Lifecycle
2. Integrate Development and Project Management
Process with Testing
3. Define Quality Standards & Controls for all SDLC stages
4. Create Process and Operation driven test cases and
framework
5. Induce Developers to Code with Testability in Mind
6. Define Continuous Feedback Mechanism
Links for research
• https://24ways.org/2017/automating-your-accessibility-tests/
• https://24ways.org/2014/integrating-contrast-checks-in-your-web-workflow/
• https://www.24a11y.com/2017/reacts-accessibility-code-linter/
• https://www.24a11y.com/2017/accessibility-testing-tools-desktop-mobile-websites/
• https://www.24a11y.com/2017/build-cloud-hosted-accessibility-testing-windows-computer-
using-amazon-workspaces/
• https://www.24a11y.com/2017/writing-automated-tests-accessibility/
• https://www.npmjs.com/package/eslint-plugin-jsx-a11y
• https://www.deque.com/product/axe/
• https://www.cherwell.com/blog/want-to-shift-left-with-itsm-change-management
• http://extreme-accessibility.karlgroves-sandbox.com/
@sagarbb160

More Related Content

What's hot

[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
Applitools
 
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
Automated Testing – Web, Mobile, Desktop - Challenges and SuccessesAutomated Testing – Web, Mobile, Desktop - Challenges and Successes
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
Ted Drake
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
Sauce Labs
 
Real Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated TestingReal Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated Testing
Sauce Labs
 
Test Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaTest Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and Mocha
Salesforce Developers
 
Accessibility Testing Tools for Developers - Seattle Code Camp
Accessibility Testing Tools for Developers - Seattle Code CampAccessibility Testing Tools for Developers - Seattle Code Camp
Accessibility Testing Tools for Developers - Seattle Code Camp
gerardkcohen
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open Source
Perfecto by Perforce
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
Onur Baskirt
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
Applitools
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, Ukraine
Justin Ison
 
Web Application Testing with Selenium
Web Application Testing with Selenium Web Application Testing with Selenium
Web Application Testing with Selenium
Sargis Sargsyan
 
Selenium conference, 2016
Selenium conference, 2016Selenium conference, 2016
Selenium conference, 2016
Pooja Shah
 
Session on Testing Activities in Continuous Integration and Delivery as an Ex...
Session on Testing Activities in Continuous Integration and Delivery as an Ex...Session on Testing Activities in Continuous Integration and Delivery as an Ex...
Session on Testing Activities in Continuous Integration and Delivery as an Ex...
Agile Testing Alliance
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
Dominik Dary
 
Selenium + Specflow
Selenium + SpecflowSelenium + Specflow
Selenium + Specflow
cromwellryan
 
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
Applitools
 
What’s new in VS 2015 and ALM 2015
What’s new in VS 2015 and ALM 2015What’s new in VS 2015 and ALM 2015
What’s new in VS 2015 and ALM 2015
SSW
 
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan LippsMyth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Applitools
 
API Design Principles for Accelerated Development
API Design Principles for Accelerated DevelopmentAPI Design Principles for Accelerated Development
API Design Principles for Accelerated Development
Jonathan LeBlanc
 
Visual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for DevelopersVisual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for Developers
Steve Lange
 

What's hot (20)

[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
[Webinar] Continuous Testing Done Right: Test Automation at the World's Leadi...
 
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
Automated Testing – Web, Mobile, Desktop - Challenges and SuccessesAutomated Testing – Web, Mobile, Desktop - Challenges and Successes
Automated Testing – Web, Mobile, Desktop - Challenges and Successes
 
How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)How To Use Selenium Successfully (Java Edition)
How To Use Selenium Successfully (Java Edition)
 
Real Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated TestingReal Devices or Emulators: Wen to use What for Automated Testing
Real Devices or Emulators: Wen to use What for Automated Testing
 
Test Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and MochaTest Automation With Cucumber JVM, Selenium, and Mocha
Test Automation With Cucumber JVM, Selenium, and Mocha
 
Accessibility Testing Tools for Developers - Seattle Code Camp
Accessibility Testing Tools for Developers - Seattle Code CampAccessibility Testing Tools for Developers - Seattle Code Camp
Accessibility Testing Tools for Developers - Seattle Code Camp
 
Make the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open SourceMake the Shift from Manual to Automation with Open Source
Make the Shift from Manual to Automation with Open Source
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
 
How to Get Started with Cypress
How to Get Started with CypressHow to Get Started with Cypress
How to Get Started with Cypress
 
Selenium Camp 2016 - Kiev, Ukraine
Selenium Camp 2016 -  Kiev, UkraineSelenium Camp 2016 -  Kiev, Ukraine
Selenium Camp 2016 - Kiev, Ukraine
 
Web Application Testing with Selenium
Web Application Testing with Selenium Web Application Testing with Selenium
Web Application Testing with Selenium
 
Selenium conference, 2016
Selenium conference, 2016Selenium conference, 2016
Selenium conference, 2016
 
Session on Testing Activities in Continuous Integration and Delivery as an Ex...
Session on Testing Activities in Continuous Integration and Delivery as an Ex...Session on Testing Activities in Continuous Integration and Delivery as an Ex...
Session on Testing Activities in Continuous Integration and Delivery as an Ex...
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Selenium + Specflow
Selenium + SpecflowSelenium + Specflow
Selenium + Specflow
 
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
Modern Functional Test Automation Through Visual AI - webinar w/ Raja Rao
 
What’s new in VS 2015 and ALM 2015
What’s new in VS 2015 and ALM 2015What’s new in VS 2015 and ALM 2015
What’s new in VS 2015 and ALM 2015
 
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan LippsMyth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
 
API Design Principles for Accelerated Development
API Design Principles for Accelerated DevelopmentAPI Design Principles for Accelerated Development
API Design Principles for Accelerated Development
 
Visual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for DevelopersVisual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for Developers
 

Similar to Shift left-csun-sagar-barbhaya

4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-54&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
hemasubbu08
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Moataz Nabil
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Applitools
 
Learn Selenium - Online Guide
Learn Selenium - Online GuideLearn Selenium - Online Guide
Learn Selenium - Online Guide
bigspire
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
Sauce Labs
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
Abdullah al Mamun
 
Session on evaluation of DevSecOps
Session on evaluation of DevSecOpsSession on evaluation of DevSecOps
Session on evaluation of DevSecOps
Abdullah al Mamun
 
What is Selenium Introduction to Selenium Testing.pptx
What is Selenium Introduction to Selenium Testing.pptxWhat is Selenium Introduction to Selenium Testing.pptx
What is Selenium Introduction to Selenium Testing.pptx
Syntax Technologies
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
SUBHENDU KARMAKAR
 
Topic production code
Topic production codeTopic production code
Topic production code
Kavi Kumar
 
Software Testing Tools Training
Software Testing Tools TrainingSoftware Testing Tools Training
Software Testing Tools Training
QEdge Tech
 
DevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talkDevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talk
D Z
 
Automated Testing Using Selenium
Automated Testing Using SeleniumAutomated Testing Using Selenium
Automated Testing Using Selenium
TechWell
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
Amazon Web Services
 
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
Hugo Messer
 
DevOps Engineering.pptx
DevOps Engineering.pptxDevOps Engineering.pptx
DevOps Engineering.pptx
AbalBoot
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Matt Tesauro
 
Selenium ~ Uncommon but practical use cases
Selenium ~ Uncommon but practical use cases Selenium ~ Uncommon but practical use cases
Selenium ~ Uncommon but practical use cases
Bipin VK
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
Mohammed Moishin
 
Different phases of accessibility testing
Different phases of accessibility testingDifferent phases of accessibility testing
Different phases of accessibility testing
Poonam Tathavadkar
 

Similar to Shift left-csun-sagar-barbhaya (20)

4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-54&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
4&5.pptx SOFTWARE TESTING UNIT-4 AND UNIT-5
 
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
Build your QA Pipeline using Serenity , Selenium WebDriver , Rest Assured and...
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
 
Learn Selenium - Online Guide
Learn Selenium - Online GuideLearn Selenium - Online Guide
Learn Selenium - Online Guide
 
5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation5 Steps to Jump Start Your Test Automation
5 Steps to Jump Start Your Test Automation
 
DevOps Presentation.pptx
DevOps Presentation.pptxDevOps Presentation.pptx
DevOps Presentation.pptx
 
Session on evaluation of DevSecOps
Session on evaluation of DevSecOpsSession on evaluation of DevSecOps
Session on evaluation of DevSecOps
 
What is Selenium Introduction to Selenium Testing.pptx
What is Selenium Introduction to Selenium Testing.pptxWhat is Selenium Introduction to Selenium Testing.pptx
What is Selenium Introduction to Selenium Testing.pptx
 
DevOps Overview in my own words
DevOps Overview in my own wordsDevOps Overview in my own words
DevOps Overview in my own words
 
Topic production code
Topic production codeTopic production code
Topic production code
 
Software Testing Tools Training
Software Testing Tools TrainingSoftware Testing Tools Training
Software Testing Tools Training
 
DevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talkDevOps - Continuous Integration, Continuous Delivery - let's talk
DevOps - Continuous Integration, Continuous Delivery - let's talk
 
Automated Testing Using Selenium
Automated Testing Using SeleniumAutomated Testing Using Selenium
Automated Testing Using Selenium
 
Application Lifecycle Management
Application Lifecycle ManagementApplication Lifecycle Management
Application Lifecycle Management
 
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...Practical DevOps & Continuous Delivery –  A Webinar to learn in depth on DevO...
Practical DevOps & Continuous Delivery – A Webinar to learn in depth on DevO...
 
DevOps Engineering.pptx
DevOps Engineering.pptxDevOps Engineering.pptx
DevOps Engineering.pptx
 
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austinDev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
Dev ops ci-ap-is-oh-my_security-gone-agile_ut-austin
 
Selenium ~ Uncommon but practical use cases
Selenium ~ Uncommon but practical use cases Selenium ~ Uncommon but practical use cases
Selenium ~ Uncommon but practical use cases
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
 
Different phases of accessibility testing
Different phases of accessibility testingDifferent phases of accessibility testing
Different phases of accessibility testing
 

Recently uploaded

AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
Google
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 

Recently uploaded (20)

AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing SuiteAI Pilot Review: The World’s First Virtual Assistant Marketing Suite
AI Pilot Review: The World’s First Virtual Assistant Marketing Suite
 
Enhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdfEnhancing Research Orchestration Capabilities at ORNL.pdf
Enhancing Research Orchestration Capabilities at ORNL.pdf
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 

Shift left-csun-sagar-barbhaya

  • 1. Shift-Left Accessibility Sagar Barbhaya, Intuit Accessibility CSUN 2018 Twitter handle: @sagarbb160 Linkedin URL: https://www.linkedin.com/in/sagarbarbhaya/
  • 2. Key Factors • Software Development lifecycle • Large list of competing priorities when building for the web • Accessibility, performance, security - calls for automation - If we look at SDLC for any application, there are a lot of things that need to be taken care of as a part of the development. - Some of these include performance, security, accessibility. - These should ideally be handled as a part of the dev cycle but generally are an after thought. This is where the problem starts. - We shall be seeing what problems this causes and talk about one very important strategy that helps us immensely in getting around this.
  • 3. Shifting Left? • Automated testing - what is it? • Is Automated testing self sufficient? • Build accessibility into your UI code • Document features for teams • Prevent regressions in quality from deploying to production. Automated testing is a great way to start weaving accessibility into your website, with the ultimate goal of shifting left more and more towards the UX and discovery process Its not fully self sufficient but it’s a valuable way to address easy wins and prevent basic fails. Free humans up for more complex tasks. determining whether an image is an image of text or whether an image contains important text information.
  • 4. How Much Does It Actually Cost To Fix A Bug? “ At first, the cost of fixing a bug at the requirements stage is nominal, when everything is on the drawing board. But as the software moves along in its life cycle the cost of fixing a bug increases radically. We start at 1 times when we are at the initial development stage when a bug is no more than a change in notion. But at the design stage, the relative cost is 5 times what it was compared to the requirements stage, and then ten times what it was when it becomes code and on this goes until it the relative cost of a bug fix is 150 times what it was originally. Source “ I am going to be quoting some folks who have actually sat down and calculated the cost of fixing a bug later in the Software Development LifeCycle. http://extreme-accessibility.karlgroves-sandbox.com/
  • 5. More coming - Hidden costs ! • Bug triage meetings • Stumbling over same known issues again and again. There is a lot of complication and layers when it comes to SDLC without shift left. We shall see in the next slide how a bad SDLC looks in terms of fixing bugs and you shall see the costs associated with each of these bad steps.
  • 6. Development “Complete” QA tests, finds and opens bug Bug is assigned by QA manager Developer reviews bug Developer reproduces bug Developer fixes bug Bug assigned back to QA QA re-verifies bug QA confirms bug fixed - closes it $60 $75 $91.25 $205 $188.75 $123.75 $250 $265
  • 7. Graph Explaining Shift Left L0, L1, L2 are levels of activities that happen one after the other and show the amount of time and cost that they incur without shift left. By shifting left, these activities are moved to lower cost delivery channels, which optimizes costs and enables more expensive resources to focus on work that can’t be performed by less skilled labor. In addition to reducing costs, doing this properly has the benefits of reducing both the time and total effort associated with handling requests and dealing with issues—in addition to improving both customer satisfaction and service quality.
  • 8. Development “Incomplete” Alongside development, testing by engineers Bugs found dealt with as a part of original story QA reviews bug Iteration over fix and test cycle Developer and QA sign off together Development NOW COMPLETE ! The right way to triage SDLC
  • 9. Types Of Shift Left Testing • Traditional Shift Left Testing • Incremental Shift Left Testing • Agile/DevOps Shift Left Testing • Model-Based Shift Left Testing https://en.wikipedia.org/wiki/Shift_left_testing
  • 10. Statistics On Software Defects • 56% of all software defects emerge during the requirement phase • 27% in the design phase • 7% during the development phase. Critical to start testing way ahead in the Software Development Lifecycle. Reference - https://www.bmc.com/blogs/what-is-shift-left-shift-left-testing-explained/
  • 11.
  • 12. Automated Testing Options • Deque’s aXe Integrations: • Selenium java • WebDriverJS • React-axe • Lighthouse (aXe + mobile readiness) • Android Checks - Espresso • Apple Accessibility Inspector Grunt + HTML CodeSniffer: https://github.com/yargalot/grunt-accessibility AccessSniff https://github.com/yargalot/AccessSniff
  • 13. What Is aXe? •WorldSpace aXe (The Accessibility Engine) is free, open-source JavaScript accessibility rules library. •It was developed to be fast and to return zero false errors or duplicate results, and it is available as a GitHub repository, browser plugin, or framework integration. Reference - https://www.deque.com/axe/
  • 14. Axe integration with selenium java @Test(groups = { "AxeCore" }, dataProvider = "from-json") public void axeCoreTest(WebDriver driver) throws Exception { final String url = "http://fyvr.net/acme/content-bad.html"; driver.get(url); JSONObject responseJSON = new AXE.Builder(driver, scriptUrl).analyze(); JSONArray violations = responseJSON.getJSONArray("violations"); if (violations.length() == 0) { assertTrue("No violations found", true); } else { AXE.writeResults(fileName, responseJSON); assertTrue(AXE.report(violations), false); } } What is axe-webdriverjs? An open source library that injects axe-core into Selenium Webdriver instances
  • 16. Android Accessibility Testing WHAT IS ESPRESSO? • Espresso is a testing framework for Android to make it easy to write reliable user interface tests. • Google released the Espresso framework in Oct. 2013. Since its 2.0 release Espresso is part of the Android Support Repository. • Espresso automatically synchronizes your test actions with the user interface of your application. The framework also ensures that your activity is started before the tests run. It also let the test wait until all observed background activities have finished. It is intended to test a single application but can also be used to test across applications. If used for testing outside your application, you can only perform black box testing, as you cannot access the classes outside of your application
  • 17. Accessibility Test Framework for Android • Consists of rules around accessibility to help evaluate different applications. • Any team using Espresso for Android Automation can integrate this library easily into their existing automation suite! https://github.com/google/Accessibility-Test-Framework-for-Android
  • 18. React’s Accessibility Code Linter • What is a code linter and why would I use it? • How do I get the React accessibility linter into my project? • What are the different ways I can use the code linter? Going to cover these questions in the next slides JavaScript, being a dynamic and loosely-typed language, is especially prone to developer error. Without the benefit of a compilation process, JavaScript code is typically executed in order to find syntax or other errors. Linting tools like ESLint allow developers to discover problems with their JavaScript code without executing it.
  • 19. What is a11y plugin? • In the simplest terms, a utility which helps you write accessible code. • It’s a plugin to be used with ESLint • Reports issues directly in your development terminal. • Can also be hooked to your build systems. a very popular and well made JavaScript code linter which is supported by all the popular code editors of today.
  • 20. Installation and Usage of eslint a11y plugin • Name - eslint-plugin-jsx-a11y • Easy installation - npm install eslint --save-dev • Easy usage - { "plugins": [ "jsx-a11y" ] } • You can configure the rules you want too ! This avoids the overhead of the console bombarding with errors. We can limit it to showing us only the critical one’s and others can be warnings.
  • 21. DEMO - React A11y Website • REACT ACCESSIBLE DEVELOPMENT
  • 22. Build Time Warnings ./src/AboutBad.js Line 150: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images Line 152: Invalid alt value for img. Use alt="" for presentational images Line 159: <input> elements with type="image" must have a text alternative through the `alt`, `aria-label`, or `aria-labelledby` prop Line 177: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images Line 179: Each area of an image map must have a text alternative through the `alt`, `aria-label`, or `aria-labelledby` prop Anchors must have content and the content must be accessible by a screen reader Line 198: Do not use <blink> elements as they can create visual
  • 23. Testing Tools • Six Accessibility Testing Tools for Your Toolbox - 1. WAVE 2. aXe 3. Tenon 4. a11yTools 5. tota11y 6. HTML_CodeSniffer • Do check them out ! These are five of the accessibility testing tools that I like to use on a regular basis for accessibility testing and reporting. Each tool has some pros and cons and each has certain accessibility issues they’re great at identifying. 1. WAVE browser extensions are much more powerful than the WAVE website because you won’t be able to use the online WAVE behind password protected websites and sometimes the online version does not work on very complex websites. The WAVE extensions work behind a firewall, are faster to run tests, and handle complex websites. 2. The most popular way aXe is used is likely via the Chrome and Firefox Extensions that provide a user interface for the accessibility errors output. 3. Tenon: 4. a11y tools No Chrome or Firefox extension. -biggest con 5. tota11y - Headings testing tool is awesome for testing incorrect heading levels and nesting or not starting page with an H1 element. but ARIA Landmarks testing tool seems less useful than some others. 6. pros - Iframe testing, Tests for duplicate ID attribute values.
  • 24. Concluding notes • Automation is key. • Encourage use of keyboard testing as a tool. • Incorporate linters to ease accessible development. • Shifting left to go the right way !
  • 25. Key Takeaways 1. Identify and Plan Testing Lifecycle 2. Integrate Development and Project Management Process with Testing 3. Define Quality Standards & Controls for all SDLC stages 4. Create Process and Operation driven test cases and framework 5. Induce Developers to Code with Testability in Mind 6. Define Continuous Feedback Mechanism
  • 26. Links for research • https://24ways.org/2017/automating-your-accessibility-tests/ • https://24ways.org/2014/integrating-contrast-checks-in-your-web-workflow/ • https://www.24a11y.com/2017/reacts-accessibility-code-linter/ • https://www.24a11y.com/2017/accessibility-testing-tools-desktop-mobile-websites/ • https://www.24a11y.com/2017/build-cloud-hosted-accessibility-testing-windows-computer- using-amazon-workspaces/ • https://www.24a11y.com/2017/writing-automated-tests-accessibility/ • https://www.npmjs.com/package/eslint-plugin-jsx-a11y • https://www.deque.com/product/axe/ • https://www.cherwell.com/blog/want-to-shift-left-with-itsm-change-management • http://extreme-accessibility.karlgroves-sandbox.com/