Skip to content

Commit 8ca5830

Browse files
authored
Merge pull request #95 from MaxHarrisonGit/master
Quality Assurance - QA Stages, Formatting, Guidelines and Web Quality Assurance Handbook
2 parents 60a2f8b + d045dff commit 8ca5830

File tree

3 files changed

+91
-0
lines changed

3 files changed

+91
-0
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,9 @@ We work with a number of different software platforms. Each has their own set of
1616
* [📲 React Native](platforms/mobile/react-native/introduction.md)
1717
* 🖥 Desktop
1818
* [🖼 Windows apps](platforms/desktop/windows.md)
19+
* ✅ Quality Assurance
20+
* [♻️ QA Stages, Formatting and GuideLines](qualityassurance/qa-stages-formatting-guidelines.md)
21+
* [📗 Web Quality Assurance Handbook](qualityassurance/web-quality-assuranceh-and-book.md)
1922
* 🗂 [Databases](general/databases.md)
2023
* 🛠 [DevOps](devops/devops.md)
2124
* 🔢 [Style Guides](styleguides/styleguides.md)
120 KB
Loading
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# ♻️ QA Testing Stages, Formatting and Guidelines
2+
3+
This section is to instruct on when to test, how you should be formatting the bugs raised and guidelines for QA
4+
5+
## Developing with QA in mind
6+
### Commands
7+
When you are developing a project, the project might require commands to run and work correctly, these can range from simple set up commands to automatic updating commands, a list of these commands and a brief description of what these commands do will help QA move more smoothly and avoid raising unnecessary questions.
8+
9+
Some projects require certain data to have certain statuses and manipulation of the database to update systems and cause it may be required to force the system onto the next process. We would like these to be formed into commands if it is a complex task or a detailed outline of what is required to be completed and a description of when and why you would need to do this, QA should have minimum contact with database directly, this leads to user error. This will allow the tester to carry out complex tasks without directly modify the database or sensitive areas of the application.
10+
11+
### ENV
12+
Ensure that the 'env.example' is up to date and remove redundant keys that are no longer required.
13+
14+
## QA Stages
15+
For staging, we are following a multi-stage testing methodology to enable us to ensure that the customer is getting a bug free and fully functioning system. This will be a merge between 'Agile' and 'Waterfall' methodologies.
16+
17+
### Stage 1 - Development Testing
18+
This stage is for the developers to test and ensure that there are no obvious bugs and that the code is working as expected before they create a PR (Pull Request). This will ensure that QA is not wasting time on obvious bugs that could have easily been spotted during development and be fixed them before the pull request is made.
19+
20+
### Stage 2 – PR (Pull Request) Testing
21+
At this stage the PR has been created and must adhere to the following criteria before being accepted.
22+
One check will be from a member of the development team to check over the code and to review the code itself to ensure it meets our internal standards.
23+
The other check will be from QA, that will test the code changes itself, ensure that it is working and there are no bugs in the relevant area(s). This is more of a 'Spotlight Check', focused testing around each change that has been made and near areas that could be affected by this change. No matter how small an issue might seem it must be reported and signed off before continuing.
24+
Once both parties have accepted the code we will then proceed to stage 3.
25+
26+
### Stage 3 – M2S (Master to Staging) Testing
27+
This area of testing is large end to end testing. We start by creating a new user, with a cleared database (as much as can be cleared). Testing will be used as if the customer was using the system, this would include all different user types such as: client, admin, worker. If a customer has a web application, mobile application, and any other applications then this process will be repeated for each one until QA is confident to say that the applications are working as expected.
28+
29+
### Stage 4 - Production Testing
30+
This area of testing is large end to end testing. We start by creating a new user, with a cleared database (as much as can be cleared). Testing will be used as if the customer was using the system, this would include all different user types such as: client, admin, and/or worker. If a customer has a web application, mobile application, and any other application(s) then this process will be repeated for each application until QA is confident to say that the application(s) are working as expected.
31+
If any urgent issues are found they should be raised and created as hotfixes, if they are not urgent they should go into the development branch and start the testing process again (from stage 2).
32+
33+
#### Staging - Production Merge Timing
34+
Timing is a very important point in the merge between staging and production.
35+
- We do not want to merge at peak working hours as this increases the chance of disrupting customer workflow.
36+
- We do not want to merge towards the end of the day as if something were to go wrong it would delay resolution times until the next morning.
37+
- We do not want to merge on Fridays as if something were to go wrong it would delay resolution times until the next working day.
38+
It is worth noting that each customer has different situations and stances on when they want their applications updating. So it is always worth confirming with the customer before hand.
39+
40+
## Test Cycle
41+
Test cycles are a collection of tests that need to be ran. Cycles should always be given a time frame and a time estimate to ensure that we are completing them in a timely manner and to enable management to organize work efficiently.
42+
43+
### Tests
44+
For stage 2, stage 3 and stage 4, a list of tests is required. This is to keep track of what needs to be tested and to ensure that all functionality is tested and to ensure we don't do any unnecessary testing.
45+
The structure of the tests are as follows:
46+
- Test name
47+
- Priority
48+
- Critical
49+
- High
50+
- Medium
51+
- Low
52+
- Expected outcome
53+
- Estimated time to complete testing
54+
- Area of testing (such as the what pages/screens)
55+
- Test data (If required)
56+
57+
### Testing Status
58+
Each test requires a statuses once completed. The status are as follows:
59+
- Passed – the testing passed and has been confirmed to work as expected.
60+
- Data required
61+
- Notes.
62+
- Test data used.
63+
- Screenshots if relevant.
64+
- Your name.
65+
- Failed – The testing failed and is not working as expected.
66+
- Data required
67+
- Notes.
68+
- Test data used.
69+
- Bug number raised.
70+
- Your name.
71+
- Blocked – Testing has not been started as can’t be tested due to a bug already raised by a failed test.
72+
- Data required
73+
- Notes.
74+
- Bug number raised.
75+
- Your name.
76+
- OOS (Out of Scope) – Test has been moved to OOS as it is not in the scope of testing for this stage of testing.
77+
- Data required
78+
- Manager who confirmed OOS.
79+
- Your name.
80+
81+
### Raising A Bug
82+
When you find a bug, you will need to raise a bug on the 'Jira Service Desk'.
83+
This bug will require multiple areas to be filled in, these are as Below:
84+
85+
![Jira Bug Raising](images/jira/raising-bugs.PNG)
86+
87+
### Test Data
88+
When testing on `staging` and `production` we will require valid data and credentials. These should be stored in a 'Google Docs' document that the project lead/manager should have access to, these should be kept up to date. The document should contain data that you need or is helpful to have when you are testing the given project.

0 commit comments

Comments
 (0)