New Year, New You! Okay, we’ll stop right there. As far as personal new year resolutions go, we have all been there and not done that. However, when it comes to Software Quality goals, nothing like the new year to start afresh with some strong resolutions that help us stay on track and avoid us from falling into the same pitfalls as each year. Here’s our compilation of the top software quality resolutions for every project team.
1. We will invest in Automation wisely
In the age of CI/CD and continuous testing, it is impossible to achieve the release and quality goals without test automation. However, if you are new to a DevOps practice, then don’t rush into automate everything.
The key is to prioritize. Whenever you are tempted to automate, ask yourself if you should automate functional testing or UI testing first? In fact, you will face the same dilemma when setting up environments or automate your development.
Automate your process for compiling the code as CI/CD is highly dependent
on automation integration. Often you will need to break down tasks into
smaller bits and automate in patches.
There will be other times when automation may not be the best answer, such as exploratory testing.
2. We will not build CD on top of unstable CI
Automated testing is important for both continuous integration and continuous delivery . But to deploy continuously, manual intervention to test for defects is just as important.
If you haven’t achieved the desired test coverage, then building a CI/CD pipeline will defeat the entire purpose of automation or DevOps. The frequency of pushing to production doesn’t matter if you ship buggy code. While 100% test coverage is not possible, one must aim to execute all the code in the codebase and justify each line of code created. Aim for 100% testable code and an assurance that you have tried all possible scenarios before throwing the code to production. It is important to cover the most important user flows and any UX governed by business logic.
3. We will test smarter and integrate better
In the recently released World Quality Report 2019-20, key recommendations include building a smarter and more connected testing ecosystem that uses intelligent analytics.
Yet, one of the key challenges of Agile and DevOps – centric organizations is the end-to-end testing of business processes. Consider a bank or a healthcare ecosystem and now imagine the various applications, customer touchpoints and dependencies. Imagine thousands of test cases and a vast backlog, often with duplication of tasks and redundant items. To achieve end-to-end testing and accomplish your aim of aligning business goals to quality, you will need to connect your testing ecosystems. But also use analytics, dashboard and metrics to provide the visibility and reports that you need.
4. We will make sign off a full team responsibility
While we all believe ‘quality is a shared responsibility’ in theory, a
majority of project teams still expect testers/QA teams to give the sign
off after a testing cycle.
Sure, testers can assure you for their share of quality but they don’t carry the full burden of product quality and we really need to work on a whole-team approach:
- All team members agree to a common definition of acceptable quality that is measurable and has checkpoints
- Each team is accountable for the quality of their contribution in the product and takes measures to ensure their deliverable meets the criteria
- Barriers or silos between roles are broken and specialists work together as a team to assist one another
- Improve the testing and exploratory thinking capabilities of the full team as a whole
Essentially, make sure your developers and business analysts review test ideas and are responsible for unit testing and user acceptance testing. This ensures that everyone’s on the same page when it comes to product quality and the decision to sign off or release is a shared one.
5. We will measure the right metrics
Too often, Quality Assurance becomes a number game. But pass/fail status or test coverage may not adequately reflect the health of a build.
Leveraging meaningful data not only provides insights and visibility, it can also avert potential disasters. Many QA teams have access to reporting tools and dashboards that show real-time data, but they are either not using it to the full potential or unable to customize it to their preference.
If your team has access to a test management tool, then be sure to use analytics dashboard to understand the status better. Maintaining documentation based on real-time testing makes it easier to track progress, stay on schedule and budget. For Agile teams, tracking this information using test dashboards helps not only current teams but also to detect requirements that are incompatible.
With new-age reporting tools, it has become increasingly easier to share reports, download them in your preferred format or even customize the dashboard gadget’s look and feel.
Unfortunately, many reporting tools are poorly designed or provide too much information and clutter your understanding.
Specifically, choosing relevant and meaningful data to show the stakeholders is key to reporting success. Management must be able to see the analytics or data that gives them insight on product readiness, without having to sift through a lot of other information. Similarly, testers must be able to access reports that help them which test cases or executed and which are not.
Relevant data and meaningful analysis provide stakeholders with an insight into team productivity as well as the status of multiple projects and product readiness for market launch.
Ultimately, the goal for new year resolutions whether personal or professional is continuous improvement. In the context of software testing, every company wants to build winning products in a short timeline and on budget. Working with a new and improved quality strategy along with the right culture, processes and tools have long term benefits for your products and business.