Atlantbh QA teams implement Quality Assurance methods in order to meet high-quality standards. Besides detecting issues and fixing them during the development phase, teams also implement quality control and issue prevention.
Atlantbh delivers products by using the Agile methodology, meaning that QA teams also incorporate agile practices – they implement the Agile testing methodology. Agile testing principles are incorporated in manual testing, automation testing, and continuous integration, which together define a well-rounded quality assurance process.
The different stages of the Agile process require the following QA actions:
During development, the QA team discusses and reiterates through the application business flow, to make sure that no new features break the expected user experience. The team actively participates in the definition and planning of new features, and always suggests possible outcomes for proposed technical solutions, in terms of how it would affect existing features.
The testing of the new application feature is thoroughly planned. After feature analysis, the QA team defines a happy path and documents it as an acceptance criteria. It is further used by the developer as a guideline while writing and testing new code. A list of all other possible cases is also defined. Special focus is on defining possible regressions – effects that new feature/s can have on other existing features. This significantly decreases the number of unexpected issues and improves the overall quality of the application.
During each development iteration (sprint), all new features are tested manually as soon as the code is written and reviewed by the rest of the team. Different test cases are checked using several testing methods – regression, exploratory, integration, security, sanity testing, etc. All bugs and possible improvements are documented using test management/collaboration/Agile board tools. Bug and improvement reports are detailed and comprehensive, including all relevant information, such as steps to reproduce, application log details, screenshots, and all other technical specs that could help in bug fixing and application improvement.
Core application functionalities, complex business flows, repetitive and error-prone application modules are automated using a test automation framework that is compatible with the type and scope of the developed application. This gives more space to the QA team to focus on testing complex test cases, rather than reiterating through the application to check if nothing is broken by new code changes. The QA team delivers clean, reusable, and efficient test automation code, and focuses on coding best practices. The automation code is reviewed using the same processes defined for the dev team. If the existing testing framework does not give enough flexibility or desired functionality, the team develops a custom testing framework.
The Agile development methodology puts a high priority on automating processes. Therefore, the continuous integration paradigm is part of each Atlantbh team. By using CI tools it is possible to automatically deploy new code, and run unit and automation tests against new code on a daily basis. Possible regressions and underlying issues are detected as soon as new code is available for testing, giving developers more time to investigate and fix such issues. The QA team creates daily test execution reports and uses them during their daily stand-ups to inform the team on current application health and code quality.
All issues and improvements that are found through automation or manual testing are discussed during daily stand-ups. They are prioritized and analyzed by taking time, the velocity of the team, and bug severity into account.
By the end of each iteration, a deliverable is presented to clients through a demo. This gives clients the opportunity to provide feedback on new features, and to get suggestions implemented in the same iteration. Client feedback is analyzed by the QA team also, and valid conclusions are incorporated in QA processes improvement.
At the end of the sprint, pre-release actions are conducted by the QA team. It often means going through the quality assurance checklist previously created by the team, all in order to assure that client expectations and requirements are met with the new deliverable. Such checklists are continuously reassessed and updated, using information from all previous development phases as an input.
After each release, the team conducts a sprint retrospective. Besides outlining the good things that happened during the sprint, they also discuss the challenges and obstacles faced. Actionable items are defined for the letter. The QA team also collects feedback from the team regarding the quality assurance process, and continuously adapts good practices that are leading to higher product quality.
Combining these defined actions, the QA team continuously assures high application quality, with a focus on continuous improvement, fluent client feedback loop, issue prevention, and quick issue resolution.