-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathTEST_DOCUMENTATION
More file actions
208 lines (177 loc) · 9.91 KB
/
TEST_DOCUMENTATION
File metadata and controls
208 lines (177 loc) · 9.91 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
App Name: Educado
Testing Documentation
1. Introduction
Purpose of Testing Document:
The purpose of this document is to outline the testing procedures and criteria for the Educado App. It aims to ensure comprehensive testing coverage across various aspects of the application, including functionality, usability, compatibility, performance, and security. This document is a guideline for testers and developers to conduct structured testing and verify the app's readiness for deployment on the Google Play Store.
Scope of Testing:
The scope of testing encompasses all the key features and functionalities of the Educado App across multiple devices and Android versions. It includes but is not limited to login functionality, navigation, data processing, user interactions, and security measures. This testing document outlines specific test cases and scenarios to validate the app's behaviour under various conditions.
2. Test Objectives
* Functional Testing
* Usability Testing
* Compatibility Testing
* Performance Testing
* Security Testing
3. Test Environment
Devices:
* Oneplus 11 (Android 13)
* Oneplus Nord 2 (Android 13)
* Motorola 6G (Android 9)
* Emulators: Pixel 7, Pixel 6a, (Android 13)
4. Test Cases
4.1 Functional Testing
Login Routes:
POST /auth/login
* Test case 1: Should find a user mail without differentiating between upper- and lowercase
* Test case 2: Returns error if user is not found
* Test case 3: Returns error if password is incorrect
* Test case 4: Returns token if user is found and password is correct
Reset Password Routes:
POST auth/reset-password-request
* Test case 5: Returns error if email is not found
* Test case 6: Returns success if email is found and email is sent
* Test case 7: Returns error if email is not successfully sent
* Test case 8: Returns error if reset password attempts > 3
* Test case 9: Clears reset password attempts after expiration
* Test case 10: Returns error if token is wrong
Signup routes:
POST auth/signup
* Test case 11: Saves the user in the database
* Test case 12: Returns error if email is missing
* Test case 13: Returns error if password is missing
* Test case 14: Returns error if email does not contain @ and domain
* Test case 15: Returns error if email is less than 6 characters
* Test case 16: Returns error if name is missing
* Test case 17: Returns error if name is out of bounds (1-50)
* Test case 18: Returns error if name contains illegal symbols
* Test case 19: Test that the password is not stored as plain text
* Test case 20: Test that emails must be unique when registering
Student Routes:
GET /students/:id/subscriptions
* Test case 21: Should get user subscriptions
* Test case 22: Should handle user not found error
* Test case 23: Should handle invalid user id
PATCH /students/:userId
* Test case 24: Update points successfully
* Test case 25: Update level successfully
* Test case 26: Handles validation errors for points
* Test case 27: Handles negative value for points
* Test case 28: Handles 0 value for points
PATCH /students/:userId/completed
* Test case 29: Adds exerciseId to completed exercises correctly
* Test case 30: Adds two exerciseIds to completed exercises correctly, with different parentCourses
* Test case 31: Adds two exerciseIds to completed exercises correctly, with the same parentCourse
* Test case 32: First adds an exercise as failed, then completes it
* Test case 33: Fails to add a non-existing exerciseId to completed exercises
* Test case 34: Fails to add an exerciseId to completed exercises for a non-existing user
User Routes
DELETE /users/:userId
* Test case 35: Deletes a user successfully
* Test case 36: Updates user email successfully
* Test case 37: Checks that emails must be unique when updating
* Test case 38: Updates user first name successfully
* Test case 39: Updates user last name successfully
* Test case 40: Updates user fields successfully
* Test case 41: Handles validation errors for email
* Test case 42: Handles validation errors for the first name
PATCH /users/:userId
* Test case 43: Should change user credentials
* Test case 44: Return error if trying to edit the password
* Test case 45: Return error if there is an attempt to update an illegal field name
* Test case 46: Return successful updated object with a new dateUpdated value
* Test case 47: Return error if the email you try to PATCH is identical
* Test case 48: Return error if the firstName you try to PATCH is identical
PATCH /api/users/:userId/password
* Test case 49: Should change the password
* Test case 50: Should return an error if the old password is wrong
* Test case 51: Should return an error if the new password is invalid
* Test case 52: Should return an error if the new password is missing
* Test case 53: Should return an error if the id is invalid
* Test case 54: Should return an error if no user is found with the id
Course Routes
GET /courses/:id
* Test case 55: Should get a specific course
* Test case 56: Should handle the course not found error
* Test case 57: Should handle an invalid course id
GET /courses/:id/sections
* Test case 58: Should get all sections from a course
* Test case 59: Should handle the course not found error
* Test case x: Should handle invalid course id
GET /courses/:courseId/sections/:sectionId
* Test case 61: Should get a specific section
* Test case 62: Should handle course not found error
* Test case 63: Should handle invalid course id
* Test case 64: Should handle section not found error
* Test case 65: Should handle invalid section id
GET /courses/:id/sections, error handling
* Test case 66: Should handle course does not contain sections
* Test case 67: Should handle sections not found
POST /courses/:id/subscribe
* Test case 68: Should subscribe a user to a course
* Test case 69: Should handle user not found error when subscribing
* Test case 70: Should handle invalid user id when subscribing
* Test case 71: Should handle course not found error when subscribing
* Test case 72: Should handle invalid course id when subscribing
* Test case 73: Increments number of subscribers for a course, when subscribing
* Test case 74: Should handle user already subscribed error
POST /courses/:id/unsubscribe
* Test case 75: Error when unsubscribing to course with no subscriptions
* Test case 76: Should handle user not found error when unsubscribing
* Test case 77: Should handle invalid user id when unsubscribing
* Test case 78: Should handle course not found error when unsubscribing
* Test case 79: Should handle invalid course id when unsubscribing
* Test case 80: Decrements number of subscribers for a course, when unsubscribing
Lecture Routes:
GET /lectures/:lectureId
* Test case 81: Should return a lecture
Utility Routes:
GET /utility/online
* Test case 82: Test if online
4.2 Usability Testing
Usability tests have been conducted by the intended user.
* Test Case 83: Check if all text is readable for the user
* Test Case 84: Check if the user understands all the words/text
* Test Case 85: Check if the design is intuitive for the user
4.3 Compatibility Testing
Test app on various screen sizes.
* Test Case 86: Test on pixel 6
* Test Case 87: Test on pixel 7
* Test Case 88: Test on Motorola 6G
* Test Case 89: Test on Oneplus 11
Ensure compatibility with different Android versions.
* Test Case 90: Test on Android version 9
* Test Case 91: Test on Android version 12
* Test Case 92: Test on Android version 13
4.4 Performance Testing
Assess app response time under varying network conditions.
* Test Case 93: Test that it works with full Wi-Fi
* Test Case 94: Test that it works with two out of three lines on Wi-Fi
* Test Case 95: Test that it works with only one out of three lines on Wi-Fi
* Test Case 96: Test that it works on 4G
* Test Case 97: Test that it works on 3G
4.5 Security Testing
Encryption of password
* Test Case 98: Test that it encrypts the password correctly
5. Test Results
Summary of test outcomes for each test suite:
Test Suite | Passed Tests
------------------------------------------|--------------
Functional testing: |
Login Routes | 4/4
Reset Password Routes | 6/6
Signup Routes | 10/10
Student Routes | 14/14
Users Routes | 20/20
Course Routes | 26/26
Lecture Routes | 1/1
Utility Routes | 1/1
Usability testing: | 3/3
Compability testing: | 7/7
Performance testing: | 5/5
Security testing: | 1/1
------------------------------------------|--------------
Total Tests | 98/98
6. Issues and Bug Tracking
No issues or bugs identifies by now.
7. Conclusion
The conclusion is that the app is ready for deployment.
However, implementing more test and security measures will be priority for furture release.