by Ivanna Kyryk | October 13, 2017 2:00 pm
In conditions of dynamic markets and fast-changing industries requirements, the release of new or updated software products should be rapid. Otherwise, a product will be presented to the end users too late and it will be unable to compete with the other solutions already available at the market.
To remain competitive and ensure a fast solution release, the Agile methodology is implemented. What are its main principles? According to the Agile Manifesto, there are 12 of them. I’d like to single out the following ones: early and continuous software delivery, accommodation of dynamic requirements, close collaboration within the project team and face-to-face communication.
Within the traditional software development, quality verification is conducted when a product is ready – all features are already implemented. The testing team prepares test cases to cover the core system functionality and detect critical issues that may block a proper operation of a system. In this case, the quality of final product depends on QA department skills and experience.
But the situation is totally different if we’re talking about Agile testing. The matter is that the development procedure is divided into several sprints that include the realization of certain functionality and its testing. In other words, the project team creates a product gradually by providing the ready part of functionality after each sprint.
For the Agile development projects, the quality of a final product is the responsibility of the whole project team including testers, developers and managers. In case of Agile testing, a QA team[1] is integrated into the development procedure. Testers should be aware of business purposes, functional objectives and further planned activities.
In order to get the correct vision of the project and its business goals, testers should be present at every meeting. Having a proper understanding of the project objectives, testers prepare the Test Plan[2] on the basis of already available project documentation and information provided during the meetings. So they are able to write the Test Plan for the iteration having the vision of a final product.
As I’ve already said, the system functionality is implemented step by step. Each separate iteration includes planning, tasks definition for the next sprint, distribution of the areas of responsibility. The QA team prepares the documentation for that part of system functionality which will be developed during the sprint.
To write proper test documentation, QA specialists should closely collaborate with the developers and know how the system is expected to work. Based on the received data, QA team prepares the test cases. During the execution of test cases, they may be changed and modified according to the specifics of system operation in the real conditions. No predictions are acceptable, the testers check the real system behavior.
At the very end of a sprint, the demo of the product functionality is presented to the customer. The QA team provides the summary of quality assessment. It can be in a form of presentation that will contain the number of test cases, detected bugs, their severity, area of appearance and triggering conditions. The analysis will show the developers the weak areas of system and help to reduce the issues for further iterations.
During the next sprint, a new functionality will be developed and checked according to newly prepared test documentation. In case if some tests repeat, they can be automated to save time. For agile testing projects, the implementation of automation principle is rather widespread practice.
When several functionalities are ready, they are combined and the release takes place. During the product release, all activities with the code of the functionality prepared for release are stopped. This is called code freeze. The QA team performs the full verification of the system and open all detected issues. Only after the checking is finished, the developers proceed to bug fix.
Being aware of business objectives and project goals, testers still verify a product from the end user’s perspective. They take into the account the product security, performance, admin panel, configuration and environment if it is the application. But, unfortunately, testers do not have enough time to conduct a full checking of the system.
After the development version of the product is checked, testers proceed to the post-release verification – checking of the production version. It starts with smoke testing, a fast checking of the system core functionality from the end user’s perspective.
To ensure a smooth workflow, the control over the documentation and tools, e.g., bug-trackers and task management systems, should be performed. Manager, testers and developers interact via different systems and tools that should ensure flawless activities. Before the project start, they should discuss and set certain rules and principles for a proper use of bug / task tracking systems. For example, the rule of extended comments will prevent misconceptions. The tester, as well as the developer, cannot close the issues adding the comment “Not relevant”. He should obligatory add at what conditions, why and how long the bug is not relevant. Short comments or their absent cause the loss of priorities and detected issues.
On Agile testing projects, the transparency of plans and processes, especially parallel ones, is a must. Proper prioritization gives the grounds for correct planning of testing activities and defines what system aspects should be checked at first. In this case, some difficulties may be caused by remote QA team or if the development is conducted on several platforms simultaneously. But the project
Knowledge Base is an effective way to minimize the risks of misunderstandings and have all project data gathered in one place. For newcomers, this is the way to get acquainted with the system functionality and specifics of its operation. The tester can update the Knowledge Base, for example, add the information about new features.
In order to ensure a smooth workflow on Agile development projects, testers and developers should closely collaborate and shared responsibility for system quality.
Source URL: https://blog.qatestlab.com/2017/10/13/agile-projects-testing/
Copyright ©2024 QATestLab Blog unless otherwise noted.