QA importance in the software development lifecycle

QA importance is usually a hot topic on budget meetings, here are the reasons why you MUST have QA for your product!

QA importance in the software development lifecycle

QA is one of the most important additions to a dev team. It is your insurance that everything will mostly go right as opposed to mostly going wrong.

Which QA engineer do you need?

We have usually two main types of QA Engineers

  1. Manual QA engineers
  2. Automation QA engineers

Manual QA engineers

Who focus on manually testing a feature being developed, running regression tests, and usually signing off that a bug or a feature is ready to be deployed.

Manual QA engineers usually test new features and edge-case scenarios that result in bugs that were not accounted for. They are the best people to have in a team that has a brand new product, especially an MVP.

Not only Manual QA's will look at the expected behavior and acceptance criteria, but also provide feedback to adjust the UX workflow

Here are some overly simplified scenarios:

  1. Good Product Team + Good Developer + Good QA = Good Result as this is the best-case scenario
  2. Bad Product Team + Good Developer + Good QA = Good Result - as the QA and Dev team will make something work
  3. Bad Product Team + Bad Developer + Good QA = No Result - as the QA will block the release and at least you will not have a bad product out there
  4. Good Product Team + Good Developer + Bad QA = A buggy product with a lot of edge cases handled.

As you can see the QA importance impacts directly the quality of the product

Automation QA engineers

Focus on creating automation tests on most of the core functionalities of your product. This is usually done at a point of your product lifecycle when you do not expect major changes. We focus on automation when the API (or Backend structure that communicates with the Front end) is final and you do not expect changes.

Automation QA engineers are expensive and need to be properly managed. Make sure to have the necessary structures in place before hiring them.

When should you engage QA?

Due to the QA importance in the development workflow, there are three main points where I recommend QA to be engaged

  1. During the technical review of a new product
  2. During the development workflow
  3. Before you release the product

During the technical review of a new product

The QA importance in this step will help you get faster results on the possible edge cases raised. Usually, a QA engineer knows your workflows better than anyone else. So if you are adjusting something or adding another feature to an existing workflow, the are amazing resources to utilize.

New product feature workflow [for dummies]
Not saying you are a dummy, but sometimes we don’t know where to start. This is where to start to add a new feature to your perfect product.
Here is a good resource on full details of a new product feature workflow.

During the development workflow

Rule of thumb: every task that the development team does need to be vetted by the QA team. Can't stress this enough on the importance of the QA team here.

When testing an isolated bug or a feature, there are so many edge cases to be considered - and especially for a customer-facing product.

Before the release of the product

This is the core component of a regression test. Your QA team should test the whole product before a new version is released.

Especially today, with the popularity increase of microservice patterns in BE architectures, where nothing is any more tightly coupled, the bigger your product gets, the more you will need to run rigorous regression testing.

Regression testing - Wikipedia
The best resource of regression testing is this Wikipedia article

So now tell me, is the QA important or not?