Quality assurance (QA) and testing bridge technology and user experience design, giving a big picture understanding of projects, the systems behind the solutions, and the customer’s relationship with them. It adds value to the project’s process, not just by ensuring that they meet and exceed our standards of excellence but also by defining and maintaining the focus of the project team through the entire lifecycle.
Earlier this year, we spoke with ImageX’s Quality Assurance Lead, Emil Zimmerman, to discuss his thoughts on the QA process, best practices, the role of our QA team, and how ImageX delivers the “wow” factor for our clients. In this blog post, we are going to explore what this means for our clients -- what QA is, and what they should be expecting from their agency during this phase of the development process.
QA versus Testing
QA and testing are similar tasks that are closely related, but that have a primary difference that separates them:
- QA measures the quality of the product, recommends improvements, and ensures that it meets the customer’s requirements and standards throughout its lifecycle; and,
- Testing is more focused on finding ways to break the product so that any defects can be repaired before it is released to the customer.
The American Society for Quality defines QA as “the planned and systematic activities implemented in a quality system so that quality requirements for a product or service will be fulfilled.” QA includes the activities and management processes that are implemented to ensure that the product, service, or project delivers to the customer’s required quality level. It’s process driven and focused on the development of the product, delivery of the service, or project.
Testing, however, operates under the assumption that there are always more bugs to be found -- that no product is ever perfect, and that it’s the tester’s responsibility to expose any imperfections. A good tester will continually think of new ways to push the product’s limits, including new interactions, potential weak points, and unorthodox ways that users may use the product. This shifts the focus of a truly effective testing team from fixing bugs reactively to proactively identifying new ways and circumstances under which the product may fail.
QA ensures that the project’s objectives are being met and testing identifies defects in the project so that they can be corrected.
What to Expect of Your Agency’s QA Team
Global IT solutions firm, Softtek, shared some of their best practices for an effective testing and QA implementation for their clients, which can be easily applied to most products, services, or projects. Here are some of the highlights:
- It is critical that a process that is robust and certified by experts in order to initiate the QA culture is defined. The process will serve as a guideline that should iterate evolve over time with new learnings.
- Managerial commitment should come from the top down to ensure that each level is aligned. Everyone must be aware of the value that QA and testing add to the business and its clients. The process, therefore, must account for the value of the solutions that it offers to the organization.
- As part of the development, QA, and testing processes, it is necessary to define deliverables, such as requirements, a testing plan, and testing cases. These will guarantee that testers can effectively follow-up throughout the project.
- Both the use of tools for tracking and managing defects, as well as the creation of test cases and execution, are essential for increasing the maturity of the QA and testing process. The process may begin without tools, but they are a requisite for increasing execution maturity.
- Developing and creating metrics to track quality in its current state, as well as to compare any improvements with previous versions, will help increase the value and maturity of the testing process.
- Implementation of appropriate testing environments that allow developers to reproduce the system execution in production environments is crucial to the creation and execution of the corresponding test cases.
- The testing environment required for day-to-day operation should provide or ensure availability of the necessary data to enable the corresponding test execution. Even if you have developed the appropriate testing environments, developers need to access specific data required to execute the associated test cases. And like any other production environment, the testing environment should properly track changes in configuration, ensuring not only controlled results, but that the tests are run in environments that closely resemble those of the real production environment.
- It is critical to have an awareness process that includes management commitment at each and every business unit and for associated developers. The goal is to demonstrate that testing activities add value to their daily work.
Quality Assurance Lead, Emil Zimmerman, shares his thoughts on the best practices that we employ here at ImageX:
“First, you must define what quality means. That’s the first question that every QA expert should ask -- what does it mean for us and our clients, and then you can find that middle ground where exciting things happen. Software QA shares many of the same goals of other industries; whatever applies to good quality elsewhere will here as well. To me, measuring great quality is simple -- it’s when the client says “wow”. That’s always the best metric.
“Being flexible is important. You need to adapt. If you try to stick to a particular method, you risk losing sight of the forest for the trees. You’re often working with a moving target, especially in an Agile environment, so you need to be aware of the big picture at all times and maintain that focus.”
Incorporating QA into an Agile Workflow
With Agile processes changing traditional workflows, the QA and testing phases aren’t always necessarily the final steps before a product, service, or project is released to the client. The continual development of minimum viable products (MVP), their iterations with each sprint, and their releases at the end of each sprint means that QA and testing (as well as every other function) is an ongoing process and the results of each iteration will inform each subsequent one.
Focusing on each individual user story and testing against its acceptance criteria helps to involve the client in the process earlier and more often, to the benefit of each release. And any bugs that surface during this process can then be tracked as defects and included in subsequent sprints.
The primary goal of every product, service, or project should be to add value for the client. To ensure that this value is delivered, the QA process measures against the client’s requirements and then the testing process exposes any defects that need repaired. And when the two work in tandem, integrating with the workflow throughout the full lifecycle, that value is placed at the forefront of delivery.