Why should I include quality assurance in my development process?
This is a question that a lot of people ask when they’re considering developing a software product. What is the real value of having a good QA team collaborating during development? Isn’t that a waste of time? Well, our experience allows us to ensure that it is definitely not!
There are lots of reasons why QA is an important part of the development process.
The Function of the QA Team
Having a QA Team involved in your software development process allows you to prevent bugs or defects in the application. But that’s just the beginning. There are many reasons for having a QA team:
The QA Team can help save money, finding issues before they reach production. Correcting an issue is easier and cheaper during the early stages of development. And normally the cost of having a QA team is lower than the cost of experiencing failures during production.
The QA Team can help guarantee a great User Experience. The worst scenario is when a User tries an application and it fails. Even if the application has the best design, and it was made to solve a more complex task, nothing matters if an error occurs. And it is very hard to reverse a bad image.
The QA Team works collaboratively on the team project, ensuring not only that the application is free of bugs, but also checking that it does what it was supposed to do. Sometimes there can be misconceptions during coding, and having a dedicated person/s reading the definitions and checking that the application’s behavior matches with them adds real value.
The QA Team can collaborate to improve the application, proposing enhancements or identifying potential features to include. A good QA engineer is curious and understands not only what software does, but also how it does its job. And the end-to-end knowledge of the software product gained by testing every feature of the application exhaustively, generates a unique point of view. QA has an inclusive vision, which is very useful.
How We do it: Our Recipe
At Making Sense, we work with Agile Methodologies. QA activities are no exception. Our QA Team works from the beginning of each project creating a QA Plan to guide the testing and select the strategy and tools that best fit with any project.
We get involved from the early stages of the development process, since this allows us to make adjustments on time. This also helps us to avoid having small bugs turn into big problems. If you test in the latest stages of the process, you risk finding major problems that cannot be addressed without a comprehensive redesign.
Our QA Team works from the start of every Sprint, collaborating with User stories validation, reviewing all requirements to ensure that acceptance criteria are complete and clear. Thus, there are no gaps in definitions.
The Making Sense QA Team participates in planning, helping with estimations. Sometimes the User stories are simple from a development point of view but complicated from the testing perspective. Having QA estimations can help the team to be more accurate with time planning, so we can reach project goals on time.
Depending on a project’s needs, the QA team defines and executes Test Cases or Test Scenarios, where we make sure that all possible paths in the application are covered. The objective? To have the best product as possible at the end of each Sprint.
As we said, a good QA engineer is curious and knows all the conditions under which an application may fail, even those less probable or so complicated that nobody else can imagine them.
Automation testing is another important concept. Is the use of special software to control the execution of tests and the comparison of actual outcomes with predicted outcomes. We recommend starting the automation process during the design phase of Test Cases.
In this way we can have an automated suite of test cases early on in the project, making regression testing faster and efficient. Automation tools are selected according project and team characteristics.
The QA Team must be patient, persevering and flexible, because the application can change a lot from the beginning to the end of the project. Tests need to be updated regularly, and regression has to be executed periodically.
At the end of Sprint, our QA Team generates reports and metrics to gain insight into the product so far, and where the teams needs to adjust in order to make improvements. Retrospective meetings are very useful for that purpose, where the whole project team participates.
Overall, having a QA Team involved from the beginning is very important. The interaction between team members provides a competitive advantage in the final result. Being part of the software development cycle and its contribution can make the difference between a product’s failure and its success. Our QA Team performs quality work, so you end up with quality products.