Automating Screenshot Testing Component Library

Applitools
ApplitoolsMarketing Director à Applitools
C1 Public
Automating screenshot
testing in a component
library
David Lindley & Ben Hudson
C1 Public
3
• Software Engineering Manager at Vodafone
• Been in web development for 9 years
• Wear many hats 🎩 🧢 👒
– Technical Product Owner for Source Web
• Enjoy walking, video games and playing guitar
David Lindley | Who am I?
• Senior Software Engineer
• Been in web development for 13 years
• Been developing in the Source Web team since its
inception
• If I’m not working, I’m on the golf course or spending
time with my family
Ben Hudson | Who am I?
C1 Public
4
What are we talking about today?
What is Source Web?
Auto generations of tests
Vodafone Engineering
Enter Applitools
C2 General
Bringing together 12 teams into ONE to:
Leverage the Scale of a European Technology Team to
drive Business Agility.
Achieve maximum possible re-use while accelerating
market maturity and outcomes
Distributing Digital Engineering capabilities across
markets, while maintaining a strong Global Connection.
We’re part of
something
much bigger
C1 Public
6
Source Web | What is it?
500 unique developers
within Vodafone consume the library
>70000 unique
downloads of the library
6 markets/sub-brands using it for
customer facing applications
220 components
split into atomic design principals
C1 Public
7
Testing
Components
Doc Site
Package Management
Tooling CICD
Source Web | Tech stack
C1 Public
8
Source Web | Welcome Applitools
On boarding Applitools allowed us to do visual regression testing
8
>220
components
3
themes
10
variations
6600 screenshots
Not including breakpoint changes
=
x
x
Per component on average
No integration for Styleguidist
C1 Public
9
Source Web | Styleguidist Vs StoryBook
React Styleguidist
Allows complete customization of the look and feel
Can be used as a shop window for the components
Our users are: Software Engineers, Product Owners, Business Owners, UXers, Testers
Storybook
Simple setup
Lots of integration
C1 Public
10
Source Web | Problem with visual regression testing
How to create visual tests of all components without burning through developer effort?
10
10
>220
components
3
themes
10
variations
6600 screenshots
Not including breakpoint changes
=
x
x
Per component on average
C1 Public
27 September 2022
11
MyComponent1.tsx
MyComponent1.md
MyComponent2.tsx
MyComponent2.md
MyComponent3.tsx
MyComponent1.md
MyComponent1
Examples
MyComponent2
Examples
MyComponent3
Examples
C1 Public
27 September 2022
12
MyComponent1.tsx
MyComponent1.md
MyComponent1 cypress test
Applitools visual test
Using the MD files as our starting
point we could parse them to auto
generate cypress tests
C1 Public
13
Source Web | WebinarCard
Company logo
Title
Sub Title
Presenters picture and name
Favourite
C1 Public
27 September 2022
14
Now we have our starting point – our
MD file. We need to think more about
getting the logic in to auto generate
the cypress tests.
Find all MD files
Read MD file
Find corresponding component
Split MD file by example
Inject into template
For
each
MD
file
Write to file
Auto generated Cypress tests
C1 Public
27 September 2022
15
C1 Public
16
Source Web | Wrapping up
How to create visual tests of all
components without burning through
developer effort?
Use a level of automation to solve problems!
C1 Public
17
Source Web | Future improvements
Automated
screenshot tests
Automated
accessibility tests
Automated
performance tests
visualtests.ejs accessibility.ejs performance.ejs
Thank you.
C1 Public
David Lindley
Software Engineering
Manager, Vodafone UK
Questions?
Ben Hudson
Senior Software Engineer,
Vodafone UK
C1 Public
Get in Touch
Request a Demo
David Lindley
Software Engineering
Manager, Vodafone UK
Ben Hudson
Senior Software Engineer,
Vodafone UK
C1 Public
Visual Testing Learning Path
C1 Public
Visual Testing Learning Path
C1 Public
23
1 sur 23

Recommandé

Ibm worklight - going from xpages mobile to native mobile applications par
Ibm worklight - going from xpages mobile to native mobile applicationsIbm worklight - going from xpages mobile to native mobile applications
Ibm worklight - going from xpages mobile to native mobile applicationsMark Roden
5.3K vues46 diapositives
IBM Impact session 1654-how to move an existing cics application to a smartphone par
IBM Impact session 1654-how to move an existing cics application to a smartphoneIBM Impact session 1654-how to move an existing cics application to a smartphone
IBM Impact session 1654-how to move an existing cics application to a smartphonenick_garrod
1.1K vues42 diapositives
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe... par
Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...Applying DevOps, PaaS and cloud for better citizen service  outcomes - IBM Fe...
Applying DevOps, PaaS and cloud for better citizen service outcomes - IBM Fe...Sanjeev Sharma
2.3K vues17 diapositives
Bluemix summary par
Bluemix summaryBluemix summary
Bluemix summarySam Garforth
1.9K vues14 diapositives
What's New in IBM Cognos BI Version 10.2.1.1, Plus New Product Previews par
What's New in IBM Cognos BI Version 10.2.1.1, Plus New Product PreviewsWhat's New in IBM Cognos BI Version 10.2.1.1, Plus New Product Previews
What's New in IBM Cognos BI Version 10.2.1.1, Plus New Product PreviewsSenturus
2.9K vues47 diapositives
ConnectED2015: IBM Domino Applications in Bluemix par
ConnectED2015: 	IBM Domino Applications in BluemixConnectED2015: 	IBM Domino Applications in Bluemix
ConnectED2015: IBM Domino Applications in BluemixMartin Donnelly
4.8K vues36 diapositives

Contenu connexe

Similaire à Automating Screenshot Testing Component Library

The new developer experience par
The new developer experienceThe new developer experience
The new developer experienceEric Cattoir
716 vues40 diapositives
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ... par
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Kiko Monteverde
2.4K vues25 diapositives
Process Improvement in Distributed Software Development Using Eclipse with Me... par
Process Improvement in Distributed Software Development Using Eclipse with Me...Process Improvement in Distributed Software Development Using Eclipse with Me...
Process Improvement in Distributed Software Development Using Eclipse with Me...Intland Software GmbH
1.1K vues18 diapositives
Applying lean, dev ops, and cloud for better business outcomes par
Applying lean, dev ops, and cloud for better business outcomesApplying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomesKartik Kanakasabesan
768 vues16 diapositives
codeBeamer Eclipse DemoCamp-23.11.2010 par
codeBeamer Eclipse DemoCamp-23.11.2010codeBeamer Eclipse DemoCamp-23.11.2010
codeBeamer Eclipse DemoCamp-23.11.2010Intland Software GmbH
250 vues12 diapositives
The Evolution of Industrial Visualization par
The Evolution of Industrial VisualizationThe Evolution of Industrial Visualization
The Evolution of Industrial VisualizationInductive Automation
323 vues43 diapositives

Similaire à Automating Screenshot Testing Component Library(20)

The new developer experience par Eric Cattoir
The new developer experienceThe new developer experience
The new developer experience
Eric Cattoir716 vues
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ... par Kiko Monteverde
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Plastic SCM: Entreprise Version Control Platform for Modern Applications and ...
Kiko Monteverde2.4K vues
Process Improvement in Distributed Software Development Using Eclipse with Me... par Intland Software GmbH
Process Improvement in Distributed Software Development Using Eclipse with Me...Process Improvement in Distributed Software Development Using Eclipse with Me...
Process Improvement in Distributed Software Development Using Eclipse with Me...
Applying lean, dev ops, and cloud for better business outcomes par Kartik Kanakasabesan
Applying lean, dev ops, and cloud for better business outcomesApplying lean, dev ops, and cloud for better business outcomes
Applying lean, dev ops, and cloud for better business outcomes
Software Factories in the Real World: How an IBM WebSphere Integration Factor... par ghodgkinson
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
ghodgkinson577 vues
How NBCUniversal Adopted DevOps par Sanjeev Sharma
How NBCUniversal Adopted DevOpsHow NBCUniversal Adopted DevOps
How NBCUniversal Adopted DevOps
Sanjeev Sharma2.8K vues
Worklight mobile v6 par GameStop
Worklight mobile v6 Worklight mobile v6
Worklight mobile v6
GameStop4.2K vues
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks par Sanjeev Sharma
CampDevOps keynote - DevOps: Using 'Lean' to eliminate BottlenecksCampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
CampDevOps keynote - DevOps: Using 'Lean' to eliminate Bottlenecks
Sanjeev Sharma4.2K vues
Webinar VB6 apps to html5 par Gizmox
Webinar VB6 apps to html5Webinar VB6 apps to html5
Webinar VB6 apps to html5
Gizmox1.5K vues
Make your TechComm online/offline available par Georg Eck
Make your TechComm online/offline availableMake your TechComm online/offline available
Make your TechComm online/offline available
Georg Eck378 vues
Crossing the low-code and pro-code chasm: a platform approach par Asanka Abeysinghe
Crossing the low-code and pro-code chasm: a platform approachCrossing the low-code and pro-code chasm: a platform approach
Crossing the low-code and pro-code chasm: a platform approach
INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform... par apidays
INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...INTERFACE, by apidays  - Crossing the low-code and pro-code chasm: a platform...
INTERFACE, by apidays - Crossing the low-code and pro-code chasm: a platform...
apidays123 vues

Plus de Applitools

The Future of AI-Based Test Automation par
The Future of AI-Based Test AutomationThe Future of AI-Based Test Automation
The Future of AI-Based Test AutomationApplitools
122 vues39 diapositives
Test Automation at Scale: Lessons from Top-Performing Distributed Teams par
Test Automation at Scale: Lessons from Top-Performing Distributed TeamsTest Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed TeamsApplitools
13 vues6 diapositives
Triple Assurance: AI-Powered Test Automation in UI Design and Functionality par
Triple Assurance: AI-Powered Test Automation in UI Design and FunctionalityTriple Assurance: AI-Powered Test Automation in UI Design and Functionality
Triple Assurance: AI-Powered Test Automation in UI Design and FunctionalityApplitools
52 vues17 diapositives
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams par
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing TeamsNavigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing TeamsApplitools
32 vues4 diapositives
Introducing the Applitools Self Healing Execution Cloud.pdf par
Introducing the Applitools Self Healing Execution Cloud.pdfIntroducing the Applitools Self Healing Execution Cloud.pdf
Introducing the Applitools Self Healing Execution Cloud.pdfApplitools
102 vues30 diapositives
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap... par
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Applitools
1.7K vues114 diapositives

Plus de Applitools(20)

The Future of AI-Based Test Automation par Applitools
The Future of AI-Based Test AutomationThe Future of AI-Based Test Automation
The Future of AI-Based Test Automation
Applitools122 vues
Test Automation at Scale: Lessons from Top-Performing Distributed Teams par Applitools
Test Automation at Scale: Lessons from Top-Performing Distributed TeamsTest Automation at Scale: Lessons from Top-Performing Distributed Teams
Test Automation at Scale: Lessons from Top-Performing Distributed Teams
Applitools13 vues
Triple Assurance: AI-Powered Test Automation in UI Design and Functionality par Applitools
Triple Assurance: AI-Powered Test Automation in UI Design and FunctionalityTriple Assurance: AI-Powered Test Automation in UI Design and Functionality
Triple Assurance: AI-Powered Test Automation in UI Design and Functionality
Applitools52 vues
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams par Applitools
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing TeamsNavigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Navigating the Challenges of Testing at Scale: Lessons from Top-Performing Teams
Applitools32 vues
Introducing the Applitools Self Healing Execution Cloud.pdf par Applitools
Introducing the Applitools Self Healing Execution Cloud.pdfIntroducing the Applitools Self Healing Execution Cloud.pdf
Introducing the Applitools Self Healing Execution Cloud.pdf
Applitools102 vues
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap... par Applitools
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Applitools1.7K vues
Collaborating From Design To Experience: Introducing Centra par Applitools
Collaborating From Design To Experience: Introducing CentraCollaborating From Design To Experience: Introducing Centra
Collaborating From Design To Experience: Introducing Centra
Applitools353 vues
What the QA Position Will Look Like in the Future par Applitools
What the QA Position Will Look Like in the FutureWhat the QA Position Will Look Like in the Future
What the QA Position Will Look Like in the Future
Applitools213 vues
Getting Started with Visual Testing par Applitools
Getting Started with Visual TestingGetting Started with Visual Testing
Getting Started with Visual Testing
Applitools275 vues
Workshop: Head-to-Head Web Testing: Part 1 with Cypress par Applitools
Workshop: Head-to-Head Web Testing: Part 1 with CypressWorkshop: Head-to-Head Web Testing: Part 1 with Cypress
Workshop: Head-to-Head Web Testing: Part 1 with Cypress
Applitools677 vues
From Washing Cars To Automating Test Applications par Applitools
From Washing Cars To Automating Test ApplicationsFrom Washing Cars To Automating Test Applications
From Washing Cars To Automating Test Applications
Applitools75 vues
A Holistic Approach to Testing in Continuous Delivery par Applitools
A Holistic Approach to Testing in Continuous DeliveryA Holistic Approach to Testing in Continuous Delivery
A Holistic Approach to Testing in Continuous Delivery
Applitools270 vues
AI-Powered-Cross-Browser Testing par Applitools
AI-Powered-Cross-Browser TestingAI-Powered-Cross-Browser Testing
AI-Powered-Cross-Browser Testing
Applitools207 vues
Workshop: An Introduction to API Automation with Javascript par Applitools
Workshop: An Introduction to API Automation with JavascriptWorkshop: An Introduction to API Automation with Javascript
Workshop: An Introduction to API Automation with Javascript
Applitools246 vues
The Role of Automation in Mobile Continuous Testing par Applitools
The Role of Automation in Mobile Continuous TestingThe Role of Automation in Mobile Continuous Testing
The Role of Automation in Mobile Continuous Testing
Applitools161 vues
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present... par Applitools
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Applitools55.5K vues
Future-Proofing Your Automation Pipeline par Applitools
Future-Proofing Your Automation PipelineFuture-Proofing Your Automation Pipeline
Future-Proofing Your Automation Pipeline
Applitools1.2K vues
How to Leverage AI to Enhance UI Testing par Applitools
How to Leverage AI to Enhance UI TestingHow to Leverage AI to Enhance UI Testing
How to Leverage AI to Enhance UI Testing
Applitools760 vues
Cypress, Playwright, Selenium, or WebdriverIO? Let the Engineers Speak! par Applitools
Cypress, Playwright, Selenium, or WebdriverIO? Let the Engineers Speak!Cypress, Playwright, Selenium, or WebdriverIO? Let the Engineers Speak!
Cypress, Playwright, Selenium, or WebdriverIO? Let the Engineers Speak!
Applitools4.9K vues
Ensuring Reliable Digital Experience - eCommerceTesting.pdf par Applitools
Ensuring Reliable Digital Experience - eCommerceTesting.pdfEnsuring Reliable Digital Experience - eCommerceTesting.pdf
Ensuring Reliable Digital Experience - eCommerceTesting.pdf
Applitools1.1K vues

Dernier

Top-5-production-devconMunich-2023-v2.pptx par
Top-5-production-devconMunich-2023-v2.pptxTop-5-production-devconMunich-2023-v2.pptx
Top-5-production-devconMunich-2023-v2.pptxTier1 app
9 vues42 diapositives
Introduction to Maven par
Introduction to MavenIntroduction to Maven
Introduction to MavenJohn Valentino
7 vues10 diapositives
Advanced API Mocking Techniques Using Wiremock par
Advanced API Mocking Techniques Using WiremockAdvanced API Mocking Techniques Using Wiremock
Advanced API Mocking Techniques Using WiremockDimpy Adhikary
5 vues11 diapositives
Flask-Python par
Flask-PythonFlask-Python
Flask-PythonTriloki Gupta
10 vues12 diapositives
FOSSLight Community Day 2023-11-30 par
FOSSLight Community Day 2023-11-30FOSSLight Community Day 2023-11-30
FOSSLight Community Day 2023-11-30Shane Coughlan
8 vues18 diapositives
JioEngage_Presentation.pptx par
JioEngage_Presentation.pptxJioEngage_Presentation.pptx
JioEngage_Presentation.pptxadmin125455
9 vues4 diapositives

Dernier(20)

Top-5-production-devconMunich-2023-v2.pptx par Tier1 app
Top-5-production-devconMunich-2023-v2.pptxTop-5-production-devconMunich-2023-v2.pptx
Top-5-production-devconMunich-2023-v2.pptx
Tier1 app9 vues
Advanced API Mocking Techniques Using Wiremock par Dimpy Adhikary
Advanced API Mocking Techniques Using WiremockAdvanced API Mocking Techniques Using Wiremock
Advanced API Mocking Techniques Using Wiremock
JioEngage_Presentation.pptx par admin125455
JioEngage_Presentation.pptxJioEngage_Presentation.pptx
JioEngage_Presentation.pptx
admin1254559 vues
Automated Testing of Microsoft Power BI Reports par RTTS
Automated Testing of Microsoft Power BI ReportsAutomated Testing of Microsoft Power BI Reports
Automated Testing of Microsoft Power BI Reports
RTTS11 vues
Bootstrapping vs Venture Capital.pptx par Zeljko Svedic
Bootstrapping vs Venture Capital.pptxBootstrapping vs Venture Capital.pptx
Bootstrapping vs Venture Capital.pptx
Zeljko Svedic16 vues
Streamlining Your Business Operations with Enterprise Application Integration... par Flexsin
Streamlining Your Business Operations with Enterprise Application Integration...Streamlining Your Business Operations with Enterprise Application Integration...
Streamlining Your Business Operations with Enterprise Application Integration...
Flexsin 5 vues
Transport Management System - Shipment & Container Tracking par Freightoscope
Transport Management System - Shipment & Container TrackingTransport Management System - Shipment & Container Tracking
Transport Management System - Shipment & Container Tracking
Dapr Unleashed: Accelerating Microservice Development par Miroslav Janeski
Dapr Unleashed: Accelerating Microservice DevelopmentDapr Unleashed: Accelerating Microservice Development
Dapr Unleashed: Accelerating Microservice Development
Ports-and-Adapters Architecture for Embedded HMI par Burkhard Stubert
Ports-and-Adapters Architecture for Embedded HMIPorts-and-Adapters Architecture for Embedded HMI
Ports-and-Adapters Architecture for Embedded HMI
aATP - New Correlation Confirmation Feature.pptx par EsatEsenek1
aATP - New Correlation Confirmation Feature.pptxaATP - New Correlation Confirmation Feature.pptx
aATP - New Correlation Confirmation Feature.pptx
EsatEsenek1222 vues

Automating Screenshot Testing Component Library

  • 2. Automating screenshot testing in a component library David Lindley & Ben Hudson
  • 3. C1 Public 3 • Software Engineering Manager at Vodafone • Been in web development for 9 years • Wear many hats 🎩 🧢 👒 – Technical Product Owner for Source Web • Enjoy walking, video games and playing guitar David Lindley | Who am I? • Senior Software Engineer • Been in web development for 13 years • Been developing in the Source Web team since its inception • If I’m not working, I’m on the golf course or spending time with my family Ben Hudson | Who am I?
  • 4. C1 Public 4 What are we talking about today? What is Source Web? Auto generations of tests Vodafone Engineering Enter Applitools
  • 5. C2 General Bringing together 12 teams into ONE to: Leverage the Scale of a European Technology Team to drive Business Agility. Achieve maximum possible re-use while accelerating market maturity and outcomes Distributing Digital Engineering capabilities across markets, while maintaining a strong Global Connection. We’re part of something much bigger
  • 6. C1 Public 6 Source Web | What is it? 500 unique developers within Vodafone consume the library >70000 unique downloads of the library 6 markets/sub-brands using it for customer facing applications 220 components split into atomic design principals
  • 7. C1 Public 7 Testing Components Doc Site Package Management Tooling CICD Source Web | Tech stack
  • 8. C1 Public 8 Source Web | Welcome Applitools On boarding Applitools allowed us to do visual regression testing 8 >220 components 3 themes 10 variations 6600 screenshots Not including breakpoint changes = x x Per component on average No integration for Styleguidist
  • 9. C1 Public 9 Source Web | Styleguidist Vs StoryBook React Styleguidist Allows complete customization of the look and feel Can be used as a shop window for the components Our users are: Software Engineers, Product Owners, Business Owners, UXers, Testers Storybook Simple setup Lots of integration
  • 10. C1 Public 10 Source Web | Problem with visual regression testing How to create visual tests of all components without burning through developer effort? 10 10 >220 components 3 themes 10 variations 6600 screenshots Not including breakpoint changes = x x Per component on average
  • 11. C1 Public 27 September 2022 11 MyComponent1.tsx MyComponent1.md MyComponent2.tsx MyComponent2.md MyComponent3.tsx MyComponent1.md MyComponent1 Examples MyComponent2 Examples MyComponent3 Examples
  • 12. C1 Public 27 September 2022 12 MyComponent1.tsx MyComponent1.md MyComponent1 cypress test Applitools visual test Using the MD files as our starting point we could parse them to auto generate cypress tests
  • 13. C1 Public 13 Source Web | WebinarCard Company logo Title Sub Title Presenters picture and name Favourite
  • 14. C1 Public 27 September 2022 14 Now we have our starting point – our MD file. We need to think more about getting the logic in to auto generate the cypress tests. Find all MD files Read MD file Find corresponding component Split MD file by example Inject into template For each MD file Write to file Auto generated Cypress tests
  • 16. C1 Public 16 Source Web | Wrapping up How to create visual tests of all components without burning through developer effort? Use a level of automation to solve problems!
  • 17. C1 Public 17 Source Web | Future improvements Automated screenshot tests Automated accessibility tests Automated performance tests visualtests.ejs accessibility.ejs performance.ejs
  • 19. C1 Public David Lindley Software Engineering Manager, Vodafone UK Questions? Ben Hudson Senior Software Engineer, Vodafone UK
  • 20. C1 Public Get in Touch Request a Demo David Lindley Software Engineering Manager, Vodafone UK Ben Hudson Senior Software Engineer, Vodafone UK
  • 21. C1 Public Visual Testing Learning Path
  • 22. C1 Public Visual Testing Learning Path