Skip to content

Commit ccd81c6

Browse files
authored
Create a manual testing procedure (#4303)
1 parent 04ad1fe commit ccd81c6

2 files changed

Lines changed: 183 additions & 0 deletions

File tree

docs/deploy/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
This document describes how to deploy _The Combine_ to a target Kubernetes cluster.
44

5+
After deploying a new release, test it with the [Release Testing Procedure](./release_testing.md).
6+
57
## Conventions
68

79
- the _host_ machine is the machine that is used to perform the installation. It may be a Linux, Windows, or MacOS

docs/deploy/release_testing.md

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
# Release Testing Procedure
2+
3+
## Purpose
4+
5+
A broad manual smoke/regression test to run on any deployment of a new release of _The Combine_.
6+
7+
- Covers core functionality across all deployment targets.
8+
- Not a substitute for automated tests or for testing release-specific changes.
9+
10+
## General Info
11+
12+
### Assumptions
13+
14+
- The deployment itself is already verified: no pod/deployment/job errors, db migrations applied.
15+
- See [How To Deploy _The Combine_](./README.md).
16+
- Only a browser is needed; no WireGuard or cluster access.
17+
- You have (or will create in step 2A) two user accounts, at least one a site admin.
18+
- Steps assume the project Owner (the user who created the project) unless stated otherwise.
19+
- 🟨 `master` is auto-deployed to QA, so fixes can be retested shortly after merge.
20+
21+
### Flags
22+
23+
Steps and sub-steps are tagged with the narrowest applicable flags. Untagged items apply to all deployments.
24+
25+
| Flag | Applies to |
26+
| ------------------- | --------------------------------------------------- |
27+
| 🟧 `[ONLINE]` | Both online deployments (QA and Prod) |
28+
| &emsp;🟥 `[PROD]` | &emsp;<https://thecombine.app> only |
29+
| &emsp;🟨 `[QA]` | &emsp;<https://qa-kube.thecombine.app> only |
30+
| 🔵 `[OFFLINE]` | Both offline deployments (Laptop and NUC) |
31+
| &emsp;🟢 `[LAPTOP]` | &emsp;Laptop install (Ubuntu installer script) only |
32+
| &emsp;🟣 `[NUC]` | &emsp;NUC install only |
33+
34+
### Sample text
35+
36+
Copy-paste these for font and RTL testing as needed.
37+
38+
| Script | Text |
39+
| ------------ | ------------- |
40+
| Arabic (RTL) | مرحبا بالعالم |
41+
| Hebrew (RTL) | שלום עולם |
42+
| Telugu | నమస్కారం |
43+
| Thai | สวัสดีชาวโลก |
44+
| Korean | 안녕하세요 |
45+
46+
## Testing Steps
47+
48+
### 1. Load the login/signup page
49+
50+
Open the site and confirm the page loads without error.
51+
52+
- This confirms the frontend, backend, and database are all running and communicating.
53+
- 🟧 Confirms the Turnstile (captcha) widget loads.
54+
55+
| Flag | Login | Sign-up |
56+
| ---- | -------------------------------------- | --------------------------------------- |
57+
| 🟥 | <https://thecombine.app/login> | <https://thecombine.app/signup> |
58+
| 🟨 | <https://qa-kube.thecombine.app/login> | <https://qa-kube.thecombine.app/signup> |
59+
| 🟢 | <https://local.thecombine.app/login> | <https://local.thecombine.app/signup> |
60+
| 🟣1 | <https://nuc1.thecombine.app/login> | <https://nuc1.thecombine.app/signup> |
61+
| 🟣2 | <https://nuc2.thecombine.app/login> | <https://nuc2.thecombine.app/signup> |
62+
| 🟣3 | <https://nuc3.thecombine.app/login> | <https://nuc3.thecombine.app/signup> |
63+
64+
### 2A. Sign up
65+
66+
Create a user via the sign-up form and confirm you land in the app.
67+
68+
- 🟧 Skip if you already have 2 users, unless a sign-up change is being tested.
69+
- 🟧 If signing up, use a valid email you control, e.g. `<last>_<first>+combine@sil.org`.
70+
71+
### 2B. Log in
72+
73+
Log in.
74+
75+
- Skip if you were logged in via [signup](#2a-sign-up).
76+
- This confirms authentication end-to-end.
77+
78+
### 3. Password reset — 🟧 Online only
79+
80+
From the login page, request a password reset; open the email, follow the link, set a new password, and log in.
81+
82+
- This confirms the email service.
83+
- Alternates that also test the email service: email verification (in user settings), project invite via email (in
84+
[Project settings](#5-project-settings)).
85+
86+
### 4. Create projects
87+
88+
Create two projects: one with LIFT import and one without.
89+
90+
- 🟥 Include "test" in project names to distinguish them from real projects.
91+
- With LIFT import:
92+
- Test LIFT files (zipped): [`Backend.Tests/Assets/`](../../Backend.Tests/Assets/) or
93+
https://github.com/sillsdev/TheCombine/tree/master/Backend.Tests/Assets/, e.g.:
94+
- `Resembli.zip` (small project with definitions and parts of speech).
95+
- `SingleEntryLiftWithSound.zip` (tiny project with audio).
96+
- Confirm imported entries appear.
97+
- Without LIFT: use an RTL vernacular, e.g. Arabic `ar` or Hebrew `he`.
98+
99+
### 5. Project settings
100+
101+
Open project settings and click through the tabs.
102+
103+
- Change the semantic domain language; confirm the domain tree updates.
104+
- Include any language new in this release.
105+
- In the Users tab, add a second user to the project:
106+
- 🟧 Via email invite or username search.
107+
- 🔵 Via username search.
108+
- Change the user's role; verify permissions match (e.g., Harvester sees only Data Entry).
109+
- In the Users tab, add a speaker; select it in the top bar when recording in [Data entry](#6-data-entry).
110+
- In the Schedule tab, set a workshop schedule that includes today (used in the [Statistics](#8-statistics) step).
111+
112+
### 6. Data entry
113+
114+
Enter several words across multiple semantic domains.
115+
116+
- Paste from [Sample text](#sample-text) as needed to test LTR and RTL non-Latin scripts.
117+
- Confirm RTL text displays correctly and the vernacular font renders.
118+
- This confirms fonts are being served.
119+
- Add a gloss and a note to at least one entry.
120+
- On one entry, add a recording before submitting it and another after submitting it.
121+
122+
### 7. Data Cleanup
123+
124+
#### 7.1. Review entries
125+
126+
Open Data Cleanup > Review Entries and make edits.
127+
128+
- Edit a word; record and play audio; add a flag.
129+
130+
#### 7.2. Merge duplicates
131+
132+
Open Data Cleanup > Merge Duplicates in the LIFT-imported project.
133+
134+
- Complete at least one merge and one defer.
135+
- Verify the defer makes Review Deferred Duplicates available in Data Cleanup.
136+
137+
#### 7.3. Character inventory
138+
139+
Open Data Cleanup > Create Character Inventory in the LIFT-imported project.
140+
141+
- Mark one character Accepted and one Rejected; save.
142+
143+
#### 7.4. Completed
144+
145+
Open Data Cleanup > "You've Completed:" and verify all cleanup was captured.
146+
147+
### 8. Statistics
148+
149+
Open the project Statistics page (chart button in the top bar) and click through its views.
150+
151+
- Confirm the per-user, per-domain, and per-day counts reflect the entries you made.
152+
- Confirm the workshop progress estimate appears (requires the schedule from step 5).
153+
154+
### 9. Export and verify
155+
156+
Export the LIFT-imported project and spot-check the zip contents:
157+
158+
- entries present in the `.lift` file;
159+
- audio files included.
160+
161+
### 10. User interface localization
162+
163+
In user settings, switch the UI language and confirm the UI updates.
164+
165+
- Include any UI language new in this release.
166+
- Test RTL UI: set browser language to Arabic, set user setting to detect browser, refresh.
167+
- Confirm layout mirrors (menus, navigation, dialogs).
168+
169+
### 11. User Guide
170+
171+
Open the User Guide from the app.
172+
173+
- Switch the guide to a non-English language; confirm pages render.
174+
175+
### 12. Site Settings
176+
177+
Log in as a site admin and open Site Settings.
178+
179+
- Confirm the project list and user list load.
180+
- Archive any test project that you're done with.
181+
- Add a banner; refresh to confirm it displays; remove banner.

0 commit comments

Comments
 (0)