Adobe Experience Manager (AEM), is a comprehensive content management solution for building websites, mobile apps and forms. In a nutshell AEM is a content authoring and management tool that is designed for the ease of authoring and with the intent of seeing content as content that can be easily created without the need of a DBA to create tables to host the data attributes for content. Its highest priority is to enable non-technical persons to author content without any advanced knowledge about the technologies utilized behind the scene. We will cover how approach different types of testing for AEM or for that matter AEM based applications
Testing as Author
Authoring is the process of content creation in AEM. It allows content authors to make changes to content without a code release. A good AEM application should consist of components and pages that are easy to author for non-technical content authors. As Author following can be made major areas of focus when testing
Testing Components and Templates
- Verify component naming conventions
- Verify field names in all component dialogs
- Verify the tags on webpages by configuring the individual components
- Verify the consistency in for components and field names
- Verify Template Design – Create a page using each template (required for the project)
- Verify predefined components of a template
- Verify by adding components to different templates
- Verify by authoring content into all the fields for each component
Content policies are configurations that govern the behavior of components across an entire section of an AEM website. In AEM versions prior to 6.3, they were sometimes called designs.Just like the real rules of the road, content policies govern what authors may do on the website. AEM content policies get enforced by developers with APIs.
Testing Content Policies
Content policies cannot be changed by regular authors.
- Content policies are managed by a template editors (a new role since AEM 6.4) of the site
- There can be many combinations of components and templates in a given AEM site
- AEM makes it easy by allowing you to name, describe and re-use content policies.
- The policy settings (or configuration properties) can be defined by the developer of the component and retrieved just as easily as the edit properties.
Functionality testing is used to identify if your website is behaving as per the specifications or not. CMS based websites are used mostly for Marketing content in which case the scope of functional testing is different. Some examples of functional testing would be testing features like User Registration, Email Validation, Single Sign On Integration, Search and so on. In functionality testing multiple activities are included such as;
Forms testing checks whether forms are working as it is defined in specification or not.
- Validating each field of the form.
- Validating each field with negative or invalid value.
- To ensure default values for each field.
- Mandatory field is highlighted with * symbol.
- Testing conceal functionality in the password field.
- Check default values are being populated.
- Once submitted, the data in the forms is submitted to a live database or is linked to a working email address.
Cookies are working as expected. Cookies are small files used by websites to primarily remember active user sessions so you do not need to log in every time you visit a website. Cookie Testing will include
- Testing cookies (sessions) are deleted either when cache is cleared or when they reach their expiry.
- Delete cookies (sessions) and test that login credentials are asked for when you next visit the site.
All the links in the website are working properly and check if there is any broken link.
- External link: links which directs the website to any other web page or website outside its domain.
- Internal link: links directing one web page to another web page within the website domain.
- Mail to links: links providing direct access to the client mail page with pre-filled general information such as recipient address
- Anchor link: links providing text, images, links to other resources.
- Broken link: These links do not provide access to any other page, internally and externally both. Thus, they are known as dead links or broken links.
System Integration Testing
As no application in the real world works on its own and we have more and more integration from different websites directly or we tend to use API from different sources.
Most of the organizations have different websites like Marketing, Product and Blog. As a tester it is important to test functionality which are across different AEM websites. For e.g. we have Single Sign On feature where a user once logged in one website can freely navigate to integrated different websites as a same user. When testing integration we need to consider following important aspects
- Data flow between different AEM application is seamless
- Navigation between different AEM application is smooth
- API integration work seamlessly
Developers develop AEM applications that generate HTML5 pages that adapt to multiple window sizes and orientations. It’s very important for the tester to make sure to perform testing on all the supported devices shared by client.
Approach to test on different Devices (Resolutions)
- Add all the components to the page as per design
- Author the content on all components
- Publish the page
- Verify UI, Functionality on different browsers, Devices as specified by customer.
- Text, controls, and images must be aligned and properly placed across the site.
- Color, shading, and gradient must be consistent.
- The clickable area must be well-adjusted and of suitable sizing.
- Text and data entry must be displayed correctly.
- Text, images, controls, and frames do not exceed the edges of the screen, whether desktop or mobile.
- Content testing checks the spelling and grammatical mistakes.
Performance testing makes sure that the site works properly under all resistance. Performance testing will include –
- Website response times at various connection speeds
- Load test is performed to check the performance of the website under normal and peak loads.
- Stress test to figure out break even points for your website.
Database testing is performed to test whether the data is created/updated/deleted properly or not. Database Testing will include. One of the examples is various form submissions that users make is the data been stored as expected
- Data Integrity is maintained while creating, updating or deleting data in the database.
- Test the accuracy of data fetching from the database.
With AEM there is an option to use Hobbes.js for writing unit tests. In some cases there can be custom framework written like for e.g. Python Robot. The goal is to make sure that tests are lightweight and quick to execute
Localization Testing is a type of software testing that is performed to verify the quality of a product for a specific culture or locale. Localization testing is performed only on the local version of the product. Localization testing ensures that the application is capable enough to be used in that specific region
Security testing is performed to solve or eliminate security vulnerabilities occurring in the website. Security testing will include:
- A penetration test, colloquially known as a pen test, pentest or ethical hacking, is an authorized simulated cyber attack on a computer system, performed to evaluate the security of the system.
- Accessing websites using invalid or incorrect access details a number of times.
- Hacking & cracking the password.
- Verifying the submission of confidential data and information through SSL certificates (HTTP).
- Performing various attacks on the website.
Apart from this there are various sorts of testing are performed based upon their expertise and experience. So, these are the basic tests which are performed by testing agencies. In the further blogs we will try and cover each category and what kind
With the huge volume of data being generated by the end-user interactions, and the data being captured by all devices in the food-chain of the offering, it is important to identify patterns from what has happened, and find out new product / value opportunities based on usage patterns.
For analytics to work correctly it is critical for it to capture data accurately. AEM applications can be configured to capture data for different analytics tools like Adobe, Google, Eloqua. As a tester it is critical to check if data is record correctly and submitted to different analytics database
Are you trying to figure out what you’ll test? How you’ll test? Initialyze can help!
At Initialyze we have dedicated quality engineering practice consisting of highly talented individuals specializing in digital marketing platforms and especially the Adobe Platform. We are one of the most knowledgeable and trusted partners that has achieved multiple specializations with the Adobe Marketing Cloud Platform. Our teams have extensive experience and unique skills required to support AEM based implementations. For more info about Initialyze’s AEM services, get in touch here or send us an email at email@example.com