On April 20, 2010, one of the biggest quality assurance failures struck the Gulf of Mexico. The BP Deepwater Horizon rig exploded and dumped 4 million gallons of oil into the ocean causing incalculable environmental damage. How did this happen?
There were failures in multiple systems including the cement around the oil well, misinterpreted fluid pressure tests, and the oil rig’s blow-out preventer. The result of failing to perform adequate quality assurance was catastrophic.
If you fail to perform quality assurance, you may not flood the ocean with oil, but the results could be just as costly. Besides avoiding mistakes, quality assurance can help you ensure that your products always meet client expectations. This requires more than just understanding what clients want, it’s important that quality assurance (QA) teams understand how clients think.
THE FINISHED PRODUCT IS EVERYTHING FOR THE CLIENT
The customer only sees the end product. They don’t think about all the details that went into production, like the manpower or unique technology required to build the product. If what the customer receives doesn’t fulfill their requirements, your team will face problems regardless of the effort they put into the product.
Quality assurance needs to work at each stage of the product — from development to production, and even afterwards, during the the support lifecycle. How can QA teams meet these expectations?
Part of the quality assurance team’s job is to predict what can happen in both positive and negative scenarios. This allows them to act in a proactive versus reactive way to potential project hiccups.
Another way that QA anticipates client needs is by creating feedback loops and running demo meetings (more on that later) with the customer. This helps the team better understand customer expectations and even helps resolve future project issues before they happen. In addition to client thinking, it’s also important for the QA team to think about their own team’s expectations.
THE QA TEAM’S MOTIVATION FOR QUALITY ASSURANCE IS BUSINESS SUCCESS
The business owners and their QA team differ in perspective from the customer, which can affect their approach to quality assurance. They definitely have to worry about client expectations, but must also balance this with business concerns. These concerns include: building a product that is high quality, scalable, easy to maintain, and meets client requirements, all while doing everything in an efficient and timely manner.
Speed is a big concern for business owners because they operate in a competitive landscape. Those who are first to market can gain a major advantage under the right circumstances, and business owners are always trying to get their product out there faster. They rely heavily on the QA team for this because, while they want speed, they also want to deliver a good product. What helps the QA team ensure their product is viable?
The driving force behind strong quality assurance is loud customer feedback. Without it, you don’t know what your clients are looking for. In a sense, customer feedback is always pushing the company to improve, innovate, and move forward — it’s also a crucial part of the quality assurance life cycle.
THE FULL QUALITY ASSURANCE LIFE CYCLE BREAKDOWN
To understand where quality assurance fits in, it’s good to take a step back and look at the software development life cycle. Its stages are: requirement analysis, design, development, testing, release, and support. Even within software development, there are different models that guide development. For example, we have Waterfall, V-Shaped, Spiral, and Agile, to name a few.
Software development models like agile encourage teams to view each project as unique and come up with a customized process that fits its requirements. Others, like Waterfall tend to follow a logical procession and call for a more standardized QA process. How can QA teams proceed intelligently? By starting with the product’s purpose. And, this understanding begins with the essential activity of requirement analysis.
Requirement analysis. This helps the QA team understand what the client wants from the product, their team, and their process expectations. Starting with the purpose has two main benefits: efficiency and quality. Otherwise, the only way to provide proper quality assurance is super comprehensive testing that may test many irrelevant components. This is time-consuming and expensive. In contrast, a better understanding of the project helps you to customize QA to the needs of the project. The good thing is that requirement analysis is a great lead-in to the first stage of the quality assurance life cycle.
1. TEST REQUIREMENTS
After the team receives detailed product requirements from the client, they need to decide how they will measure success and test that the product is fulfilling its core purpose. It’s very important for a QA team to involve the client in these early stages since they have the ultimate say on project success. During the test requirements stage, the team will work closely with the client to answer the following questions:
- How can the product be verified?
- On what device(s) can it be verified?
- What do we need to make a high-quality product?
Once they know how to test whether the product is meeting product requirement parameters, it’s possible to move onto the planning stage.
2. TEST PLANNING
According to Guru99, a technology education platform, a test plan is defined as: “A detailed document that describes the test strategy, objectives, schedule, estimation and deliverables and resources required for testing.”
The test plan serves as a blueprint for all the testing the QA team will need to complete. It answers the important question: What kind of testing do they need to perform in order to get the expected end result?
3. TEST DESIGN
During design, the QA team works closely with the business analyst. The goal is to better understand the purpose of the product and why it may or may not need certain features. Also, this is when the team tests the requirements to find the gaps. These gaps motivate the business analyst to ask additional questions and quite possibly change the solution.
When in the design phase, you need to consider factors such as what you would do if the screen needs to be displayed at full resolution. You want your product to display beautifully across many devices, so it’s crucial that you consider all the different factors that affect how people will interact with the product.
4. TEST IMPLEMENTATION
During implementation, developers get to work. They have access to the requirements, UI designs, and mockups. The only job of QA at this stage is to provide the test implementation tools developers need to get the job done. The tool QA creates depends on the project duration. For example, on a short term project, the QA team may provide something as simple as a checklist.
Test implementation can include several cycles. Sometimes the product passes testing in the first cycle. Other times there are bugs. In this case, QA will talk to the clients, go over the bugs, and come up with a plan for handling them.
After that, the next cycle would be bug verification and then retesting all of the affected areas. One part that is never skipped during test implementation is key functionality. Key functionality is related to the product’s core purpose that’s defined in the testing requirements phase.
One might wonder why QA teams pause and talk to clients after finding bugs. The answer is speed to delivery. While the client and your team want the best product possible, there are also organizational deadlines one must meet. If the core functionality is working as expected, some bugs may not be considered important enough to slow down delivery.
5. ACCEPTANCE TESTING
Usually, acceptance testing is performed by the end-users who typically really know how to use this product. The QA team should keep constant communication with the end-user to see what they expect, the purpose of the application, and how they interact with the application. This helps the team discover as many errors as possible.
The QA team might think of acceptance testing like a warranty period. For example, they may have a month to see how the customer likes the product before officially handing it over to the client. It can be stressful to wait for the client’s first impressions, but it saves a lot of pain in the long run.
Once the product passes acceptance testing, it usually moves from development to support. It’s possible that the team would need to add additional features after this stage, but since they don’t affect core functionality, it can be done at a reduced pace.
6. SIGN OFF.
Quality assurance now has to formally sign-off on testing, signifying that testing is now complete. Sign off is typically the last of the six testing phases. However, client requirements can change the quality assurance process.
HOW CLIENT REQUIREMENTS CAN IMPACT QUALITY ASSURANCE
Client requirements have a big impact on quality assurance. For instance, the client may not want the quality assurance team to spend a lot of time testing; they want the software as it is. Why? A customer may want to use this early stage software to gauge the interest of its clients. If they get some traction, they may decide to improve it afterward, but if not, they may drop the project altogether.
Another scenario is when the client wants a completely polished product. This means that any amount of bugs is unacceptable. This could be an effort to prove to stakeholders that their product will always be polished and justify its production.
A third approach is to balance polish with practicality. For example, the client may put off unessential pages and overlook bugs for the time being to speed up development. This requires that the client really understand their customers and which parts of the product are most important for them.
The QA team’s job regardless of the situation is to advise the client on the path that will give them the highest quality product for their company. The client may just want high-level testing, and quality assurance’s job is to dig deeper and help them see the best path forward.
4 TIPS TO IMPROVE QA TEAM COLLABORATION
If there is one key to a QA team’s success, it would be communication. Each project brings its own unique challenges and needs. Fluid communication is the only way teams can adapt and stay aligned during projects that have major differences. Below are four ways teams can help each member do their best work.
- Daily meetings. During these meetings, the team can answer vital questions that include: What has the team accomplished? What are they working on? And, what is their plan going forward? Answering these questions helps team leads determine project progress and better direct team efforts. It also brings to light the challenges your team is facing while providing the brainpower to help solve them.
- Demo meetings. The purpose of these meetings is to demonstrate the work performed. They help both the development and client team create alignment on where the project is headed. These meetings can also provide a much needed morale boost during long projects.
- Protect company culture. People spend one-third of their time at work. This is the place the team spends the majority of their time, and it’s important that they get along with their coworkers. If they don’t want to be there, it will reflect in the quality of their work.
- Retrospective meetings. These meetings are a great tool to ensure that your team is heard and feels valued. During a retrospective meeting, you might answer questions like: What was good? What needs to improve? The whole team should be involved in this discussion not only talking about the bad but also sharing solutions. Creating an atmosphere of collaboration, where feedback isn’t a bad thing, makes it easier for the development and QA team to work as one.
IT TAKES AN ENTIRE TEAM TO BUILD DIGITAL PRODUCTS
The quality assurance team that understands the business’s goals is better equipped to help create products that beat client expectations. The key is to grasp the value the product will bring to their client’s business and set client expectations accordingly. But, building a product is a team effort and not just the work of the QA team. By creating a culture of collaboration, teams work more efficiently, solve difficult problems, and enjoy their work.