# | Use Case | Steps | Expected Result |
|---|---|---|---|
1.1 | Fresh install | Uninstall the app, install the new build, launch it | App opens without errors; onboarding or login screen is shown |
1.2 | Update over existing install | Install the previous release, log in, then install the new build on top | App launches; user is still logged in, no crash |
# | Use Case | Steps | Expected Result |
|---|---|---|---|
2.1 | Sign in with valid credentials | Enter a valid instance URL, email, and password; tap Sign In | User reaches the Home dashboard |
2.2 | Sign in with wrong credentials | Enter a valid URL with a wrong password; tap Sign In | Error message is shown; user stays on Sign In page |
2.3 | Session persists after restart | Log in, close the app fully, reopen it | User lands on Home dashboard without re-login |
2.4 | Sign out | Navigate to Account, tap Log Out | User is returned to the Sign In screen |
# | Use Case | Steps | Expected Result |
|---|---|---|---|
3.1 | Dashboard loads | Log in and open the Home tab | Widgets load without errors or blank screens |
3.2 | Navigate from widget | Tap a work package in any Home widget | Work Package Details screen opens |
# | Use Case | Steps | Expected Result |
|---|---|---|---|
4.1 | Projects list loads | Open the Workspaces tab | List of projects is displayed |
4.2 | Open a project | Tap any project in the list | Project overview opens with at least one tab loading correctly |
# | Use Case | Steps | Expected Result |
|---|---|---|---|
5.1 | Work package list loads | Open the Work Packages tab | List of work packages is displayed |
5.2 | Open work package details | Tap any work package | Details screen shows title, status, and description |
5.3 | Create a work package | Tap "+", fill in title, type, and project; save | Work package is created and visible in the list |
5.4 | Edit a field | Open a work package, change the status, save | Updated status is shown in the details view |
5.5 | Add a comment | Open a work package, go to Activity tab, post a comment | Comment appears in the activity timeline |
# | Use Case | Steps | Expected Result |
|---|---|---|---|
6.1 | Time tracking page loads | Open the Time Tracking tab | Calendar and time entries load |
6.2 | Start and stop timer | Open the Timer tab, tap Start, wait a few seconds, tap Stop | Log Time form opens pre-filled with elapsed time |
6.3 | Save a time entry | Fill in the Log Time form and confirm | Entry is saved and appears in the calendar view |
# | Use Case | Steps | Expected Result |
|---|---|---|---|
7.1 | Search returns results | Open Search, type a known work package title | Matching results appear in the list |
7.2 | Navigate to result | Tap a result | Correct work package detail screen opens |
# | Use Case | Steps | Expected Result |
|---|---|---|---|
8.1 | Notifications list loads | Open the Notifications tab | Notification list is displayed (or empty state shown) |
8.2 | Tap a notification | Tap any notification | Associated work package detail opens |
# | Use Case | Steps | Expected Result |
|---|---|---|---|
9.1 | Profile loads | Open the Account tab | User name, email, and avatar are displayed |
9.2 | Settings are accessible | Open Account → Work Package Settings | Settings page opens without error |
# | Use Case | Steps | Expected Result |
|---|---|---|---|
10.1 | Bottom nav tabs all work | Tap each icon in the bottom navigation bar | Each tab opens its correct screen |
10.2 | Back navigation | Go several screens deep, press back | App navigates back correctly without crash |
10.3 | Offline error handling | Disable network, try to load any screen | Error or offline message shown; app does not crash |
10.4 | No crash during basic usage | Use the app across all main sections for ~10 minutes | No crashes or unresponsive states occur |