Adobe Experience Manager (AEM) has amassed a loyal following and it is easy to see why. AEM enables web and mobile applications to be built in a way that is quick, easy and repeatable. Using the AEM framework, organizations can build web applications, responsive websites, mobile applications and forms. It contains some really useful features, like templates with predefined layouts, or the ability to embed standard and custom-built components that display content from its DAM (Digital Asset Manager).
For enterprises that use AEM, or are considering using it, this blog will show you what it is and what tools you will need for test automation. Our goal is to not only help organizations get the most out of AEM applications, but also provide insight on how to work hand-in-hand with a Quality Engineering (QE) approach.
Developing in AEM: What’s Involved?
If you are new to developing applications in AEM, you may not be sure of the steps you’ll need to take. Here’s a quick recap:
1. Template creation
2. Web / mobile app creation using pre-defined templates
3. Placement of both custom and standard components on paragraph system (parsys)
4. Addition of digital content
5. Setting attributes for components
AEM environments all have Authoring and Publisher stages. The deployment of the Author and Publisher environments could be on a same server running on different ports or on different servers. Different versions of an application are maintained in the AEM’s code repository called File Vault.
Image Source: Sample Architecture Diagrams for AEM by Tad Reeves
A QE Approach to Authoring and Publishing
It comes down to an organization’s Quality Engineers to validate the custom-built components to ensure they meet functional requirements, as well as to ensure that the website built using the template meets the layout criteria, and that the components and content meet their respective criteria. In keeping with a Shift Left approach, testing starts early in the development lifecycle. With AEM development, all of these validations need to be performed in the AEM Authoring environment, and individual components can be tested as they are being developed. By testing from lower level components to high-level website layout and component attributes, in QE we are constantly checking back in these early stages to ensure not only that the components work as intended, but that the application meets the defined business requirements.
While testing in the AEM Authoring environment the emphasis is on layout and digital content. Page navigation testing, integration with external applications and the application’s end-to-end functionality need to be verified in the Publisher environment. It is best to carry out visual page rendering, port sizes and cross-browser testing in Publisher mode too.
Accelerate Automation with the Right Tools
For any enterprise that’s serious about improving speed, quality and delivery, we would certainly recommend automated testing — both while the application is being built and after it is published. UI test automation solutions can be custom-built for the application in both the Authoring and Published environments, using any of the tools and technologies available in the market (e.g. Selenium Webdriver).
The actions performed in the AEM Authoring environment are quite common and repeatable for development/testing and the AEM UI controls for such actions are quite standard. Fortunately, there is a test automation framework out there that has pre-built functions that can perform most of the UI actions that are necessary for testing in AEM Authoring environment. Here’s what we’d recommend:
– Bobcat is an open source test automation framework for the functional testing of web applications. Bobcat has standard libraries that are written as a wrapper around Selenium Webdriver using Java and these libraries act as accelerators for test automation on AEM Authoring environment. Bobcat’s libraries allow very common and repeatable functional steps to be performed on the AEM Authoring environment.
– Bobcat allows teams to write test automation solutions that focus on business requirements and it performs all the necessary UI actions in AEM’s Authoring environment through “accelerators”. The accelerators are libraries that perform pre-defined common steps in the AEM Authoring environment.
– Bobcat’s libraries have been written in Java and they are wrappers around Selenium Webdriver. It supports test scenarios in BDD (Behavior Driven Development) using Cucumber-JVM, POM (Page Object Model) and also supports tests written in Junit. Dependency management is done through Guice.
Using the Bobcat framework, enterprises can quickly build test automation suites to validate web and mobile apps built on AEM. If you have a particular challenge with AEM that we haven’t covered here in this blog, we’d love to hear it and solve it for you. Talk to us today.
Image Source: AEM/CQ Architecture by Yogesh Upadhyay