When working on software, there might come a moment when you doubt whether it’s enough. These reservations might become a hindrance if your team is a part of a startup or smaller project with no deep software testing expertise. But if you’re hesitant, it means you’re doing something right. It means you care about the quality.
Today, we discuss two types of testing that help you gain confidence in your work: acceptance and production verification testing.
Acceptance testing evaluates whether the software meets specified criteria derived from project documentation. It aims at validating the product’s alignment with requirements and consumer expectations. Let’s review what it does in practice by considering different types of acceptance testing.
Essentially, acceptance testing is like checking the boxes of your plan for the day. If you’ve completed everything – success. If you’ve missed something, well, you’ll have to come back tomorrow. In other words, acceptance testing is assessing what has been done so far and whether it was done right.
So, when you run it, you can:
Acceptance testing usually takes place in the later stages of the SDLC. You’d want to run it after systems tests and before deployment. Typically, its execution is seen as the “final checkup”. But it can also:
Hence, acceptance testing sometimes shifts from being the last touch-up to being a qualification tool. And so, you might think, “How is it different from prior testing phases?” Acceptance testing doesn’t really “go over” prior tests, it centers on users’ points of view.
For instance, system testing focuses on technical aspects of a product (does it work correctly?). Acceptance testing is about the people (does it work correctly for the consumer?). For the latter, think of consumers as everyone related to the software. Remember the types of acceptance testing? Consumers can be:
Briefly, these tests confirm that the product is “the right thing” for everyone involved.
Production verification testing (PVT) affirms that the product meets design and performance requirements and reliably functions in a production environment. It validates the product’s readiness for mass production or market release.
You may be a bit confused at this point, “Isn’t PVT the same as acceptance testing then?” We’ll cover their core differences later, don’t worry. But for now, think about these two like this:
So, production verification testing aims to evaluate how the product works in a live environment when subjected to real-world scenarios.
Like acceptance testing, you’d conduct PVT after the initial product development and design phases. But you can also run it as a part of:
It may depend on the project’s complexity. Yet, generally, it takes place just before the software enters full-scale production. It allows you to:
Now, to make things clearer, let’s review how exactly acceptance testing and PVT differ and where they overlap a bit.
Acceptance Testing | Production Verification Testing |
Is a part of the development stage. | Is the first official production run that usually takes a couple of hours. |
Is run in a simulated production environment. | Is run in a real, live environment. |
Occurs at the end of the software development lifecycle before deployment. | Takes place during the product development lifecycle, before mass production or market release. |
Verifies that the product meets the designed acceptance criteria. | Makes sure that the final build is functioning correctly in its final environment. |
Focuses on user-specific functionality, usability, and alignment with business goals. | Verifies the product’s design, reliability, and production processes. |
May involve end-user testing to obtain authentic feedback. | Needs the QA and development teams to create test accounts and data. |
To summarize, acceptance testing centers on hitting all the checkmarks, and PVT focuses on evaluating how everything works live.
So, how do you know that your product is release- and mass production-ready? With acceptance testing and PVT, you just need to pass each criterion, which, of course, depends on your project. In other words, not all criteria are the same. That’s why we’ll focus on universal readiness denominators.
Based on acceptance tests, your product is ready when it:
All these signify that, indeed, the right software was built and that each user is likely to be satisfied with the result.
And regarding PVT, your project is ready for mass production when it:
These mean that your software will be able to handle the wilderness of live usage in the long term.
Failed acceptance testing means the product won’t be satisfactory to consumers. And unsuccessful PVT means users won’t enjoy the product to the fullest and that it may be short-lived. If you find certain criteria unfulfilled, you might need to take a step back.
For example, during acceptance testing, you can find:
Any of these would mean that the developers and QA engineers need to refine the product further and adjust their testing strategy for better coverage. So, acceptance testing determines the quality of the product and defines the effectiveness of your QA resources.
And with PVT, you may come across:
In these cases, you’d need to conduct root-cause analysis and fix any issues before committing to mass production. It’s like releasing a sanctuary animal into the wild. Even if you simulate all natural conditions, you never know what might happen or go wrong. So, you’d need to monitor it, help it adapt, and see what could’ve been done better.
Both acceptance and production verification testing are highly personalized. You probably won’t find recommendations that suit your project fully. But that’s completely fine. In software development, there aren’t really any one-fits-all solutions. So, treat every best practice you come across as something that has proven its worth and as a guideline rather than a rule.
Frankly, the one “best practice” that is actually the best practice is finding the right people for your project. Your team makes all the difference.
You may be inclined to view acceptance and production verification testing as “leftover” checks. With so much work done already, why bother too much now? But they are like the final exams for your software. Sure, you’ve passed the monthly and mid-term tests. But the finals are the true proof that you’ve learned something.
Acceptance testing and PVT demonstrate that your efforts were directed properly, your team realized their potential, and your project is indeed its best version at the moment. Most importantly, passing these two means that you and your product are now ready for greater things.
A flimsy UI doesn’t lead to customer frustration, negative reviews, and high churn. When people…
Good communicators tend to do much better in life. And this applies to software as…
You can’t know if anything is wrong until a problem pops up. That’s what someone…
What is the root of quality in software? A good budget, a smart strategy, customer…
We all want change sometimes. And wouldn’t it be perfect to have a person who…
You need to stress out your software. People like to avoid pressure. But it’s the…