Content
comprehensive smoke suite with result box
Smoke Tests
A comprehensive test that we can run once in several sprints to check that all main features are working. This can be a base of automated tests
---
1. Installation & Update
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
1.1 |
Fresh install — Android |
1. Uninstall any existing version |
App installs without errors; splash screen and onboarding are shown |
|
1.2 |
Fresh install — iOS |
1. Uninstall any existing version |
App installs without errors; splash screen and onboarding are shown |
|
1.3 |
Fresh install — complete login flow |
1. Fresh install |
User is authenticated and lands on Home dashboard |
|
1.4 |
Fresh install — no leftover data |
1. Fresh install after a previous installation existed |
No stale data, cached credentials, or broken state from the previous install |
|
1.5 |
Update over existing install — Android |
1. Install the previous release version |
App updates successfully; existing session is preserved |
|
1.6 |
Update over existing install — iOS |
1. Install the previous release version via TestFlight or direct install |
App updates successfully; existing session is preserved |
|
1.7 |
Session preserved after update |
1. Log in on the old version |
User is still logged in after update; no forced re-login unless intentional |
|
1.8 |
Cached data intact after update |
1. Use the app on old version (load projects, work packages) |
Previously cached content is still accessible or gracefully refreshed |
|
1.9 |
Settings preserved after update |
1. Change user preferences (e.g., activity order, notification settings) on old version |
User preferences are retained after the update |
---
2. Login & Authentication
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
2.1 |
Launch app (not logged in) |
Cold-start the app with no active session |
Splash screen appears briefly, then redirects to Sign In page |
|
2.2 |
Sign in with valid credentials |
1. Enter valid server URL |
User is authenticated and redirected to Home dashboard |
|
2.3 |
Sign in with wrong password |
1. Enter valid server URL |
Error message is shown; user remains on Sign In page |
|
2.4 |
Sign in with no internet connection |
1. Enter valid server URL |
Error message is shown |
|
2.5 |
Sign in to a wrong server instance |
1. Enter an invalid URL (i.e. google.com) |
Error message is shown; user remains on Sign In page |
|
2.6 |
Instance selection via bottom sheet |
1. On Sign In page, tap the instance selector control |
Bottom sheet opens; selected instance URL is applied to the sign-in form |
|
2.7 |
Session persistence after app restart |
1. Log in successfully |
User lands directly on Home dashboard without seeing Sign In page |
|
2.8 |
Sign out |
1. Navigate to Account/User section |
User is signed out and redirected to Sign In page; session is cleared |
---
3. Onboarding
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
3.1 |
First-time onboarding shown |
Install a fresh build and launch the app for the first time |
Onboarding carousel is shown before the login screen |
|
3.2 |
Swipe through onboarding pages |
Swipe left through all onboarding slides |
Each slide advances; progress indicator updates |
|
3.3 |
Skip onboarding |
Tap the Skip button on any onboarding page |
Onboarding is dismissed; user is taken to Sign In page |
|
3.4 |
Complete onboarding |
Advance through all slides to the last one and tap Continue/Get Started |
User is taken to Sign In page |
|
3.5 |
Onboarding not shown on second launch |
Complete onboarding, close the app, reopen it |
Onboarding is not shown again; app goes to Sign In or Home directly |
---
4. Home Dashboard
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
4.1 |
Dashboard loads with widgets |
Log in and navigate to the Home tab |
Home dashboard loads; visible widgets display their content without errors |
|
4.2 |
Notifications widget |
View the Notifications widget on Home |
Widget shows the count of unread notifications |
|
4.3 |
Assigned to Me widget |
View the Assigned to Me widget |
Widget lists work packages currently assigned to the logged-in user |
|
4.4 |
Recently Edited widget |
View the Recently Edited widget |
Widget shows recently modified work packages |
|
4.5 |
Favorite Projects widget |
View the Favorite Projects widget |
Widget shows the user's starred/favorited projects |
|
4.6 |
Time Tracker widget |
View the Time Tracker widget |
Widget shows weekly tracked time summary |
|
4.7 |
Tap a work package in a widget |
Tap any work package listed in a Home widget |
App navigates to the Work Package Details screen for that item |
|
4.8 |
Tap a project in Favorite Projects |
Tap a project in the Favorite Projects widget |
App navigates to that project's overview |
|
4.9 |
Pull to refresh |
Pull down on the Home dashboard |
Dashboard data refreshes; widgets reload their content |
---
5. Projects / Workspaces
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
5.1 |
Projects list loads |
Navigate to the Workspaces/Projects tab |
List of accessible projects is displayed |
|
5.2 |
Search projects |
Tap the search field and type a partial project name |
List filters to show matching projects only |
|
5.3 |
Filter by project type |
Apply a project type filter |
Only projects matching the selected type are shown |
|
5.4 |
Toggle favorites view |
Switch between "All Projects" and "Favorites" view |
List updates to show only favorited projects or all projects accordingly |
|
5.5 |
Open project overview |
Tap on a project in the list |
Project Overview page opens showing project details |
|
5.6 |
Project overview tabs |
Inside a project, switch between the available tabs (Details, Work Packages, Subprojects, etc.) |
Each tab loads its content correctly |
|
5.7 |
Navigate to work packages from project |
Inside a project's Work Packages tab, tap a work package |
Work Package Details screen opens for that item |
|
5.8 |
Subprojects list |
Open a project that has subprojects and view the Subprojects tab |
Subprojects are listed under that parent project |
---
6. Work Packages
6a. Work Package List
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
6.1 |
Work packages list loads |
Navigate to the Work Packages tab |
List of work packages loads correctly |
|
6.2 |
Filter work packages by status |
Apply a status filter (e.g., "In Progress") |
Only work packages with that status are shown |
|
6.3 |
Filter by assignee |
Apply an assignee filter |
Only work packages assigned to that person are shown |
|
6.4 |
Search work packages |
Type a query in the search field |
List filters to work packages matching the query |
|
6.5 |
Pull to refresh |
Pull down on the work packages list |
List refreshes with latest data from the server |
|
6.6 |
Tap a work package |
Tap any item in the list |
Work Package Details screen opens |
6b. Work Package Details
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
6.7 |
Details screen loads |
Open any work package |
Title, type, status, and description are displayed correctly |
|
6.8 |
Switch to Activity tab |
In Work Package Details, tap the Activity tab |
Activity/comment history is displayed |
|
6.9 |
Switch to Attachments tab |
Tap the Attachments tab |
Uploaded files are listed (or empty state shown) |
|
6.10 |
Switch to Relations tab |
Tap the Relations tab |
Related work packages are listed |
|
6.11 |
View a file attachment |
Tap an attachment in the Attachments tab |
File preview or download opens |
6c. Create Work Package
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
6.12 |
Open create form |
Tap the "+" / Create button on the Work Packages screen |
Create Work Package form opens |
|
6.13 |
Create with required fields |
1. Select a project |
New work package is created; user is navigated to its details or back to the list |
|
6.14 |
Validation on empty title |
Leave the subject/title field empty and tap Save |
Validation error is shown; work package is not created |
|
6.15 |
Cancel creation |
Open the create form and tap Cancel/Back |
Form closes; no work package is created |
6d. Edit Work Package
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
6.16 |
Edit title |
Open work package details, tap Edit, change the title, save |
Updated title is reflected in the details view |
|
6.17 |
Change status |
In work package details or edit form, change the status field |
Status updates and the change appears in the Activity tab |
|
6.18 |
Change assignee |
Edit the assignee field and save |
New assignee is shown in the details |
|
6.19 |
Edit description |
Open the description editor, make a change, save |
Updated description is rendered in the details view |
|
6.20 |
Add a comment |
In the Activity tab, type a comment and submit |
Comment appears in the activity timeline |
---
7. Time Tracking
7a. Time Tracking Overview
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
7.1 |
Time tracking page loads |
Navigate to the Time Tracking tab |
Calendar view loads with existing time entries |
|
7.2 |
Navigate calendar dates |
Tap previous/next day or week in the calendar |
View updates to show entries for the selected period |
|
7.3 |
View daily time entries |
Tap a specific date in the calendar |
Time entries for that day are displayed below |
|
7.4 |
Weekly hours summary |
View the time tracking page for a week |
Total hours logged for the week are shown |
7b. Focus Timer
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
7.5 |
Open focus timer |
Navigate to the Timer tab within Time Tracking |
Focus timer page shows with a circular timer at 00:00 |
|
7.6 |
Start timer |
Tap the Start button |
Timer begins counting up; Start changes to Pause |
|
7.7 |
Pause and resume timer |
Tap Pause, then tap Resume |
Timer pauses at the current time; resuming continues from that point |
|
7.8 |
Stop timer |
Tap Stop |
Timer stops; Create Log Time form opens to finalize the entry |
|
7.9 |
Link work package to timer |
Before or during timing, select a work package to link |
Timer shows the linked work package name |
7c. Log Time Entry
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
7.10 |
Create log time entry |
1. Open Create Log Time form |
Time entry is saved and appears in the time tracking calendar |
|
7.11 |
Validation on empty hours |
Submit log time form without entering hours |
Validation error is shown; entry is not saved |
|
7.12 |
Date selection |
Change the date field to a past date and save |
Time entry is saved for the selected date |
---
8. Global Search
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
8.1 |
Open global search |
Tap the Search icon in the navigation |
Global Search screen opens with Work Packages and Projects tabs |
|
8.2 |
Search for a work package |
Type a work package title in the search field (Work Packages tab) |
Matching work packages appear in the results list |
|
8.3 |
Search for a project |
Switch to the Projects tab and type a project name |
Matching projects appear in results |
|
8.4 |
Filter search results |
Apply a filter (status, type, etc.) within Work Packages search |
Results are narrowed to match the applied filter |
|
8.5 |
Navigate to result |
Tap a work package in search results |
Work Package Details screen opens for that item |
|
8.6 |
Navigate to project result |
Tap a project in search results |
Project Overview page opens |
|
8.7 |
Empty state |
Search for a string with no matches |
Empty state message is shown; no crash |
|
8.8 |
Clear search query |
Clear the search input field |
Results reset; prior state or empty prompt is shown |
---
9. Notifications
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
9.1 |
Notifications list loads |
Navigate to the Notifications tab |
List of notifications is displayed |
|
9.2 |
Notification count badge |
Check the Notifications tab icon when there are unread notifications |
Badge shows correct unread count |
|
9.3 |
View notification details |
Tap a notification in the list |
Associated work package details are shown inline or the user is navigated to it |
|
9.4 |
Notification reason |
Tap or long-press a notification to see the reason |
Bottom sheet or tooltip explains why the user was notified (e.g., "Assigned to you") |
|
9.5 |
Mark as read |
Mark a notification as read (if the action is available) |
Notification is marked read; unread count decreases |
|
9.6 |
Empty state |
View Notifications when there are none |
Empty state message is displayed; no crash |
|
9.7 |
Pull to refresh |
Pull down on the notifications list |
List refreshes with latest notifications |
---
10. User Profile & Settings
10a. User Profile
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
10.1 |
Open user profile |
Navigate to Account/User tab |
User profile page shows name, email, and avatar |
|
10.2 |
View account details |
Tap on Account Details |
Account info page opens with the user's profile data |
|
10.3 |
View another user's profile |
Tap a user's avatar or name (e.g., in work package details) |
That user's profile view opens with their basic info |
10b. Notification Settings
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
10.4 |
Open notification settings |
Go to Settings → User Notifications |
Notification preferences screen opens |
|
10.5 |
Toggle a notification preference |
Toggle an email notification setting on or off |
Setting is saved; toggle reflects the new state after navigating away and back |
10d. Work Package Settings
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
10.6 |
Open work package settings |
Go to Settings → Work Package Settings |
Settings page opens |
|
10.7 |
Change activity sort order |
Switch activity order between newest/oldest first |
Setting is saved; activity in work packages reflects the chosen order |
---
11. Rich Text Editor
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
11.1 |
Open editor |
Edit the description of a work package or add a comment |
Rich text editor opens |
|
11.2 |
Bold text |
Select text and tap the Bold button |
Selected text becomes bold |
|
11.3 |
Italic text |
Select text and tap the Italic button |
Selected text becomes italic |
|
11.4 |
Bullet list |
Tap the unordered list button and type items |
Bullet list is created |
|
11.5 |
Numbered list |
Tap the ordered list button and type items |
Numbered list is created |
|
11.6 |
Add a hyperlink |
Tap the link button, enter a URL and display text |
Link is inserted and rendered as clickable text |
|
11.7 |
Heading formatting |
Select a heading level and type |
Text is rendered as a heading |
|
11.8 |
Mention a user |
Type @ followed by a username |
Autocomplete suggestion appears; selecting it inserts a user mention |
|
11.9 |
Mention a work package |
Type # followed by a work package ID or title |
Autocomplete suggestion appears; selecting it inserts a work package link |
|
11.10 |
Save edited content |
Make changes and tap Save/Done |
Changes are persisted and rendered correctly in the details view |
|
11.11 |
Discard changes |
Make changes and tap Cancel/Back without saving |
Changes are discarded; original content is unchanged |
---
12. Share to App (External File Sharing)
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
12.1 |
Share a file from another app |
From the device Files app (or another app), share a file and select OpenProject |
OpenProject opens the Share page with the file ready to attach |
|
12.2 |
Select a project for attachment |
On the Share page, select a target project |
Project is selected and work packages for that project are available |
|
12.3 |
Select a work package |
Select a work package to attach the file to |
Work package is confirmed as the attachment target |
|
12.4 |
Confirm attachment upload |
Tap Attach/Confirm |
File is uploaded to the selected work package; success state is shown |
|
12.5 |
Cancel sharing |
Open the Share page and tap Cancel/Back |
App closes the share intent; no file is uploaded |
---
13. Navigation & General
# |
Use Case |
Steps |
Expected Result |
Result |
|---|---|---|---|---|
13.1 |
Bottom navigation tabs |
Tap each icon in the bottom navigation bar |
Each tab navigates to the correct screen |
|
13.2 |
Back navigation |
Navigate into a deep screen and tap the back button/gesture |
App navigates back through the screen stack correctly |
|
13.3 |
Deep link to work package |
Open a valid deep link to a work package (e.g., from a email) |
App opens and navigates directly to the correct work package |
|
13.4 |
App runs without crashes (baseline) |
Use the app normally for 5 minutes across multiple screens |
No unexpected crashes or ANR (unresponsive) events occur |