-
-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
#809: Move the App Testing Documentation from Google Docs to the app …
…repository (#912)
- Loading branch information
Showing
6 changed files
with
266 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# How to release the apps | ||
|
||
1. Increment app version and build number in pubspec.yaml | ||
1. Run CodeMagic Build "iOS Staging (Firebase App Distribution)" | ||
1. Run CodeMagic Build "Android Staging (Firebase App Distribution)" | ||
1. Test the app on the Staging environment. See | ||
[manual test plans](../app_testing_guides/manual_test_plans.md). | ||
1. If tests were ok, proceed with next step. Otherwise fix the bugs and | ||
start again at first step | ||
1. Build the app for production: | ||
1. Run CodeMagic Build "iOS Production" | ||
1. Run CodeMagic Build "Android Production" | ||
1. Add git tags with current app version and code | ||
- like "app-release-ios-1.1.13(30)" and | ||
"app-release-android-1.1.13(30)" | ||
1. Create a new Apple App Store app version entry: | ||
- Login to [Appstore Connect](https://appstoreconnect.apple.com/apps) | ||
- Select app "Social Income" | ||
- Add new iOS app version | ||
- Check if we have to update some store data | ||
- Add "What's New in This Version?" text for all supported languages | ||
- Add the correct Build | ||
- Add the app version for Review | ||
1. Create a new release on the "internal testing" track in the Google | ||
Play Console: | ||
- Login to [Google Play Console](https://play.google.com/console) | ||
- Select the production app | ||
- Go to "Release"->"Testing"->"Internal testing" | ||
- Click on the button "Create new release" | ||
- Upload the aab file from the CodeMagic Build "Android Production" | ||
- Add release notes for all supported languages | ||
- Save and publish the release in the Internal Testing track | ||
- Do a quick smoke test of this app release | ||
- Promote the release to Production | ||
- Send the release to Production App Review | ||
1. When both app reviews are approved by Apple and Google, release them | ||
into the stores |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# How to test the app for the release? | ||
|
||
Usually for a upcoming release we test the app manually to ensure that | ||
the core functionality is still working. | ||
|
||
For that we use usually the environment STAGING. | ||
|
||
- Here you find a description of the available | ||
[test environments](./test_environments.md), its usage and how to | ||
access them. | ||
|
||
- Here you find the prepared | ||
[test accounts](https://docs.google.com/document/d/1-y__kbnLX3KCHp2pdXhzq58rbMmnXwUI-Cirihy224o/edit?pli=1#heading=h.4a9qjbxltxku) | ||
to use for tesing the app. **These test accounts are only accessable | ||
for core developers**. Please try to leave these accounts in the | ||
described account state after your tests. This makes testing for all | ||
of us easier :). | ||
|
||
- Here you find the | ||
[manual test plans](../app_testing_guides/manual_test_plans.md). |
99 changes: 99 additions & 0 deletions
99
recipients_app/docu/app_testing_guides/manual_test_plans.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,99 @@ | ||
# Manual test plans | ||
|
||
Usually these tests are done on the environment STAGING with the | ||
corresponding | ||
[test accounts](https://docs.google.com/document/d/1-y__kbnLX3KCHp2pdXhzq58rbMmnXwUI-Cirihy224o/edit?pli=1#heading=h.4a9qjbxltxku). | ||
|
||
## Registration | ||
|
||
- On the Account creation page, by clicking the text link “Privacy | ||
Policy” a webview with the privacy policy is opened. | ||
- TODO: Click on the button “Create Account” then … | ||
|
||
## Login | ||
|
||
- Switch off the internet and try to login. => An error message occurs | ||
- Can I login with a valid account? => Enter registered phone number, | ||
enter verification code, You are logged in. | ||
|
||
## Logout | ||
|
||
- Logout of the app: Go to “Edit”, scroll down and “Sign Out” => The | ||
user is signed out and back on the Login page. This also works if | ||
there is no internet. | ||
|
||
## Profile | ||
|
||
- Tap on “Edit” and change personal data. => There should be a message | ||
“Profile updated successfully” after the change | ||
- Switch off the internet and tap on “Edit” and change personal data. => | ||
There is no message. Data is saved locally and will be synced once the | ||
internet is back again. This is also the case if you leave the Profile | ||
page. | ||
|
||
## Payments | ||
|
||
- Can you pull to refresh to see a newly added payment in the Admin | ||
Staging Tool | ||
- Can you confirm if a payment has been made and if the change has been | ||
stored in Firebase? | ||
- Offline feature: Additionally, if you confirm while in flight mode | ||
and then reconnect to the internet, is it also stored in Firebase? | ||
- Can you deny a payment? | ||
- Can you resolve the issue from the mobile phone? | ||
|
||
## Surveys | ||
|
||
- Do you see the card “My surveys” | ||
- If you tap the button “Overview”, then a new page with a list of all | ||
surveys is shown. | ||
- If there is a due survey, then the list entry of this survey has a | ||
“Start Survey” button | ||
- Can you pull to refresh to see a changed survey status in the Admin | ||
Staging Tool | ||
- Is a survey that is due shown as a separate card on the main screen? | ||
- A card for a survey should show if | ||
- Survey’s due date is in 10 days or less | ||
- Survey’s due date was less than 20 days ago | ||
- The card says “Missed Survey” if | ||
- Survey’s due date was less than 15 days ago | ||
- If two surveys are due, then two cards are shown | ||
- Does the survey open on a new page when you tap “Start Survey”? | ||
- Can you fill out the survey? | ||
- If you filled out a survey, then the survey is shown as “Completed”. | ||
|
||
## OS Permission stuff | ||
|
||
### Android 13 and higher | ||
|
||
On first startup the app asks for permission to send notifications. This | ||
happens when the login page is shown. | ||
|
||
### Android 12 and lower | ||
|
||
There is no permission dialog on app start up. Permissions for | ||
notifications are set automatically to “allowed”. You can check this in | ||
the app info for the app in the Android settings app: | ||
Settings->Apps->Social Income-> Notifications are allowed. | ||
|
||
## Account deletion | ||
|
||
Not yet added as feature | ||
|
||
# Video manuals for Admin Staging Tool | ||
|
||
#### How do you add a new payment in the Admin Staging Tool? | ||
|
||
→ | ||
[Add payment.mov](https://drive.google.com/file/d/1I6PFLXp3BpN1v3X1mPL4wofL5SEG2rTy/view?usp=drive_link) | ||
|
||
#### How do you change a survey status in the Admin Staging Tool? | ||
|
||
→ | ||
[Change survey status.mov](https://drive.google.com/file/d/1I3SELIPc0ReLpIGc_Q0lY291GWUjFrgU/view?usp=sharing) | ||
|
||
# Things to know about the app or Sierra Leone | ||
|
||
- The leone is the currency of Sierra Leone. It is subdivided into 100 | ||
cents. As of 1 July 2022, the ISO 4217 code is SLE due to a | ||
redenomination of the old leone (SLL) at a rate of SLL 1000 to SLE 1. |
88 changes: 88 additions & 0 deletions
88
recipients_app/docu/app_testing_guides/test_environments.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,88 @@ | ||
# Test environments | ||
|
||
## Available testing stages | ||
|
||
We have three testing stages: | ||
|
||
- DEV | ||
- STAGING | ||
- PROD | ||
|
||
## Test in Stage “DEV” | ||
|
||
The stage DEV is for feature development and bug fixing on the local | ||
development machine. | ||
|
||
### App Name is: Dev Social Income | ||
|
||
### Available Backends: | ||
|
||
There is no Firebase Project for this stage. To test the app while | ||
developing, we use the Firebase emulator. The emulator works on your | ||
local host machine; the easiest way to run the app is on the Android | ||
emulator. Real devices need some additional setup. | ||
|
||
But you can also use the Firebase Staging Backend to test your local | ||
stuff. See Firebase Staging Project and Admin Staging Tool | ||
|
||
## Test in Stage “STAGING” | ||
|
||
### App Name is: Stage Social Income | ||
|
||
Login Credentials: Either use these | ||
[test accounts](https://docs.google.com/document/d/1-y__kbnLX3KCHp2pdXhzq58rbMmnXwUI-Cirihy224o/edit?pli=1#heading=h.4a9qjbxltxku) | ||
or your mobile number on file in the recipients list in the | ||
[Admin Staging Tool](https://console.firebase.google.com/u/1/project/social-income-staging/overview) | ||
|
||
### iOS Platform | ||
|
||
Install the app either from Firebase App Distribution (Invitation | ||
needed) or TestFlight (Invitation needed on App Store Connect). | ||
|
||
App Distribution Installation instructions: Open email from Firebase App | ||
Distribution, accept invitation with Google account, enable installation | ||
of profile, use Firebase App Distribution to download latest Stage | ||
Social Income. Troubleshoot: Tester Instruction by Firebase App | ||
Distribution | ||
|
||
### Android Platform | ||
|
||
Install the app either from Firebase App Distribution (Invitation link | ||
click here) or from Google Play Store Console. For this you have to be | ||
added as a tester (request access). | ||
|
||
App Distribution Installation instructions: Open email from Firebase App | ||
Distribution, accept invitation with Google account, enable installation | ||
from unknown sources, use Firebase App Distribution to download latest | ||
Stage Social Income. Troubleshoot: Tester Instruction by Firebase App | ||
Distribution | ||
|
||
### Backend for Stage STAGING | ||
|
||
The Staging App uses the Firebase Staging Backend. See Firebase Staging | ||
Project (only for admins) and Admin Staging Tool (request access). | ||
|
||
## Test in Stage “PROD” | ||
|
||
### App Name is: Social Income | ||
|
||
### Requirements: | ||
|
||
Login Credentials: You need to have your phone number added in the | ||
recipients list (with the flag test) on Admin Prod Tool (only for core | ||
developers) | ||
|
||
### iOS Platform | ||
|
||
Install the app via Testflight: You need to be authorized on TestFlight | ||
(ask core developers to be added) | ||
|
||
### Android Platform | ||
|
||
Install Android: You need to be a tester on the internal track on Google | ||
Play Console (ask core developers to be added) | ||
|
||
### Backend for Stage PROD | ||
|
||
The Prod App uses the Firebase Prod Backend. See Firebase Prod Project | ||
and Admin Prod Tool (request access). |