This article discusses how to organize software quality assurance in line with Agile principles to help software development team tackling everyday software testing tasks.
Author: Nikita Klimov, Senior QA Engineer, ADP Inc.
In the work hierarchy of an IT company, a senior QA holds the responsibility for testing processes. This means that such specialists not only solve complex tasks related to software testing but also collaborate with various professionals, including developers, product owners, business analysts, and stakeholders. Seniors also supervise a team of less experienced testers – juniors and mid-level specialists.
Thus, the role of a senior QA involves not just software testing but also communications, strategic process management, team coordination, and more.
A system of ideas, methodologies, and principles – Agile – helps establish effective project execution.
Testing at Various Stages of Software Development
The full work of a QA engineer starts at the stage of drafting technical documentation: the senior not only tests and checks the software requirements for errors but also interacts with the product owner to define the business requirements for the software.
Moreover, a senior develops testing scenarios at all stages of development, including checking the MVP (Minimum Viable Product) – the initial version of the product that can attract early users.
Essentially, testing is the verification that the real and expected program behavior aligns with the parameters outlined in the technical specifications. It begins in the early stages of development to prevent potential issues that could increase the software’s cost. Functionality checks also help identify use cases that were not foreseen during development.
Main Testing Stages:
- Product Analysis and Requirements Review: Senior QAs verify software requirements and functional specifications to ensure they are clear, consistent, and testable.
- Planning: A test plan is developed – a document that describes the entire testing process with goals, timelines, and roles assigned to each team member. Test cases – step-by-step task descriptions – are used for juniors or mid-level testers.
- Test Scenario Development: Test scenarios with test cases and checklists prepare the environment for manual or automated testing.
- Software Testing: During the testing phase, the team led by the senior QA conducts various checks to detect code errors.
- Retesting: After fixing bugs, functionality is retested. Regression testing ensures that the software still works correctly after modifications.
- Completion of Testing: Once all planned checks are completed and issues fixed, a report on the results is compiled, reviewed, and approved by the senior QA.
At different stages of development, software undergoes testing at several levels, forming the so-called “testing pyramid.”
This pyramid includes:
- Unit Tests: The senior QA checks the performance of individual code modules (if developers do not handle this in the company).
- Integration Tests: The senior QA ensures that the software modules work together successfully. This includes testing the code’s interaction with databases and third-party services.
- End-to-End Tests: Full project testing with a check of specific user scenarios.
- UI Tests: Verification of software interface elements for design and usability based on prescribed user scenarios.
Agile Principles in QA Testing
One of the most crucial skills of an experienced, truly professional Senior QA is the ability to balance the business objectives embedded in the software with its quality.
Agile principles – a methodology for flexible, comprehensive team management during software development – help senior QAs in this endeavor. Agile has given rise to specific methodologies such as Scrum, Kanban, and Crystal. Although these approaches vary, they share common principles of team involvement, readiness for retesting with any change, and daily software analysis based on client feedback.
QA in Agile is based on several key principles:
- Early-Stage Testing: The earlier testing begins, the more likely the software will be bug-free and ready for release on schedule.
- Code issues identified in the later stages are typically related to the backend, resulting from testing done after development is completed. To avoid this, it is better to involve the QA team under senior leadership as early as possible – at brainstorming and planning stages.
- Reports: In Agile, testers must prepare reports at the end of each sprint – a work cycle where length varies by company, based on the project requirements and team processes. Generally, each sprint lasts between one and four weeks.
- Automation: A distinctive feature of Agile development and testing at each stage is the maximum automation of processes. Automation allows efficient testing within each sprint, aligning with release timelines.
- Team Collaboration: One of the primary responsibilities of a senior QA is establishing effective communication within the team. This is supported by various Agile methodologies, training, corporate team building, etc.
- Adaptability Priority: A senior QA’s task also includes adapting each team member as best as possible to achieve the set goals and strategic objectives of testing. Different Agile methods facilitate this well.
Balancing Business Objectives and Software Testing Quality: Agile Testing Quadrants
Agile employs classic testing quadrants (Agile Testing Quadrants) that help senior QAs choose the appropriate type and level of testing based on the tasks and resources available.
These quadrants are described as follows:
- Quadrant 1: Includes unit and component tests to check the build’s quality at a basic level and ensure new code integration.
- Quadrant 2: Includes tests that verify software characteristics with a focus on business and client needs. This testing enhances the consumer and business expectations of the product being prepared for release.
- Quadrant 3: Covers code quality and user experience tests, typically involving a series of manual tests.
- Quadrant 4: Involves non-functional tests that check code security, data confidentiality, and overall software performance.
In Agile iteration planning and release preparation, it is not customary to rigidly specify what should be in each quadrant. It is a general framework for QA process planning to maintain a balance between business goals and IT development.
How Agile Influences the Professional Growth of Senior QAs
Organizing QA in line with Agile principles helps the senior and their team not only tackle everyday testing tasks, but also effectively strategize code checks up to the release stage.
Agile enables balancing processes related to code fixes and the consumer or business objectives laid out in the project requirements.
Processes based on phased stages and testing quadrants significantly enhance a senior QA’s soft skills, enabling them to take on more complex, responsible tasks over time. This, in turn, contributes to professional growth, facilitating career advancement even when transitioning between jobs.