==========
QA Process
==========
.. image:: _static/picture/qa_process/pic1.png
:alt: QA Process
:align: center
:width: 600px
.. raw:: html
Bug Life Cycle
---------------
.. image:: _static/picture/qa_process/pic2.png
:alt: Bug Life Cycle
:align: center
:width: 600px
.. raw:: html
Traceability Matrix
--------------------
**EPIC/Feature -> QA User Story - Azure Devops (Unique test cases)**
.. list-table::
:header-rows: 1
:widths: 20 20 20 20
* - EPIC/Feature
- User Story
- Test Case ID
- Status
* - EPIC1
- US1
- TC_001
- Passed
* - EPIC1
- US1
- TC_002
- Passed
* - Feature2
- US2
- TC_003
- Passed
* - EPIC3
- US3
- TC_004
- Passed
* - EPIC3
- US3
- TC_005
- Passed
.. image:: _static/picture/qa_process/pic3.png
:alt: QA Process
:align: center
:width: 600px
.. raw:: html
**Tracking Our EPIC/Feature Requirements in the Sootballs Dashboard**
As part of our commitment to delivering high-quality products, we are utilizing our QA user story to conduct comprehensive testing linked to each EPIC in the Sootballs dashboard. Each EPIC encapsulates unique requirements that our development team is diligently working on.
To streamline our efforts, we will focus on a single user story within the sootballs-common-dev area for tracking requirements and visualizing our progress on the dashboard.
Our QA Process for Each EPIC
-----------------------------
For every QA user story associated with an EPIC, we will implement a series of tasks on our QA board to ensure thorough coverage and testing. Here’s what you can expect:
1. **Test Plan**:
Develop a detailed test design for the specified requirement.
2. **Test Cases in Test Plan**:
Create and document test cases in Azure that align with the requirement.
3. **Manual Testing**:
Execute the test cases manually, capturing all results for review.
4. **Test Automation CI Runs**:
Automate selected test cases, with Allure reports generating and documenting test results.
5. **Test Automation - PR Tracking**:
For each test case automation, create a pull request (PR), create a corresponding task, and link it back to the requirement to maintain traceability.
By following this structured approach, we ensure that each requirement (i.e., EPIC) is thoroughly tracked with all necessary QA tasks, leading us toward the successful delivery of a high-quality product.
Team Responsibilities
----------------------
.. image:: _static/picture/qa_process/pic4.png
:alt: Team Responsibilities
:align: center
:width: 600px
.. raw:: html
BUG Testing Process
--------------------
.. image:: _static/picture/qa_process/pic5.png
:alt: BUG Testing Process
:align: center
:width: 600px
.. raw:: html
Step 1: Task Creation
~~~~~~~~~~~~~~~~~~~~~~
- **Lead**: Create a task for the bug if it's already planned for the sprint.
- **Ad-hoc Testing**: If the bug is tested on an ad-hoc request, the test engineer must create a task and add it to the current sprint iteration.
Step 2: Testing Procedure
~~~~~~~~~~~~~~~~~~~~~~~~~
- **Case 1**:
1. **Add Test Case**: While testing manually, create a new test case and link it. Plan to automate it later.
2. **Document Outcomes**: Record the test outcomes in the bug ticket after manual verification. Ensure to create and link a new work item of type *"test case."*
- **Case 2**:
1. **Update Existing Test Case**: Add a new test step to an existing test case. Automate it if feasible; if not, plan for automation later.
2. **Document Outcomes**: Record the test outcomes in the bug ticket after manual verification.
Step 3: Automation Task Creation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- **QA Lead**: Create a backlog task for test automation.
- **Assigned Test Engineer**: Discuss whether to modify existing test scripts or create new ones.
Step 4: Automation Execution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- **Prioritization**: Execute test automation based on backlog prioritization.
Step 5: Integration with CI
~~~~~~~~~~~~~~~~~~~~~~~~~~~
- **Add to CI**: Include the test script in the regression testing - Continuous Integration (CI) runs.
- **Test Placement**: Determine the type of test placement (e.g., nightly, confidence, integration).
- **Assigned Test Engineer**: Discuss the automation task and placement.
Step 6: Task Closure
~~~~~~~~~~~~~~~~~~~~~
- The task can be closed only after merging the Pull Request (PR) in the `sootballs_tests` repository.
- Update the GitHub PR request with this task.
===========================================================================
PROCESS TO DO on CI RUN FAILURES
---------------------------------
.. image:: _static/picture/qa_process/pic6.png
:alt: CI Run Failures
:align: center
:width: 600px
.. raw:: html
Steps to Handle Test Script Failures in Regression Testing CI Run
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Identify Multiple Failures (🔍)
- Check if multiple test failures are linked to the same reason (e.g., network timeout).
2. Resolve Temporary Issues (🛠️)
- If a temporary issue (like network unavailability) caused the failures, wait until it's fixed.
- Re-run all test cases to verify if failures persist.
3. Evaluate Test Results (⚖️)
- If no issues are observed after the fix, the previous failures can be disregarded.
- If issues still exist, proceed to the next step.
4. Document the Issue if it's a design change or product issue (📝)
- If the quality engineer is unsure of the failure's cause:
- Create a bug work item.
- Post in the **#rr_sootballs_qa** channel or bring it up during the standup to inform the team.
- Skip the failing tests in nightly runs, mentioning the related Azure “bug” ID.
5. Assess Test Script or Design Changes (⚙️🔧)
- If the failure is due to a problem with the test script:
- Create a task work item titled: **Fix for the CI failure on