February 29, 2016
Sitecore is a very flexible tool. You can accomplish a lot with a clever team, but the risk of overlooking simple but important details is significant. When we are presented with a new toy, it is easy to solely focus on what is cool and unique, and to ignore its basic components and attributes. This can be compared to becoming distracted by new and exciting features during a new website build, often resulting in the quality of basic components being ignored.
Despite following requirements and acceptance criteria, we are always conducting experience-based testing. It’s unconscious most of the time.
The trick is to transform these near random sets of tests into a reusable quality assurance checklist. Indeed, a checklist is incredibly useful, especially when we consider the time it can take to incorporate acceptance criteria and requirements into our automatic routines.
Every time we find a problem and clearly determine its cause, and it is far too easy to simply forget and fall into the same trap again, simply because we failed to take note of it.
I keep a QA checklist to remind me of simple things I need to check. I also use it to help me keep track of test procedures so I can ensure my tests are consistent. This QA checklist also includes a verifications checklist. As I gain experience working with Sitecore, the checklist continues to grow. (Always keep in mind that Sitecore, much like any other web application can be tricky to test, so it is always important to be thorough.)
Here are 7 useful tips for quality assurance testing on Sitecore sites that will help you create or add to your own quality assurance checklist.
1) Clear the Sitecore cache!
The number one commandment when something behaves weirdly in a Sitecore website is to clear the CMS cache. Whenever you notice that something is not working as expected and you can see no reason why, clear the cache.
To clean the Sitecore cache, you need an admin account to load the tool.
2) Republish it!
It can be embarrassing when you’re unable to load a page (or, some of its contents) and later on find out the reason is an item was not published correctly. Once when working with Sitecore and trying to validate something after a deployment, I heard this simple solution from a developer: republish everything! And it sometimes really work.
It is helpful to keep a sticky note on your monitor to remind you to clear the Sitecore cache and to republish frequently. Usually I begin by publishing the page I’m inspecting and all its children and related items. But, many times it’s not enough. If you cannot find a reason why something you see in preview mode is not displaying on the published site, start a complete publish and go for another cup of coffee.
3) Hardcoded content.
A sound Sitecore solution should be flexible. Give the client the option to change all text, titles and even the language.
A mix of programming expertise and knowledge of the application is needed to spot the hardcoded item. In a case with poor documentation, you have a real opportunity to bother a developer. At the end of the day, they are there to help you create the best Sitecore solution.
4) Markup correctness.
Many times a bad markup produces strange side effects on cross browser testing and is a menace to your website’s accessibility. Sometimes bad HTML is treated well by browsers, but can render a page useless when using a screen reader. Don’t let such a simple test ruin your work. There are many free tools that help in this regard. I like the plugins for Firefox and Chrome.
5) Simple accessibility and usability verifications.
There are both simple and complex items to check against accessibility compliance and usability. But, a good QA analyst can significantly improve site accessibility, whether they are an expert in this field or not. Quality content care and simple development measures can provide great benefit, even if the project does not call for any compliance, like WCAG. Check for simple things such as: image alternate text (alt tags) missing in one or more languages, the key tab is out of order - especially in forms, bad color contrast (I recommend this useful, free tool), tiny font sizes, links not following the standard color scheme (possible controversy here!), and problems with links such as “Click Here.”
6) Local cache.
Clearing my browser’s local cache is now the first step I take before starting any test. I clear everything (including passwords, URLs, usernames, etc.). So, use one browser for non-testing purposes, and a set of browsers for testing only. Because you will probably be testing for the main browsers, such as Firefox, IE and Chrome, I would recommend that you use a virtual machine with the browser you are not using for testing purposes. Virtual Box is free and easy to setup (provided you have another Windows’ license to spare). If you like Firefox, I recommend using Firefox Developer Edition as your main browser. I usually like to run a tool that cleans all browsers every time I finish a test. In the past, I was surprised when a Javascript component had been changed or removed from the server and I could not detect it, since the code still lingered locally. I never have this problem anymore.
7) Use Selenium IDE.
Even if your job relies on manual testing, there are times when entering data and verifying the results over and over manually can be a waste of time, not to mention, likely to result in mistakes. Using an easy automation tool such as Selenium IDE can be particularly beneficial when validating forms or entering data in a multi-step process.
An online shopping cart is a good example of where automation is helpful. Given that you need to supply data to each step in order to access the next one, you may find this to be a tedious, manual process to complete repeatedly, not to mention one that is likely to result in mistakes. Automating all steps that are already known to be free of errors, can free up your time to focus on the current step being tested. Let your automated routine take care of the data entry and validation for your repetitive tasks, so the system is left in a good state for the next step and test.
So, spend some time learning Selenium IDE. It is your friend. And, have some fun. If you're interested, here is another useful article I wrote that goes into more detail about Selenium: 7 tips for automated testing in Sitecore with Selenium.