-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest.html
More file actions
192 lines (190 loc) · 12.5 KB
/
test.html
File metadata and controls
192 lines (190 loc) · 12.5 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
<!doctype html>
<html lang="en">
<head>
<!-- Required meta tags -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<!-- Font Awesome icons (free version)-->
<script src="https://use.fontawesome.com/releases/v5.15.3/js/all.js" crossorigin="anonymous"></script>
<!-- Bootstrap CSS -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="css/style.css" />
<title>AVINA website</title>
</head>
<body>
<nav class="navbar fixed-top navbar-expand-sm navbar-light bg-light">
<div class="container">
<span class="navbar-brand mb-0 h1">AVINA</span>
<button
type="button"
data-bs-toggle="collapse"
data-bs-target="#navbar"
aria-controls="navbar"
aria-expanded="false"
aria-label="Toggle navigation"
class="navbar-toggler"
>
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbar">
<ul class="navbar-nav ms-auto ">
<li class="nav-item active">
<a href="index.html" class="nav-link">Home</a>
</li>
<li class="nav-item active">
<a href="overview.html" class="nav-link">Overview</a>
</li>
<li class="nav-item active">
<a href="implementation.html" class="nav-link">Implementation</a>
</li>
<li class="nav-item active">
<a href="#" class="nav-link">Testing</a>
</li>
<li class="nav-item active">
<a href="installation.html" class="nav-link">Installation</a>
</li>
<li class="nav-item active">
<a href="team.html" class="nav-link">Team</a>
</li>
<li class="nav-item active">
<a href="https://github.com/UCL-SightPlusPlus" class="nav-link">
<i class="fab fa-github" style="width:25px; height:25px;"></i>
</a>
</li>
</ul>
</div>
</div>
</nav>
<!-- Main Content-->
<div class="container mt-5 head">
<div class="text-center">
<div id="test" >
<h2 class="fw-light">Testing</h2>
<div class="container mt-5 mb-5" style="width: 70%;">
<div class="container text mb-5">
<p>
We used 2 main testing techniques to ensure our software meets the specific requirements to produce a quality product, Functional testing, and Non-Functional testing.
</p>
<p>
For functional testing of the AVINA location server, we have written unit tests on functions and integration tests on the REST API functionalities. The tests cover a wide range of the location server’s functionality, specifically there are 34 tests that run in 3 seconds, achieving 90.77% statement coverage, 81.74% branch coverage, 86.08% function coverage and 91.14% line coverage. The tests were created using Mocha, a JavaScript test framework running on Node.js which allows asynchronous test , test coverage report and the use of any assertion library. We also used Chai as a Test Driven Development / Behavior Driven Development assertion library with Mocha. The organisation server adopted the same functional testing strategy as location server.
</p>
</div>
<div class="container text mb-5">
<p>
For our app, the functions require inputs from the real world, for example, user’s speech, Wi-Fi signals and Bluetooth beacon signals, so these cases were not mockable. In this situation, we used system tests to ensure the correctness of our functions.
</p>
<p>
Unit Test. The communication between the app and the location server can be tested through unit test. There are four situations, and the testing results are shown in Table 1.
</p>
<table border="1">
<tr class="tr">
<th class="th" style="text-align: center">Situation</th>
<th class="th" style="text-align: center">Description</th>
<th class="th" style="text-align: center">Expected Result</th>
<th class="th" style="text-align: center">Result</th>
</tr>
<tr class="tr">
<td class="td" align="ce">When the closestBeacon is -1.</td>
<td class="td">The app doesn’t get any signals from Bluetooth beacon and user asks a question.</td>
<td class="td">There is no message for the user.</td>
<td class="td">Passed</td>
</tr>
<tr class="tr">
<td class="td">When the cloestBeacon is not -1.</td>
<td class="td">The app get a signal from the closest Bluetooth beacon and user asks a question.</td>
<td class="td">There is a message about the information around.</td>
<td class="td">Passed</td>
</tr>
<tr class="tr">
<td class="td">When the lastFloor is not changed.</td>
<td class="td">The user doesn’t change floor.</td>
<td class="td">The message should tell the user he/she is on the same floor.</td>
<td class="td">Passed</td>
</tr>
<tr class="tr">
<td class="td">When the lastFloor is not changed.</td>
<td class="td">The user changes floor.</td>
<td class="td">The message should tell the user he/she is on a different floor.</td>
<td class="td">Passed</td>
</tr>
</table>
<p align="center">Table 1</p>
<p>
The remaining functions of the location server and the mobile app are tested through manual system tests, as the Table 2 shows below. These results show that our service meets the requirements and works as expected.
</p>
<table border="1">
<tr class="tr">
<th class="th" style="text-align: center">Situation</th>
<th class="th" style="text-align: center">Description</th>
<th class="th"style="text-align: center">Expected Result</th>
<th class="th"style="text-align: center">Result</th>
</tr>
<tr class="tr">
<td class="td">The location server and Sight++ WiFi are not found.</td>
<td class="td">There is no Sight++ service in the area.</td>
<td class="td">The app should continuously scan the WiFi.</td>
<td class="td">Passed</td>
</tr>
<tr class="tr">
<td class="td">The location server is down but the Sight++ WiFi is found.</td>
<td class="td">The location server is not connectable, but the WiFi is connectable.</td>
<td class="td">The app should push a notification to the user to connect to the Sight++ WiFi and keep finding the server.</td>
<td class="td">Passed</td>
</tr>
<tr class="tr">
<td class="td">Both the location server and Sight++ WiFi are working.</td>
<td class="td">The system works as expected.</td>
<td class="td">The app should connect to the server and start scanning the Blue- tooth beacon signals.</td>
<td class="td">Passed</td>
</tr>
<tr class="tr">
<td class="td">The user asks a question.</td>
<td class="td">The user uses the STT function to ask a question.</td>
<td class="td">The app should transfer the speech into text and send the request to the server.</td>
<td class="td">Passed</td>
</tr>
<tr class="tr">
<td class="td">The user changes area.</td>
<td class="td">The user change from a room to another.</td>
<td class="td">The app should provide notifications to the user.</td>
<td class="td">Passed</td>
</tr>
<tr class="tr">
<td class="td">The app receives answers from the server.</td>
<td class="td">After the app send the request, the server responds with a message.</td>
<td class="td">The app should receive that message and speak it out using the TTS function in user’s language.</td>
<td class="td">Passed</td>
</tr>
<tr class="tr">
<td class="td">The user cancels the question.</td>
<td class="td">The user doesn’t want to ask the question after pressing the button.</td>
<td class="td">No request sent to the server.</td>
<td class="td">Passed</td>
</tr>
<tr class="tr">
<td class="td">The user wants to correct the question and resend it.</td>
<td class="td">The result of STT is not correct. The user wants to change it using the text field and press the send button next to it.</td>
<td class="td">The question is updated and resent to the server.</td>
<td class="td">Passed</td>
</tr>
</table>
<p align="center">Table 2</p>
<h4 class="fw-light">Future Work</h4>
<p>In the future, we envision our system to be able to provide real-time insights to a user ahead of visiting a AVINA enabled location. For that reason, we need to secure the location server’s APIs so that we can expose it to the internet. The application right now can be configured to use a self-signed SSL certificate, but changes are needed to ensure the security of the system. The same optimisation to ensure the server is secure needs to be done for the organisation server as well. </p>
<p>Once the location server is exposed to the Internet, further work can be done on the location server and the app to remove the need for a UDP connection to be established between the two for the app to get access to information. </p>
<p>Currently, we only provide information to the user about physical queueing and waiting area space utilization. In the future, we hope we can add support for static points of interests such as footfall—and directions to seating, pathways, exits, washrooms, or specific offices and rooms.</p>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Footer-->
<footer class="border-top">
<img src="images/logos.png" style="width: 500px; height: 58.5px; display: block; margin: auto;" class="mt-3 mb-3">
<div class="small text-center text-muted fst-italic">Copyright © AVINA 2021</div>
</footer>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-U1DAWAznBHeqEIlVSCgzq+c9gqGAJn5c/t99JyeKa9xxaYpSvHU5awsuZVVFIhvj" crossorigin="anonymous"></script>
</body>
</html>