Requirements elicitation is the process of researching and discovering functional and non-functional product requirements. During this step, quality assurance engineers review product specifications and product designs (if they already exist) and identify any problems with the requirements. This process allows a team to make sure all requirements are clear, traceable, and testable.
After gathering and analyzing requirements, a QA team should make a list of bugs or improvements related to those requirements.
A test plan is a document that a QA team creates in cooperation with the client and their development team. When creating a test plan, a quality assurance team determines the scope of testing, necessary resources, testing environments, testing objectives, main suspension and exit criteria, test deliverables, and a testing schedule.
A test plan is one of the main documents required for a successful QA testing process. It allows you to:
Make sure the final product satisfies your business needs. A test plan includes all product requirements and lists testing activities to be undertaken to ensure that the product meets all of those requirements.
Get better control over the testing process. The client and QA team should discuss all deliverables the team has to provide the client with, and agree on communication channels and meeting frequency. Getting regular reports and holding frequent online meetings allows a client to keep up with the pace of their QA team and be aware of their current tasks.
Establish realistic time frames. A QA team estimates the scope of work and includes it in a test plan along with the time frame, cost, and schedule of all testing activities.
Once the scope of work and all requirements are clearly set, the QA team can proceed to designing test cases or checklists.
Test cases describe test inputs, execution conditions, and expected results for each test to check the functionality of a software product. Test cases allow quality assurance engineers to perform a sequence of steps to ensure that a software product is bug-free and that it works as it’s supposed to from the end user’s point of view.
A checklist is a simplified variation of test cases that covers all possible actions a user can take within a piece of functionality. In comparison to test cases, checklists are less time-consuming to create and implement.
Here’s an example of a checklist that the Israel IT QA team created for one of our projects. Checklists allow you to save time but are effective only for small teams and small projects, while test cases are more beneficial on larger projects with bigger teams.
Need to add an example
When test cases or checklists are ready, QA engineers start checking functionality at the API and UI levels. Manual testers run test cases or go through checklists while automation testers use special frameworks like Selenium, Cucumber, RSpec, and Capybara to run automated test scripts.
While running test cases or completing checklists, quality assurance engineers add information about every bug and the conditions under which they were detected to a defect tracking system. This way, developers can start fixing bugs as soon as possible.
When developers fix bugs, quality assurance engineers check all fixed defects one more time. Testers have to make sure a bug is fixed and that a particular piece of functionality works seamlessly.
Another check that QA testers perform during this phase is regression testing. Regression testing makes sure bug fixes haven’t caused new bugs or distortions in existing functionality.
After each development iteration, the QA team provides a test report with a list of all performed testing activities as well as final test results.
Regular reports allow clients to not only control the testing process but also get a better picture of the current product quality and make informed decisions about whether it’s time to release a product.
P.S.
Best practices:
Project QA Activities Best Practices