SlideShare a Scribd company logo
1 of 40
INDEPENDENT ADOBE SPECIALISTS
About Me
Max Barrass
0410 533 731
max.barrass@anchora.com.au
Adobe
Technology
Leadership
● Practicing Architect - architecture and development
○ https://www.linkedin.com/in/maxbarrass/
○ Certified AEM Dev, DevOps and Architect.
○ 16 AEM projects, AU/HK/NZ
● Blogs
○ https://aem.design/
○ https://maxbarrass.com/
● Code
○ https://github.com/wildone
○ https://github.com/paulrohrbeck/aem-links
● This Presentation
○ More info in Workshop 1
○ Try it out Source
○ Reviewers: Igor Arkhipov
Shift-Left Automation Testing
for AEM
How to establish ways of
working that allows shifting-
left of the automation testing
effort?
Agenda ● Terminology Recap
● Quality Recap
● Testing Meets Software World
● What is testing end-game?
Terminology Recap
Terminology Recap
● Ways of working - is a social process with an aim to achieve value
● Automation Testing - is an automation of an otherwise manual process.
● Shift-Left - is process of moving quality assurance activities earlier in the ways of working process
● Good Automated Feedback Practices - good ones that don’t make you cry…
● AEM Platform - AEM is part of an ecosystem with interlinked features…
Terminology Questions!
● Why Automate?
○ Your application will grow, you will not have enough hands
○ You are blocked by development
○ Hidden factory costs of bug-fix cycle
● Why Shift-Left?
○ More people to negate massive inspections
○ Define measurable success early, work on good parts.
○ Reduce occurrence of defects
● What is this got to do with Ways of working?
○ Unlock capacity
○ Make people smile
Quality Recap
Engineering Testing
● William Edwards Deming
○ Engineer testing activities into ways of working.
■ Cooperation and continual improvement for individual and organisation.
■ All mistakes are opportunities.
● Joseph Juran
○ Trilogy: Quality by Design, Quality Control, Quality Improvement
○ Pareto Principle (80/20)
● Edward Feigenbaum
○ Hidden Factory, focus on good pieces, bad work hidden in day-to-day
● Genichi Taguchi
○ Shift-Left - Push quality and reliability to planning stage to avoid defects
Read: https://www.juran.com/blog/the-history-of-quality/
Quality Governance
Planning
Control
Improvement
Quality Principles
1. Create Constancy of Purpose
2. Adopt the New Philosophy
3. Cease Dependence on Mass Inspection
4. End the Practice of Awarding Business on Price Tag Alone
5. Improve Constantly and Forever the System of Production and Service
6. Institute Training and Retraining
7. Institute Leadership
8. Drive Out Fear
9. Break Down Barriers Between Staff Areas
10. Eliminate Slogans, Exhortations, and Targets for the Workforce
11. Eliminate Numerical Goals
12. Remove Barriers to Pride of Workmanship
13. Institute a Vigorous Program of Education and Self-Improvement
14. Take Action to Accomplish the Transformation
Quality is
● Is not
○ a Department
○ extra cost
○ a final oversight or a massive inspection
○ someone else’s job
● Is
○ Everyone’s responsibility
○ Build into the ways of working
○ Everyone’s job
Testing meets
Software World
Life without Testing
● A feature (A) translated into Requirements (RA)
● Requirements (RA) get translated into Code (B)
● Code (B) is released
Life with Testing
● A feature (A) translated into Requirements (RA)
● Requirements (RA) get translated into Code (B)
● Test if Requirements (RA) equal Code (B)
● Code (B) is released
Typical Ways of Working
1
4
7
3
6
2
5 Feature Slide
Typical Process Feelings
Design Build
Test
Design
Showcase UAT Release
What’s the testing
end-game?
Testing Role Transition
Shift-Left Optimisation
Agree on
requirements
(sprint planning)
Agree on
Acceptance tests
(3 amigos)
Incorporate tests into
the dev process
(automation, dev/qa
collaboration)
Explore what can
be improved further
(exploratory
testing)
● How to establish ways of working that allow shifting-left of the automation testing effort?
○ Agree on requirements (sprint planning, structured)
○ Agree on acceptance tests (before work, 3 amigos, PO, Dev and Test)
○ Incorporate tests into dev process (after work, 3 amigos, automation review)
○ Explore what can be improved further (exploratory testing, requirements, acceptance tests)
Shift-Left Impact
● A feature (A) translated into Requirements (RA)
○ Test if Requirements (RA) can be Code (B)
● Requirements (RA) get translated into Code (B)
○ Test if Requirements (RA) equal Code (B)
● Code (B) is released
○ Test if Requirements (RA) is Code (B)
How to do this with AEM?
● Agree on Design Language System (DLS) that everyone speaks (not just designers)
● Agree on AEM Component Catalog that everyone speaks about and DLS is made for
● Agree on Requirements Convention
○ Create a blueprint/template to document each component and unique experience (page)
■ Component, Acceptance Requirements with Tests, Authoring and End-User Design
○ Use this for 3 amigos, before and after work, and improved with each iteration
● Get your CI/CD upfront, code commit = full test run
How to do this with AEM?
● Leverage code testing framework that combines Requirements and code.
○ Enables developers to use this to seed feature tests
○ Enables everyone to participate in testing definition
○ Look at hybrid spec+code tests to avoid tight coupling of tests.
● Establish feature showcase in AEM
○ What to showcase
■ One page/section per component
■ Unique Experiences (Pages)
■ Content Structures
○ Use this for Automation testing
■ Automation Test results are owned by PO as the proof that product meets requirements.
○ Each feature update will mean update to the showcase and automation test specs
What the process will look like?
Requirements
Code
Automation
Tests
3 amigos 3 amigos Release
Ok... How?
This is what a spec will look like
Author Test
Publish Test
Screenshot Test
Test Summary
What and how much should we test?
● Author
○ Test dialogs, as a base can you open dialog?
○ When you have custom dialog components or logic, test that specifically.
● Publish
○ Test your experience interaction
● Screenshot
○ Test all viewports/breakpoints (~6)
Don’t test AEM functionality, unless you modified it.
As much as you need to provide confidence to yourself.
What about the
tools?
Automation Testing Tooling
● Docker and Docker-Compose
○ everyone can use same artifact. (mac, windows, linux)
● Gebish - https://gebish.org/
○ Allows us to run Groovy and drive Selenium like a boss
● Spock Framework - https://spockframework.org/
○ Allows us to make cool Specs in BDD together with code and create cool reports
● Maven
○ for AEM content and running your tests
● ImageMagic
○ for comparing images
● AsciiDoctor
○ for making awesome reports in HTML or PDF or both
● Github Actions
○ Running all of this in the ether
Automation Testing Stack
Automation Testing Foundation
Docker Compose Orchestration
● Traefik - teriffick proxy makes all this possible
● Web - simple page to help everyone, can have your docs etc
● Author - your AEM instance, author and publish (author.localhost)
● Publish - testing site from dispatcher perspective (publish.localhost)
● Dispatcher - test your dispatcher rules (dispatcher.localhost)
● Testing - container for executing your tests
● TestingPrep - ansible playbook to wait for AEM, potentially update AEM instance
● Selenium Hub - make a farm of nodes
● Selenium Node - an individual instance of a browser
What if adoption is not amazing?
Well you can still do the tests yourself :D
1. Fork the repo
2. Add your dependencies
3. Make your showcase (import/export from aem)
4. Watch the pipelines (github)
5. Impress people
Let’s see some
action!
You can follow at home
● If you have docker clone https://github.com/aem-design/geb-aem-testing
● docker-compose up -d
○ Start the stack
● docker-compose up testingprep
○ Ensure author is ready
● docker-compose up authordeploy
○ Deploy our showcase
● docker-compose up testingprep
○ Ensure author is ready
● docker-compose up testing
○ Run the test suite
● docker-compose up testingcheck
○ Check the result
Thank You!

More Related Content

What's hot

The Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego MolinaThe Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego Molina
Sauce Labs
 
Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.
Tomas Riha
 

What's hot (19)

Test Automation Pyramid
Test Automation PyramidTest Automation Pyramid
Test Automation Pyramid
 
Managing software projects with Team Foundation Server 2013 in Agile Scrum
Managing software projects with Team Foundation Server 2013 in Agile ScrumManaging software projects with Team Foundation Server 2013 in Agile Scrum
Managing software projects with Team Foundation Server 2013 in Agile Scrum
 
Qtp testing
Qtp testingQtp testing
Qtp testing
 
Perils of Page-Object Pattern
Perils of Page-Object PatternPerils of Page-Object Pattern
Perils of Page-Object Pattern
 
Say NO To (More) Selenium Tests
Say NO To (More) Selenium TestsSay NO To (More) Selenium Tests
Say NO To (More) Selenium Tests
 
Developers Border Line: Unit Testing
Developers Border Line: Unit TestingDevelopers Border Line: Unit Testing
Developers Border Line: Unit Testing
 
The Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego MolinaThe Holy Trinity of UI Testing by Diego Molina
The Holy Trinity of UI Testing by Diego Molina
 
Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.Continuous delivery its not about the technology, its about the people.
Continuous delivery its not about the technology, its about the people.
 
Effective performance evaluation as part of a CI approach - Mission Impossible?
Effective performance evaluation as part of a CI approach - Mission Impossible?Effective performance evaluation as part of a CI approach - Mission Impossible?
Effective performance evaluation as part of a CI approach - Mission Impossible?
 
Visual Studio Team Services Extensions by Taavi Kõosaar (@melborp)
Visual Studio Team Services Extensions by Taavi Kõosaar (@melborp)Visual Studio Team Services Extensions by Taavi Kõosaar (@melborp)
Visual Studio Team Services Extensions by Taavi Kõosaar (@melborp)
 
Role of Automation in Testing
Role of Automation in TestingRole of Automation in Testing
Role of Automation in Testing
 
UI Automation Quirks
UI Automation QuirksUI Automation Quirks
UI Automation Quirks
 
Visual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for DevelopersVisual Studio 2010 Testing for Developers
Visual Studio 2010 Testing for Developers
 
What is Agile Testing?
What is Agile Testing?What is Agile Testing?
What is Agile Testing?
 
Strategies for Distributed Agile Testing
Strategies for Distributed Agile TestingStrategies for Distributed Agile Testing
Strategies for Distributed Agile Testing
 
XP Injection
XP InjectionXP Injection
XP Injection
 
Test Driven Development: Part 2
Test Driven Development: Part 2Test Driven Development: Part 2
Test Driven Development: Part 2
 
What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?What is Agile Testing? How does Automation help?
What is Agile Testing? How does Automation help?
 
Freelance symfony framework
Freelance symfony frameworkFreelance symfony framework
Freelance symfony framework
 

Similar to How to establish ways of working that allows shifting-left of the automation testing effort?

Similar to How to establish ways of working that allows shifting-left of the automation testing effort? (20)

Demise of test scripts rise of test ideas
Demise of test scripts rise of test ideasDemise of test scripts rise of test ideas
Demise of test scripts rise of test ideas
 
Automated testing
Automated testingAutomated testing
Automated testing
 
Integration testing - A&BP CC
Integration testing - A&BP CCIntegration testing - A&BP CC
Integration testing - A&BP CC
 
UPC Plone Testing Talk
UPC Plone Testing TalkUPC Plone Testing Talk
UPC Plone Testing Talk
 
Unit Testing and TDD 2017
Unit Testing and TDD 2017Unit Testing and TDD 2017
Unit Testing and TDD 2017
 
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflowMay 2021 Spark Testing ... or how to farm reputation on StackOverflow
May 2021 Spark Testing ... or how to farm reputation on StackOverflow
 
QA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web AppsQA Strategies for Testing Legacy Web Apps
QA Strategies for Testing Legacy Web Apps
 
Quality Assurance: An Overview
Quality Assurance: An OverviewQuality Assurance: An Overview
Quality Assurance: An Overview
 
Expo qa15 Keynote
Expo qa15 KeynoteExpo qa15 Keynote
Expo qa15 Keynote
 
Release & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual TestingRelease & Iterate Faster: Stop Manual Testing
Release & Iterate Faster: Stop Manual Testing
 
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
 
Agile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated TestingAgile Testing Framework - The Art of Automated Testing
Agile Testing Framework - The Art of Automated Testing
 
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
 
Test driven development_continuous_integration
Test driven development_continuous_integrationTest driven development_continuous_integration
Test driven development_continuous_integration
 
Working process and git branch strategy
Working process and git branch strategyWorking process and git branch strategy
Working process and git branch strategy
 
Advanced automated visual testing at DrupalCon Europe 2020
Advanced automated visual testing at DrupalCon Europe 2020Advanced automated visual testing at DrupalCon Europe 2020
Advanced automated visual testing at DrupalCon Europe 2020
 
Usable Software Design
Usable Software DesignUsable Software Design
Usable Software Design
 
Wso2con test-automation
Wso2con test-automationWso2con test-automation
Wso2con test-automation
 
Software testing a guide from experience
Software testing a guide from experienceSoftware testing a guide from experience
Software testing a guide from experience
 
Lessons Learned When Automating
Lessons Learned When AutomatingLessons Learned When Automating
Lessons Learned When Automating
 

Recently uploaded

notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
MsecMca
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
dharasingh5698
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 

Recently uploaded (20)

Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
chapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineeringchapter 5.pptx: drainage and irrigation engineering
chapter 5.pptx: drainage and irrigation engineering
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
notes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.pptnotes on Evolution Of Analytic Scalability.ppt
notes on Evolution Of Analytic Scalability.ppt
 
NFPA 5000 2024 standard .
NFPA 5000 2024 standard                                  .NFPA 5000 2024 standard                                  .
NFPA 5000 2024 standard .
 
Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024Water Industry Process Automation & Control Monthly - April 2024
Water Industry Process Automation & Control Monthly - April 2024
 
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar  ≼🔝 Delhi door step de...
Call Now ≽ 9953056974 ≼🔝 Call Girls In New Ashok Nagar ≼🔝 Delhi door step de...
 
University management System project report..pdf
University management System project report..pdfUniversity management System project report..pdf
University management System project report..pdf
 
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank  Design by Working Stress - IS Method.pdfIntze Overhead Water Tank  Design by Working Stress - IS Method.pdf
Intze Overhead Water Tank Design by Working Stress - IS Method.pdf
 
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
(INDIRA) Call Girl Meerut Call Now 8617697112 Meerut Escorts 24x7
 
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
VIP Model Call Girls Kothrud ( Pune ) Call ON 8005736733 Starting From 5K to ...
 
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...Booking open Available Pune Call Girls Koregaon Park  6297143586 Call Hot Ind...
Booking open Available Pune Call Girls Koregaon Park 6297143586 Call Hot Ind...
 
Thermal Engineering Unit - I & II . ppt
Thermal Engineering  Unit - I & II . pptThermal Engineering  Unit - I & II . ppt
Thermal Engineering Unit - I & II . ppt
 
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...Booking open Available Pune Call Girls Pargaon  6297143586 Call Hot Indian Gi...
Booking open Available Pune Call Girls Pargaon 6297143586 Call Hot Indian Gi...
 
KubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghlyKubeKraft presentation @CloudNativeHooghly
KubeKraft presentation @CloudNativeHooghly
 
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 BookingVIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
VIP Call Girls Ankleshwar 7001035870 Whatsapp Number, 24/07 Booking
 
Unit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdfUnit 2- Effective stress & Permeability.pdf
Unit 2- Effective stress & Permeability.pdf
 
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...Top Rated  Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
Top Rated Pune Call Girls Budhwar Peth ⟟ 6297143586 ⟟ Call Me For Genuine Se...
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort ServiceCall Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
Call Girls in Ramesh Nagar Delhi 💯 Call Us 🔝9953056974 🔝 Escort Service
 

How to establish ways of working that allows shifting-left of the automation testing effort?

  • 2. About Me Max Barrass 0410 533 731 max.barrass@anchora.com.au Adobe Technology Leadership ● Practicing Architect - architecture and development ○ https://www.linkedin.com/in/maxbarrass/ ○ Certified AEM Dev, DevOps and Architect. ○ 16 AEM projects, AU/HK/NZ ● Blogs ○ https://aem.design/ ○ https://maxbarrass.com/ ● Code ○ https://github.com/wildone ○ https://github.com/paulrohrbeck/aem-links ● This Presentation ○ More info in Workshop 1 ○ Try it out Source ○ Reviewers: Igor Arkhipov
  • 3. Shift-Left Automation Testing for AEM How to establish ways of working that allows shifting- left of the automation testing effort?
  • 4. Agenda ● Terminology Recap ● Quality Recap ● Testing Meets Software World ● What is testing end-game?
  • 6. Terminology Recap ● Ways of working - is a social process with an aim to achieve value ● Automation Testing - is an automation of an otherwise manual process. ● Shift-Left - is process of moving quality assurance activities earlier in the ways of working process ● Good Automated Feedback Practices - good ones that don’t make you cry… ● AEM Platform - AEM is part of an ecosystem with interlinked features…
  • 7. Terminology Questions! ● Why Automate? ○ Your application will grow, you will not have enough hands ○ You are blocked by development ○ Hidden factory costs of bug-fix cycle ● Why Shift-Left? ○ More people to negate massive inspections ○ Define measurable success early, work on good parts. ○ Reduce occurrence of defects ● What is this got to do with Ways of working? ○ Unlock capacity ○ Make people smile
  • 9. Engineering Testing ● William Edwards Deming ○ Engineer testing activities into ways of working. ■ Cooperation and continual improvement for individual and organisation. ■ All mistakes are opportunities. ● Joseph Juran ○ Trilogy: Quality by Design, Quality Control, Quality Improvement ○ Pareto Principle (80/20) ● Edward Feigenbaum ○ Hidden Factory, focus on good pieces, bad work hidden in day-to-day ● Genichi Taguchi ○ Shift-Left - Push quality and reliability to planning stage to avoid defects Read: https://www.juran.com/blog/the-history-of-quality/
  • 11. Quality Principles 1. Create Constancy of Purpose 2. Adopt the New Philosophy 3. Cease Dependence on Mass Inspection 4. End the Practice of Awarding Business on Price Tag Alone 5. Improve Constantly and Forever the System of Production and Service 6. Institute Training and Retraining 7. Institute Leadership 8. Drive Out Fear 9. Break Down Barriers Between Staff Areas 10. Eliminate Slogans, Exhortations, and Targets for the Workforce 11. Eliminate Numerical Goals 12. Remove Barriers to Pride of Workmanship 13. Institute a Vigorous Program of Education and Self-Improvement 14. Take Action to Accomplish the Transformation
  • 12. Quality is ● Is not ○ a Department ○ extra cost ○ a final oversight or a massive inspection ○ someone else’s job ● Is ○ Everyone’s responsibility ○ Build into the ways of working ○ Everyone’s job
  • 14. Life without Testing ● A feature (A) translated into Requirements (RA) ● Requirements (RA) get translated into Code (B) ● Code (B) is released
  • 15. Life with Testing ● A feature (A) translated into Requirements (RA) ● Requirements (RA) get translated into Code (B) ● Test if Requirements (RA) equal Code (B) ● Code (B) is released
  • 16. Typical Ways of Working 1 4 7 3 6 2 5 Feature Slide
  • 17. Typical Process Feelings Design Build Test Design Showcase UAT Release
  • 20. Shift-Left Optimisation Agree on requirements (sprint planning) Agree on Acceptance tests (3 amigos) Incorporate tests into the dev process (automation, dev/qa collaboration) Explore what can be improved further (exploratory testing) ● How to establish ways of working that allow shifting-left of the automation testing effort? ○ Agree on requirements (sprint planning, structured) ○ Agree on acceptance tests (before work, 3 amigos, PO, Dev and Test) ○ Incorporate tests into dev process (after work, 3 amigos, automation review) ○ Explore what can be improved further (exploratory testing, requirements, acceptance tests)
  • 21. Shift-Left Impact ● A feature (A) translated into Requirements (RA) ○ Test if Requirements (RA) can be Code (B) ● Requirements (RA) get translated into Code (B) ○ Test if Requirements (RA) equal Code (B) ● Code (B) is released ○ Test if Requirements (RA) is Code (B)
  • 22. How to do this with AEM? ● Agree on Design Language System (DLS) that everyone speaks (not just designers) ● Agree on AEM Component Catalog that everyone speaks about and DLS is made for ● Agree on Requirements Convention ○ Create a blueprint/template to document each component and unique experience (page) ■ Component, Acceptance Requirements with Tests, Authoring and End-User Design ○ Use this for 3 amigos, before and after work, and improved with each iteration ● Get your CI/CD upfront, code commit = full test run
  • 23. How to do this with AEM? ● Leverage code testing framework that combines Requirements and code. ○ Enables developers to use this to seed feature tests ○ Enables everyone to participate in testing definition ○ Look at hybrid spec+code tests to avoid tight coupling of tests. ● Establish feature showcase in AEM ○ What to showcase ■ One page/section per component ■ Unique Experiences (Pages) ■ Content Structures ○ Use this for Automation testing ■ Automation Test results are owned by PO as the proof that product meets requirements. ○ Each feature update will mean update to the showcase and automation test specs
  • 24. What the process will look like? Requirements Code Automation Tests 3 amigos 3 amigos Release
  • 26. This is what a spec will look like
  • 31. What and how much should we test? ● Author ○ Test dialogs, as a base can you open dialog? ○ When you have custom dialog components or logic, test that specifically. ● Publish ○ Test your experience interaction ● Screenshot ○ Test all viewports/breakpoints (~6) Don’t test AEM functionality, unless you modified it. As much as you need to provide confidence to yourself.
  • 33. Automation Testing Tooling ● Docker and Docker-Compose ○ everyone can use same artifact. (mac, windows, linux) ● Gebish - https://gebish.org/ ○ Allows us to run Groovy and drive Selenium like a boss ● Spock Framework - https://spockframework.org/ ○ Allows us to make cool Specs in BDD together with code and create cool reports ● Maven ○ for AEM content and running your tests ● ImageMagic ○ for comparing images ● AsciiDoctor ○ for making awesome reports in HTML or PDF or both ● Github Actions ○ Running all of this in the ether
  • 36. Docker Compose Orchestration ● Traefik - teriffick proxy makes all this possible ● Web - simple page to help everyone, can have your docs etc ● Author - your AEM instance, author and publish (author.localhost) ● Publish - testing site from dispatcher perspective (publish.localhost) ● Dispatcher - test your dispatcher rules (dispatcher.localhost) ● Testing - container for executing your tests ● TestingPrep - ansible playbook to wait for AEM, potentially update AEM instance ● Selenium Hub - make a farm of nodes ● Selenium Node - an individual instance of a browser
  • 37. What if adoption is not amazing? Well you can still do the tests yourself :D 1. Fork the repo 2. Add your dependencies 3. Make your showcase (import/export from aem) 4. Watch the pipelines (github) 5. Impress people
  • 39. You can follow at home ● If you have docker clone https://github.com/aem-design/geb-aem-testing ● docker-compose up -d ○ Start the stack ● docker-compose up testingprep ○ Ensure author is ready ● docker-compose up authordeploy ○ Deploy our showcase ● docker-compose up testingprep ○ Ensure author is ready ● docker-compose up testing ○ Run the test suite ● docker-compose up testingcheck ○ Check the result