|
| 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 | +|  🟥 `[PROD]` |  <https://thecombine.app> only | |
| 29 | +|  🟨 `[QA]` |  <https://qa-kube.thecombine.app> only | |
| 30 | +| 🔵 `[OFFLINE]` | Both offline deployments (Laptop and NUC) | |
| 31 | +|  🟢 `[LAPTOP]` |  Laptop install (Ubuntu installer script) only | |
| 32 | +|  🟣 `[NUC]` |  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