The relationship between Quality Assurance and budgets and ambitions in digital agencies can, on occasion, be misaligned. What’s more, the notion of “Quality Assurance” as a dedicated function does not always hold an elevated position within the industry.
At Codehouse, we think differently...
The value in QA
Smaller digital agencies and their clients will rarely factor dedicated QA into a budget, as it is commonly perceived that features should be developed without bugs from the outset.
In fact, Quality Assurance is an essential service, and part of superior software development
Based on the level of investment, a greater QA presence and more advanced QA toolkit can be used, decreasing the likelihood of inevitable bugs. There is of course a sweet-spot - throwing investment at quality control doesn’t necessarily represent best value for money. Defects are present in any development process, whether it be software, manufacturing, design or engineering.
You’d expect quality control processes on a production line. Why should software development be any different?
5 ways we deliver high-quality QA
Whether they’re from within projects containing new features, or part of a (bug) hotfix release, each deployment normally includes things such as a change in user interface (UI) or a new piece of functionality.
1. Choosing release criteria carefully
You cannot test everything in a product for every release, and fortunately you do not need to. We can still be confident in the product we approve, if we focus on areas of the code where the most significant changes exist. Before a new release cycle begins, a QA will sit with stakeholders to understand which parts of the product have changed through new or updated code.
We use that information to prioritise our testing efforts. We focus on those parts of the code and use existing automation tests to handle other parts. If we know something worked in the last release and we're not touching it in this release, then we don't need to spend too much time testing, outside of basic regression tests for key user journeys.
2. Testing as a content editor
Because the solutions we build are largely built on the Sitecore CMS, we need to perform effective testing in the role of a content editor - to ensure that the system not only functions technically, but also works behind the scenes in Sitecore.
3. Run a regression cycle
We stabilise the final product and confirm it fit for release by running a regression test cycle during the end of development. This is the process that gives the green light for a production-ready release. From a version control perspective in coding, we model our product as a tree with a hierarchy of module and component branches. When any branch is worked on with changes, including new or updated code, the hierarchy shows which branches will be affected and will require testing.
Our regression test cycle uses the traffic light method. If every branch receives a green light (passes all automated tests), followed by a set of key manual tests, the product is considered ready for delivery.
If a branch receives a yellow light (all tests passed but with one or more reported warnings, or during manual testing there were issues that may relate to content for example), the problem is discussed with the product stakeholders.
If a branch receives a red light (one or more tests failed), the release preparation is terminated and the issue addressed.
4. Engage in periodic QA Audit and Process Improvement services
If we can show that we value the output delivered to our customers through independent evaluation of our work, it breeds confidence.
Engaging with our customers through workshops, analysis of testing requirements and surveying (from pre- to post-sales), we can convey to our customers that we have the utmost confidence in our ability to deliver to them a high-quality product; which puts us in a position to be able to confidently offer superior Quality Assurance services.
5. Perform sanity tests on production
We perform post-release sanity tests on customer UAT and production environments to validate that everything works as expected, including key user journeys and form submissions.
Finally, we have a system to cover the huge variety of devices and browsers to ensure product quality across as many supported systems as is sensible in today’s world.
To uphold product quality whilst keeping up with the ongoing demand for frequent product releases, the Codehouse QA team constantly tries to break traditional grounds and develop new skills, such as software design and test automation, so that we can be more involved in different stages of the software development life-cycle.
By continuously improving our processes, our knowledge of Sitecore features and its suite of tools, we are able to help dramatically reduce the times development cycles take, and ultimately deliver a better quality product, more efficiently, for all of our clients.