SlideShare a Scribd company logo
1 of 21
Download to read offline
Test Automation For CMS
Backed Applications
C4- Case Study
Anand Ramdeo
anand@testinggeek.com
www.TestingGeek.com
@testinggeek
Single Content
Management
System
Multiple
Websites
Challenge
Let's break the problem
Can editor publish pages with
different module combinations?
CMS ==> DB
Can page render all the
modules properly?
DB ==> Front End
Two main challenges
Can editor publish pages with
different module combinations?
CMS ==> DB
Out of Scope for this talk
Can page render all
the modules
properly?
DB ==> Front End
When a page is requested
Java applies magic to convert
information in DB to JSON
format.
Frontend understands JSON
and does its magic to render
the web page.
Let's consider DB is our oracle.. what
do we need to check?
Let's consider DB is our oracle.. what
do we need to check?
Java is doing magic properly,
i.e information in DB and
information present in the
JSON is consistent.
Frontend understands Java's
magic properly and rendering
modules properly.
And there are few more challenges..
Every site is a separate project
Different Teams &
Release Cycle
Reuses core
functionality
Add New
Functionality
Shared core functionality &
modular architecture.
Is Page Object model appropriate?
Test Automation
Page is the place holder for
modules
Focus on Modules
follow development
Discovery Structure Data
Discovery Module - What's on the page?
?debug
?debug&xml
Use any XML Parser to get
information on the modules
present on the page.
Use Data Assertor to check number & type of modules on the
page. Testability for the WIN!!
For all the modules on the page..
For (Every_module_identified_on_the_page) {
Call structural_assertions of the module
Call data_assertions of the module
}
Structural Assertions..kind of acceptance criteria
for the modules
---> Video list module should have link to three video articles
---> Every item in the list should have an image
---> There should be a little play button on top of image
---> Video links should always be internal
---> Every list item should have an image, title and description
Database Assertions.. Actual checks - compare
DB and information on the page
---> Order of the articles is same as DB
---> Right images are present on the module
---> Title text of all the article is proper
---> Right description is appearing for all the items in the list
Little more fun?
Go to Sitemap on UAT
Get links_of_all_the_pages
For (Every_link_in_the_sitemap) {
Go to that_page
Get list_of_modules
For (Every_module_on_the_page) {
Call structural_assertions of the module
Call data_assertions of the module
}
}
Efficient
&
Effective
Interested in
Improving efficiency &
effectiveness
of your test automation projects?
Shameless Promotion :-)
http://testspicer.com/
Thank you for your time &
attention
@TestingGeek
www.TestingGeek.com
www.PlannedDeparture.com
anand@testinggeek.com

More Related Content

What's hot (6)

Mule velocity
Mule velocityMule velocity
Mule velocity
 
Rapid application development for WordPress using AWF
Rapid application development for WordPress using AWFRapid application development for WordPress using AWF
Rapid application development for WordPress using AWF
 
Temp pakistani-ladies-party-dresses
Temp pakistani-ladies-party-dressesTemp pakistani-ladies-party-dresses
Temp pakistani-ladies-party-dresses
 
Developing Joomla Extensions JUG Bangladesh meetup dhaka-2012
Developing Joomla Extensions JUG  Bangladesh meetup dhaka-2012Developing Joomla Extensions JUG  Bangladesh meetup dhaka-2012
Developing Joomla Extensions JUG Bangladesh meetup dhaka-2012
 
Java mule
Java muleJava mule
Java mule
 
Using maven with mule
Using maven with muleUsing maven with mule
Using maven with mule
 

Similar to Tes automation for CMS Backed applications - Channel-4 Case Study

Microsoft MCPD 70-492 it examen dumps
Microsoft MCPD 70-492 it examen dumpsMicrosoft MCPD 70-492 it examen dumps
Microsoft MCPD 70-492 it examen dumps
lilylucy
 
Revised Rails Engine Patterns for Montreal.rb meetup Oct 16, 2012
Revised Rails Engine Patterns for Montreal.rb meetup Oct 16, 2012Revised Rails Engine Patterns for Montreal.rb meetup Oct 16, 2012
Revised Rails Engine Patterns for Montreal.rb meetup Oct 16, 2012
Andy Maleh
 
Zend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View EnhancementsZend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View Enhancements
Ralph Schindler
 
Architecture Specification - Visual Modeling Tool
Architecture Specification - Visual Modeling ToolArchitecture Specification - Visual Modeling Tool
Architecture Specification - Visual Modeling Tool
Adriaan Venter
 
The Rails Engine That Could - In Motion
The Rails Engine That Could - In MotionThe Rails Engine That Could - In Motion
The Rails Engine That Could - In Motion
Andy Maleh
 
BDD approach with Selenium RC
BDD approach with Selenium RCBDD approach with Selenium RC
BDD approach with Selenium RC
Mykola Kolisnyk
 
Welcome to React & Flux !
Welcome to React & Flux !Welcome to React & Flux !
Welcome to React & Flux !
Ritesh Kumar
 

Similar to Tes automation for CMS Backed applications - Channel-4 Case Study (20)

Microsoft MCPD 70-492 it examen dumps
Microsoft MCPD 70-492 it examen dumpsMicrosoft MCPD 70-492 it examen dumps
Microsoft MCPD 70-492 it examen dumps
 
Stanislaw potoczny kra_qa_21.01.20
Stanislaw potoczny kra_qa_21.01.20Stanislaw potoczny kra_qa_21.01.20
Stanislaw potoczny kra_qa_21.01.20
 
AD0-E116-demo.pdf
AD0-E116-demo.pdfAD0-E116-demo.pdf
AD0-E116-demo.pdf
 
.NET 1.1 Base Page Framework Article
.NET 1.1 Base Page Framework Article.NET 1.1 Base Page Framework Article
.NET 1.1 Base Page Framework Article
 
Revised Rails Engine Patterns for Montreal.rb meetup Oct 16, 2012
Revised Rails Engine Patterns for Montreal.rb meetup Oct 16, 2012Revised Rails Engine Patterns for Montreal.rb meetup Oct 16, 2012
Revised Rails Engine Patterns for Montreal.rb meetup Oct 16, 2012
 
Metamorphosis from Forms to Java: A technical lead's perspective, part II
Metamorphosis from Forms to Java:  A technical lead's perspective, part IIMetamorphosis from Forms to Java:  A technical lead's perspective, part II
Metamorphosis from Forms to Java: A technical lead's perspective, part II
 
Zend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View EnhancementsZend_Layout & Zend_View Enhancements
Zend_Layout & Zend_View Enhancements
 
Zend Framework And Doctrine
Zend Framework And DoctrineZend Framework And Doctrine
Zend Framework And Doctrine
 
14 asp.net session20
14 asp.net session2014 asp.net session20
14 asp.net session20
 
Building and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and ContextBuilding and Deployment of Drupal sites with Features and Context
Building and Deployment of Drupal sites with Features and Context
 
Architecture Specification - Visual Modeling Tool
Architecture Specification - Visual Modeling ToolArchitecture Specification - Visual Modeling Tool
Architecture Specification - Visual Modeling Tool
 
Drupal SEO
Drupal SEODrupal SEO
Drupal SEO
 
Introduce PlutoCMS
Introduce PlutoCMSIntroduce PlutoCMS
Introduce PlutoCMS
 
Design Systems, Pattern Libraries & WordPress
Design Systems, Pattern Libraries & WordPressDesign Systems, Pattern Libraries & WordPress
Design Systems, Pattern Libraries & WordPress
 
The Rails Engine That Could - In Motion
The Rails Engine That Could - In MotionThe Rails Engine That Could - In Motion
The Rails Engine That Could - In Motion
 
BDD approach with Selenium RC
BDD approach with Selenium RCBDD approach with Selenium RC
BDD approach with Selenium RC
 
Welcome to React & Flux !
Welcome to React & Flux !Welcome to React & Flux !
Welcome to React & Flux !
 
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
WordCamp Asheville 2017 - So You Wanna Dev? Join the Team!
 
RapidApp - YAPC::NA 2014
RapidApp - YAPC::NA 2014RapidApp - YAPC::NA 2014
RapidApp - YAPC::NA 2014
 
Fame
FameFame
Fame
 

More from Anand Ramdeo

Selenium conference 2012 - One Step At A Time
Selenium conference 2012 - One Step At A TimeSelenium conference 2012 - One Step At A Time
Selenium conference 2012 - One Step At A Time
Anand Ramdeo
 
Patterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsitePatterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsite
Anand Ramdeo
 

More from Anand Ramdeo (13)

Rano fest
Rano fest Rano fest
Rano fest
 
Ranosys jobs
Ranosys jobsRanosys jobs
Ranosys jobs
 
Misleading Validations - Be Aware Of Green
Misleading Validations - Be Aware Of GreenMisleading Validations - Be Aware Of Green
Misleading Validations - Be Aware Of Green
 
Keeping London On The Move - Interesting Solutions For Challenging Problems
Keeping London On The Move - Interesting Solutions For Challenging ProblemsKeeping London On The Move - Interesting Solutions For Challenging Problems
Keeping London On The Move - Interesting Solutions For Challenging Problems
 
Future of Retail is here with Artificial Intelligence (AI) - Are you ready?
Future of Retail is here with Artificial Intelligence (AI) - Are you ready?Future of Retail is here with Artificial Intelligence (AI) - Are you ready?
Future of Retail is here with Artificial Intelligence (AI) - Are you ready?
 
Workshop for Managing Expectations By Utilising A Communication Toolkit
Workshop for Managing Expectations By Utilising A Communication ToolkitWorkshop for Managing Expectations By Utilising A Communication Toolkit
Workshop for Managing Expectations By Utilising A Communication Toolkit
 
Testing strategies for the eCommerce stores built on Magento
Testing strategies for the eCommerce stores built on MagentoTesting strategies for the eCommerce stores built on Magento
Testing strategies for the eCommerce stores built on Magento
 
Java primer
Java primerJava primer
Java primer
 
Ramdeo green
Ramdeo greenRamdeo green
Ramdeo green
 
Selenium conference 2012 - One Step At A Time
Selenium conference 2012 - One Step At A TimeSelenium conference 2012 - One Step At A Time
Selenium conference 2012 - One Step At A Time
 
Patterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsitePatterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsite
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Simple tools to fight bigger quality battle
Simple tools to fight bigger quality battleSimple tools to fight bigger quality battle
Simple tools to fight bigger quality battle
 

Recently uploaded

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 

Recently uploaded (20)

CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by AnitarajAI in Action: Real World Use Cases by Anitaraj
AI in Action: Real World Use Cases by Anitaraj
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 

Tes automation for CMS Backed applications - Channel-4 Case Study

  • 1. Test Automation For CMS Backed Applications C4- Case Study Anand Ramdeo anand@testinggeek.com www.TestingGeek.com @testinggeek
  • 3.
  • 4. Let's break the problem Can editor publish pages with different module combinations? CMS ==> DB Can page render all the modules properly? DB ==> Front End
  • 5. Two main challenges Can editor publish pages with different module combinations? CMS ==> DB Out of Scope for this talk Can page render all the modules properly? DB ==> Front End
  • 6. When a page is requested Java applies magic to convert information in DB to JSON format. Frontend understands JSON and does its magic to render the web page.
  • 7. Let's consider DB is our oracle.. what do we need to check?
  • 8. Let's consider DB is our oracle.. what do we need to check? Java is doing magic properly, i.e information in DB and information present in the JSON is consistent. Frontend understands Java's magic properly and rendering modules properly. And there are few more challenges..
  • 9. Every site is a separate project Different Teams & Release Cycle Reuses core functionality Add New Functionality
  • 10. Shared core functionality & modular architecture.
  • 11. Is Page Object model appropriate? Test Automation
  • 12. Page is the place holder for modules
  • 13. Focus on Modules follow development Discovery Structure Data
  • 14. Discovery Module - What's on the page? ?debug ?debug&xml Use any XML Parser to get information on the modules present on the page. Use Data Assertor to check number & type of modules on the page. Testability for the WIN!!
  • 15. For all the modules on the page.. For (Every_module_identified_on_the_page) { Call structural_assertions of the module Call data_assertions of the module }
  • 16. Structural Assertions..kind of acceptance criteria for the modules ---> Video list module should have link to three video articles ---> Every item in the list should have an image ---> There should be a little play button on top of image ---> Video links should always be internal ---> Every list item should have an image, title and description
  • 17. Database Assertions.. Actual checks - compare DB and information on the page ---> Order of the articles is same as DB ---> Right images are present on the module ---> Title text of all the article is proper ---> Right description is appearing for all the items in the list
  • 19. Go to Sitemap on UAT Get links_of_all_the_pages For (Every_link_in_the_sitemap) { Go to that_page Get list_of_modules For (Every_module_on_the_page) { Call structural_assertions of the module Call data_assertions of the module } } Efficient & Effective
  • 20. Interested in Improving efficiency & effectiveness of your test automation projects? Shameless Promotion :-) http://testspicer.com/
  • 21. Thank you for your time & attention @TestingGeek www.TestingGeek.com www.PlannedDeparture.com anand@testinggeek.com