QA Role in Agile / Scrum
In the modern software world, QA is a strategic partner involved from the very beginning.
Agile and Scrum Processes
In the Agile model, development and testing activities are performed concurrently. Within Scrum, QA helps the team focus on all aspects of the software by providing transparency, inspection, and adaptation. In the Kanban model, it ensures the visualization of tasks.
Importance of Manual Testing
Manual testing plays a critical role in areas outside the scope of automation:
- Execution: Test cases are executed manually without any tools.
- Advantages: It is easy to test visuals and quick to check minor changes.
- Flexibility: Ad-hoc and Exploratory Testing are easily performed manually.
- Defect Management: Helps find critical bugs and UX flaws. Defects are reported to developers; if uncorrected, they may lead to Failure.
As a Strategic Approach: Test Prioritization
This is the process of assigning tactical value to test cases based on their importance or the likelihood of uncovering defects. The five levels are:
- Critical: Risk of data loss or system corruption; must be tested immediately in the latest build.
- Major: Unacceptable loss of functionality; must be tested as soon as possible.
- High: Loss of functionality exists, but workarounds are available; must be tested once development is complete.
- Normal: Non-critical loss of functionality; testing once is sufficient.
- Low: Minor issues; tested only if time permits.
QA Mindset and Methodology
QA follows the PDCA (Plan, Do, Check, Act) cycle. A QA engineer's mindset is as vital as their technical knowledge:
- Proactivity: Start test design early to find bugs before coding ends.
- Critical Perspective: Approach software with the view that "it is buggy until proven otherwise," but explain issues constructively.
- Communication: Be critical toward the software, but kind and solution-oriented toward developers.