How to set up QA processes from scratch
Shreya Bose, Technical Content Writer at BrowserStack - June 22, 2020
As a product starts to gain traction, one can’t compromise on thorough testing. As more people use a website or app, any bugs that might escape into production will be more visible, and more likely to get negative reviews for the product from end-users.
This is when stakeholders have to start building a QA team. It usually starts with hiring a senior QA professional and building a QA team. This article offers a few guidelines for this phase, by detailing how to set up a Quality Assurance process that fulfills the organization’s objectives and requirements.
Common Problems in QA Process
When establishing the QA process, a few issues may come up:
How and where to store test documentation?
Each QA engineer usually works on multiple projects simultaneously. In that case, it’s important to categorize and store test data and documentation securely. Initially, something like Google Drive works, but as the number of projects and team members expands, management will be better off transferring the information to a more professional test management tool.
How to keep training new QAs?
As a QA department grows, newly hired personnel have to be trained and informed about the processes, ongoing projects, and other data relevant to the team. Handle this by creating some sort of knowledge base (perhaps a cookbook of sorts) which would contain how the particular QA team works, what tools it uses, common bottlenecks, best practices, and the QA flow followed on projects. Once a new QA engineer joins, they can find all the information in one convenient location. However, remember to keep adding new information as QA processes keep evolving.
How to ensure comprehensive testing?
While working on multiple projects, testers may miss out on testing certain features or functionalities, thus allowing bugs to pass into production. To prevent such omissions, create a practical checklist that details exactly what to test, check for, and verify.
How to account for personnel changes?
Let’s say a QA is working on a big project, and they need to go on leave in the middle of it. Now, the project has to be transferred to another QA engineer which might not have any context on the project or the software structure.
Instead of having to go through the entire project every time someone new comes on board, it’s easier to just create a map detailing the structure and flow for each project. If someone new is involved in a project, they simply need to refer to this map in order to understand the product as well as the methods required for testing it.
Why QA Processes should be implemented?
Quality Assurance for Software Testing exists to ensure that the product is built correctly without too many iterations. A worthwhile QA process clearly defines requirements, gives testers a thorough understanding of the features, and gives them a blueprint for how to progress.
Note that testing should not follow development, but should support it. Ideally, testing activities should occur in parallel with development – in other words, test code every time it is committed to the repository rather than waiting for the entire website or app to come together. In other words, one must execute the QA process in Agile ways.
Before implementing a QA process, one needs to understand the stages that comprise a thorough, inclusive Quality Assurance pipeline.
Stages of QA Process
1. Analyze Requirements
It costs more to fix a bug that has been detected during testing, as compared to just preventing them at the stage of requirements design. QA professionals should be involved in the analysis and definition of software requirements, both functional and non-functional. QAs must be offered requirements that are consistent, comprehensive, traceable, and clearly marked. This helps the QA team design tests specifically tailored to the software being tested.
2. Plan the tests
The information gained during the requirements analysis phase is used as the basis for planning necessary tests. The test plan should comprise the software testing strategy, the scope of testing, the project budget, and establish deadlines. It should also outline the types and levels of testing required, methods, and tools for tracking bugs and allocate resources and responsibilities to individual testers.
3. Design the tests
At this stage, QA teams have to craft test cases and checklists that encompass the software requirements. Each test case must contain conditions, data, and the steps needed to validate each functionality. Every test must also define the expected test result so that testers know what to compare actual results to.
If an automation strategy has been defined in the test scope, this is the stage for creating automation testing QA scenarios.
This is also the stage for preparing the staging environment for execution. This environment should closely mirror the production environment with regard to the specifics of hardware, software, and network configurations. Other characteristics such as databases, system settings should also be closely mimicked.
4. Execute Tests and Report Defects
Tests start at the unit level with developers performing unit tests. Then, the QA team runs tests at API and UI levels. Manual tests are run in accordance with previously designed test cases. All bugs detected are submitted in a defect tracking system. Additionally, test automation engineers can use an automated test framework such as Selenium, Appium to execute test scripts and generate reports.
5. Run Re-Tests and Regression Tests
Once bugs have been found, submitted, and fixed, QAs test the functions again to ensure that they didn’t miss any anomalies. They also run regression tests to verify that the fixes have not affected the existing functions.
6. Run Release Tests
Once developers issue a release notification that details a list of already implemented features, fixed bugs, recurring issues, and limitations, the QA team must identify the functionalities being affected by these changes. Then, the team must design modified test suites that cover the scope of the new build.
The QA team must also perform smoke tests to ensure each build is stable. If the test passes, then modified test suites are run, and a report is generated at the end.
Set up the QA process for Agile environments
Use a few simple methods to align the QA process with Agile development principles:
1. Make QA result-oriented
Agile development methods prioritize smaller goals and targets, to be handled in smaller increments with greater speed. To fit into this practice, QA processes must follow the same tactics – faster, more dynamic, and more focused on specific objectives.
2. Prioritize transparency
Transparency benefits any developmental approach, but it is especially necessary for procuring Agile success. Testers have to be very clear on what the software is expected to do, what features to test in each sprint, and what “good results” look like. This clarity helps teams collaborate, test faster, and deliver results within short deadlines.
3. Make QA an ongoing activity
Do not postpone testing until the end of the development cycle. As mentioned before, tests need to take place after every code commit. It must happen throughout each sprint, in a way that enables teams to identify issues early on.
4. Implement DevOps
DevOps applies Agile practices to QA and Ops teams, streamlining build, validation, deployment, and development of software. It eliminates conflicts between development and QA teams, along with multiple other advantages:
- Provides greater control over the production environment to developers
- Improves the frequency of deployment
- Lowers failure rate of new software releases
- Improves mean time to recovery
- Increases speed and quality of released software
- Achieves faster time to market
Tools Required for QA
Every QA team needs the right tools to ensure that they are testing software comprehensively, and aren’t missing bugs that users might find in production. To start with, let’s talk about testing on real devices.
No matter the kind of test being executed, QA teams must have access to real devices to test on. There is no way to release a website or app to the public without testing it in real user conditions. Whether it’s manual testing or automation testing, real device testing is non-negotiable.
In the absence of an in-house lab containing the latest devices, a cloud-based option provides the necessary infrastructure. Additionally, the tool should be able to support the efforts and activities of teams of any size without compromising speed or accuracy of results.
BrowserStack’s Live for Large Teams allows the QA team to add as many members to a plan as required. In fact, teams can add unlimited members to their planks. Every tester can run simultaneous tests on 2000+ real browsers and devices – including the latest devices and latest versions of leading browsers.
- No interruptions or wait times
- Effortless team management with in-built facilities to create sub-teams, allocate licenses, and enforce access control across teams.
A few other tools that help with running QA processes smoothly would be:
- Google docs — Can be used to store project documentation such as test plans, checklists, test data while making it easily sharable among individuals and teams.
- Jira — Useful for bug tracking, raising tickets for tasks, and assigning tasks to individuals.
- Zeplin — Useful for sharing and receiving design documentation from designers.
- Selenium – Ideal for automated testing of websites.
- Appium – Ideal for automated testing of apps.
Setting up a QA team can be challenging, especially for a new organization. Doing it without some kind of pre-conceived structure exacerbates the challenge unnecessarily. By detailing the QA pipeline, this article seeks to offer that clarity so that QA managers can set up their teams quickly. They can also gear up their teams for maximum efficiency, quick project completion and visible success.