Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
Table of Contents
1. Introduction ................................................................................................................... 1 1.1. Purpose ............................................................................................................................... 1 1.2. Terms and Abbreviations ..................................................................................................... 1
2. System Description ........................................................................................................ 2 2.1. System Application .............................................................................................................. 2 2.2. System Organization ............................................................................................................ 2
2.2.1. System Architecture ........................................................................................................................... 2 2.2.2. Architecture Explanation .................................................................................................................... 3 2.2.3. System Maintenance Skill Requirement ............................................................................................. 3
2.3. Security ............................................................................................................................... 4 2.3.1. Installed Security Measure Description .............................................................................................. 4 2.3.2. Maintenance Concern ........................................................................................................................ 4
3. Development Environment ............................................................................................ 5 3.1. Equipment Environment ...................................................................................................... 5 3.2. Computer Hardware ............................................................................................................ 5 3.3. Support Software ................................................................................................................. 5
3.3.1. System Design Artefact ....................................................................................................................... 5 3.3.2. Fictional Decomposition ..................................................................................................................... 6 3.3.3. Key Function Explanation (Source Code) ............................................................................................ 7
4. Data Maintenance ......................................................................................................... 9 4.1. Data Source ......................................................................................................................... 9 4.2. Data processing ................................................................................................................. 12
4.2.1. Safety Index Calculation ................................................................................................................... 12 4.2.2. Real-time Pedestrian Flow Processing .............................................................................................. 13 4.2.3. Add data to Pipeline ......................................................................................................................... 14
4.3. Database ........................................................................................................................... 16 4.3.1. Database Structure ........................................................................................................................... 16 4.3.2. Database Characteristics .................................................................................................................. 16
5. Troubleshooting Procedures ........................................................................................ 17 5.1. Predictable Error ................................................................................................................ 17 5.2. Unpredictable Error ........................................................................................................... 18
6. Testing ........................................................................................................................ 20 6.1. Testing Information ........................................................................................................... 20 6.2. Documented testing Details ............................................................................................... 20
6.2.1 Usability Testing ................................................................................................................................ 20 6.2.2. Integrate Testing ............................................................................................................................... 23 6.2.3. Backup and Recovery Testing ........................................................................................................... 25
6.3. Testing Conclusion ............................................................................................................. 27
Melbourne Wizards Maintenance Document 31 May 2019
1
1. Introduction 1.1. Purpose The purpose of this document is describing important and convoluted logic of the application “Purple Umbrella” to lay the foundation for acceptance and maintenance of subsequent systems, which includes but not limited to corrective maintenance, adaptive maintenance, perfect maintenance, and preventive maintenance. This maintenance document describes and explains the technical details from multiple perspectives which covers the development environment configuration, system design, system architecture, functional decompaction and key function explanation, data maintenance, troubleshooting procedures and test case. This document aims to help technique staff master the maintenance methods effectively and efficiency.
1.2. Terms and Abbreviations
Term Description
ETL The acronym for the process that extract, transform and load data
Function The smallest unit of processing tasks when explain source code
IDE The acronym for Integrated Development Environment
RAM The acronym for Random Access Memory
System The term “system” as used in this document refers to the “Purple Umbrella” system unless otherwise stated
Safety Index An index created by team Melbourne Wizards which calculated based on multiple factors, it used to descript the comfortable level of different road segments (see detail at Section 4.3.1 in this document)
Melbourne Wizards Maintenance Document 31 May 2019
2
2. System Description 2.1. System Application “Purple Umbrella” committed to providing young women with an easy-to-use and effective mobile website to help them avoid the risk of suffering from street harassment in Melbourne city centre. The main features of “Purple Umbrella” are:
• Visualize data about the location of bars, night clubs, and construction sites • Visualize pre-calculated safety index • Visualize data about real-time pedestrian flow (update every 30 mins) • Visualize the circle user can arrive in 10 minute by walking • Provide navigation and show the shortest route • Visualize user selected factors on their route • Allow user report an incident and select time, address and incident type • Allow user to guarantee an incident reported by others • Visualize different incident on the map with different marker • Show a step-by-step tour to user to explain functions • Sound a noise and/or call police when emergency • Provide information of organizations which may help
Link of the build: www.purpleumbrella.ml
2.2. System Organization
2.2.1. System Architecture The diagram of system architecture is displayed below:
Melbourne Wizards Maintenance Document 31 May 2019
3
2.2.2. Architecture Explanation The explanation of each componence is summarized in the table below:
Componence Name Explanation Functions
Open data source (Part One)
It includes the source dataset No.1, No.2, No.3, and No.4 (see details at Section 4.1 in this document)
It is used as the foundation to generate the Safety Index (see detail at Section 4.2.1 in this document)
Azure Database
The database of the system. Microsoft Azure supports data structures includes relational data and JSON
Store all the system operating needed data.
Open data source (Part Two)
It includes the source dataset No.5, No.6, and No.7 (see details at Section 4.1 in this document)
It is used as the foundation to generate real-time pedestrian flow, location of night clubs and construction sites
Linux Server ��
It is used to process the ETL process to wrangling the data which ingested from the open data source (part two)
Firewall --
Monitors incoming and outgoing network traffic between database and web server and filter packets when necessary.
Web Server ��
Respond to webpage requirement, delegate the generation of dynamic responses to other JS script. Call and update data of database.�
2.2.3. System Maintenance Skill Requirement Category Skill Operating System Windows, Linux Software Engineering Tool Microsoft Visual Studio Front-end Development JavaScript, HTML, CSS�Back-end Development C# Database Operation SQL Data Processing Python
Melbourne Wizards Maintenance Document 31 May 2019
4
2.3. Security
2.3.1. Installed Security Measure Description
• SSL certification: The current system has install SSL to encrypt the process of data transfer between our web server and users’ browser. So that this secure link ensures that all data passed between the web server and browsers remain private and integral.
The current SSL is installed by using the service provided by Cloudflare.com. In details, the steps of this process can be summarised as:
Ø Create an account on Cloudflare Ø Add complete website URL to Cloudflare and waiting for scan Ø Select a free plan once the scan is done Ø Point the name server of Purple Umbrella to Cloudflare, delete the existing
entries, and add the DNS that Cloudflare provided. Ø Go to the ‘Crypto’ page, select ‘Flexible and the rules “always use https”
• Limit user input Use present options instead of text input from users to realize user input. So that the risk of XSS attack is reduced.
In details, for the navigation feature, all input address need to match an address which confirmed to exist. For the report feature, time and report type are selected by user rather than be inputted.
2.3.2. Maintenance Concern Category Description Frequency Importance Maintenance
OS Security
Maintenance
Maintains the software foundation on which the server runs.
Weekly High
1. Open the OS Event Viewer frequently, check system log, security log, and application logs to identify unusual exceptions and handle them ASAP. 2. Download latest service pack and install.
Database Security
Maintenance
Maintains the foundation of the website Weekly High
1. Back up the database regularly 2. Add secondary authentication of the database when necessary.
Webpage Content Security
Maintenance
Update webpage content Monthly Medium
1. Carefully install unfamiliar plugins. 2. Don’t add code that calls external links.
Melbourne Wizards Maintenance Document 31 May 2019
5
Vulnerability scanning
Detect vulnerabilities early and fix them in time
Seasonally High
1. Use the software commonly used by cyber hackers to attack the servers actively. 2. Document vulnerabilities and fix them in time.
IS Auditing
Detect vulnerabilities from external party
Yearly Low
Regularly consulting firms to assess IS security measures
3. Development Environment 3.1. Equipment Environment The system were developed under the integrated development environment that Microsoft Visual Studio (.NET Framework 4.5 is required). The Operating System is required:
Ø Windows 10 version 1507 or higher Ø Windows Server 2016 Ø Windows 8.1 Ø Window 7 SP1 with lasted Windows Updates
3.2. Computer Hardware Processor: 1.8 GHz or faster. (Dual-core or better) RAM: Recommended 4 GB Hard Disk Space: 20-50 GB free space of typical installation
3.3. Support Software This section includes system design artefacts, functional decomposition, and organized explanation of key functions which are the basis of realized the features of this system. This section aims to help functional modification, system secondary development, or system redesign.
3.3.1. System Design Artefact
• Use Case Diagram See at TP10-Handover Package-Purple Umbrella/TP10-System Design Diagrams-Purple Umbrella/ TP10-UseCaseDiagrams-Purple Umbrella
• Activity Diagram See at TP10-Handover Package-Purple Umbrella/TP10-System Design Diagrams-Purple Umbrella/ TP10-ActivityDiagrams-Purple Umbrella
• System Sequence Diagram See at TP10-Handover Package-Purple Umbrella/TP10-System Design Diagrams-Purple Umbrella/ TP10-SystemSeqenceDiagrams-Purple Umbrella
Melbourne Wizards Maintenance Document 31 May 2019
7
3.3.3. Key Function Explanation (Source Code) This table list the information of the key functions about this system in alphabetical order based the name of functions:
Function Name Input Output Brief Description Link
addBarsLayer() Location of bars from the
system Azure database
(JSON file)
Visible bars location
on the map
Get bars location data from back-end
and display on the map.
Decompress TP10-
Code_The Build-
Purple
Umbrella.zip à
Purple_Umbrella
/Purple_Umbrella
/Scripts
/Iteration3
/navigationmap.js
addReportsLayer() Historical incident reports
the system Azure database
(normal ER table)
Visible
Incident reports on the
map
Get report data from back-end and
display different icon on the map by
different kind of report.
addNightClubsLayer() Location of night clubs
from the system Azure
database (JSON file)
Visible night club
location on the map
Get night club location data from
back-end and display on the map.
confirmReport(id) The ID of the reported
incident
Update table in
database;
Reload the window
Allow other user to confirm a
reported incident.
createFilter(layerID,text) LayerID of different
filterable elements
Different visibility of
the layers.
Add checkbox and label elements for
the layer, update the visibility of the
layer when the checkbox changes.
displayTuturial() Self-defined steps of the
variable “tour”
Visible steps of the
map instruction
Provide an step-by-step instruction
of how to use the map.
Melbourne Wizards Maintenance Document 31 May 2019
8
getAllRoadData()
Individual index (bar,
openstore, CCTV,street
light) from the system
Azure database (normal
ER table)
Visible overall index
on the map
Display safety index of road
segments in different color on the
map by different numerical interval.
Decompress TP10-
Code_The Build-
Purple
Umbrella.zip à
Purple_Umbrella
/Purple_Umbrella
/Scripts
/Iteration3
/navigationmap.js getPedestrainCount()
Pedestrian count and
sensor location from self-
build API
Visible
Pedestrian flow on the
map
Get pedestrian count from the API
(which build by data analyst of team
Melbourne Wizards) and display
different size of round by different
number of pedestrian flow.
getRoute(star, end) Longitude and Latitude of
user input/choosed start
point and destination
Visible route from the
start point to the
destination
Display the route from the start
point to the destination
postReport() User input incident time,
type, address/ default
address
Update the count of
incidents of database.
Allow user to report an incident and
update database.
Decompress TP10-
Code_The Build-
Purple
Umbrella.zip à
Purple_Umbrella
/Purple_Umbrella
/Scripts
/Iteration3
/mapcontrols.js
trackUser() Longitude and Latitude of
user current location
Visible current
location on the map Locate current location of user.
Melbourne Wizards Maintenance Document 31 May 2019
9
4. Data Maintenance 4.1. Data Source
No Dataset Name Physical
Access
Frequency
of source
updates
Frequency
of system
updates
Granularity Copyright / licensing
details
Details about dataset
1
Bars and pubs with
patron capacity
https://data.melbourn
e.vic.gov.au/Econom
y/Bars-and-pubs-
with-patron-
capacity/mffi-m9yn
CSV
downloaded
Annually Annually
Latitude and
Longitude of
the pub or bar
Licensed to
creativecommons
It shows bar/tavern/pub
with their trading name,
patron capacity and
location.
2
Cafes and restaurants, with
seating capacity
https://data.melbourn
e.vic.gov.au/Econom
y/Cafes-and-
restaurants-with-
seating-
capacity/xt2y-tnn9
CSV
downloaded
Annually Annually
Latitude and
Longitude of
the business
establishment
Licensed to
creativecommons
It shows business
establishments with their
trading name, industry
classification, number of
dining seats and location.
Melbourne Wizards Maintenance Document 31 May 2019
10
3
Feature Lighting
https://data.melbourn
e.vic.gov.au/Assets-
Infrastructure/
Feature-Lighting-
including-light-type-
wattage-and-/4j42-
79hg
CSV
downloaded
Weekly
Every 1
month
Latitude and
Longitude of
the lamp post
Licensed to
creativecommons
This dataset contains
information about
location, lighting type
and wattage of feature
lighting across City of
Melbourne.
4
Safe City cameras
https://www.melbour
ne.vic.gov.au/comm
unity/safety-
emergency/Pages/saf
e-city-cameras.aspx
Manually
N/A
Every 1
month
Name of
location
where Safe
City camera
is installed
Licensed to
creativecommons
The cameras operate in
areas where antisocial
behaviour or criminal
activity is more likely to
occur. Pavement plaques
have been placed in the
monitored areas.
5
Pedestrian Counting
System – Past Hour
(counts per minute)
https://data.melbourn
e.vic.gov.au/Transpo
rt-
Movement/Pedestria
n-Counting-System-
Past-Hour-counts-
per-mi/d6mv-s43h
CSV
downloaded
15 minutes 1 hour
Not
Applicable
Licensed to
creativecommons
This dataset contains minute
by minute directional
pedestrian counts for the last
hour from pedestrian sensor
devices located across the city.
The data is updated every 15
minutes and can be used to
determine variations in
pedestrian activity throughout
the day.
Melbourne Wizards Maintenance Document 31 May 2019
11
6
Pedestrian Counting
System – Sensor
Locations
https://data.melbourn
e.vic.gov.au/Transpo
rt-
Movement/Pedestria
n-Counting-System-
Sensor-
Locations/h57g-
5234
CSV
downloaded
Daily Not
Applicable
Latitude and
Longitude of
the sensor
Licensed to
creativecommons
This dataset contains
status, location and
directional information
for each pedestrian
sensor device installed
throughout the city. The
sensor_id column can be
used to merge the data
with related datasets.
7
Constriction sites
https://data.melbourn
e.vic.gov.au/resource
/gh7s-qda8.csv
CSV
downloaded
Monthly Monthly
Latitude and
Longitude of
construction
sites
Licensed to
creativecommons
It present the current
constructions location in
Melbourne CBD
Melbourne Wizards Maintenance Document 31 May 2019
12
4.2. Data processing
4.2.1. Safety Index Calculation In this product, the development team use four data sets (café, street light, bar/pub, security
camera) to calculate the Road safety index. The logical behind the calculation process is detailed below.
Step 1: Divide Melbourne CBD into different small areas
Step 2: Calculate how many “café, street light, bar/pub and security camera” in one small
area
Step 3: Calculate the safe index for each area
The way the development team calculate the safe index for each area is simple—by addition. For example, in one area, there are 4 cafés (+1 x 4), 1 bar (-1 x 1), 2 security camera (+1 x 2),
4 street lights (+1 x 4). The equation for calculating the safety index will be “4 – 1 + 2 + 4 = 9”. As a result, the safety index for this area is 9.
In this product, our development team decide that café, security camera and street are features which can prevent street sexual harassment so we assign these features a positive
number. On the other hand, we assign the negative score for bar as the place close to bar has higher probability of having street sexual harassment.
Melbourne Wizards Maintenance Document 31 May 2019
13
Another thing we have to mention here is that “different store may have different score”. For example, assume there are two café stores in one area, the first one is Starbuck, which is a
famous café shop and always have many customers there. The second one is a small local café store, which may not famous and not have many customers there. For the first one, we
will assign higher score for them such as +5. For the second one, we only assign +1 for them.
Step 4: Calculate the Road safety index
The logic for calculating the Road safety index is simple also. We can use above picture to
explain. Assume we are going to calculate the safety index for a road section (the red line), and we know the safe score for Area1, Area2, Area3 and Area4.
Since these four areas are adjacent to this road, we can use the summation of safe score from these four areas as the road’s safe index. Then, we simply add these areas and get the final
road safety score.
By having these four steps, the development team can calculate the Road safety index and display on the product. If you want to know the detailed of programming code, please check
the data process python code. In that file, you can find the detailed information you need in the code comment.
4.2.2. Real-time Pedestrian Flow Processing l The real-time pedestrian process architecture
Melbourne Wizards Maintenance Document 31 May 2019
14
In this system, the development team also collects the real-time pedestrian data and show the
data on a map. But, how the team deals with the data? We can use the above picture to explain. The process can be separated into three parts.
The first part is collecting the data from Melbourne Government OpenData API (the left bottom rectangle in above picture). In this part, we collect two data sets from the Government
API. One data set is relating to the pedestrian counting sensor location. Another data set is about the number of how many people is detected by the pedestrian counting sensor. Due to
the reason that these two data sets are updated every hour, our program code will connect to the Government API, get the data, and update the data every hour.
The second part is wrangling process (the top middle rectangle in above picture). Since we get two data sets from Government API, we have to combine these two data sets firstly.
Then, we transform the data (the transformation process includes deleting not-needed column and changing data format) into the JSON format that our front-end needs. Lastly, we save the
transform data into one file so that we can use flask to publish the data on a rest API. The third part is about flask (the right bottom rectangle in above picture). Since we have the
file that we want to publish, we can use flask to build a server on our machine and let the front-end connect to this place to get the data it needs.
By having these three parts, the development team can build the real-time pedestrian data
process system. If you want to know the detailed of programming code, please check the code. In that file, you can find the detailed information you need in the code comment.
4.2.3. Add data to Pipeline The data pipeline this project has consists of two python codes—“ped_sensor_python.py” and “flaskapp.py”. Generally speaking, the main function of the first code is extracting data
from Melbourne Government open-data API and transforming the data into a format that our website needs. Apart from the first code, the main function of the second code is creating a
flask server to provide the rest API so that our website can access and retrieve the data. Hence, when put a new data set into the existing data pipeline, it needs to fix these two
python codes. The description about how to fix these two codes is shown below:
• First step: fix ped_sensor_python.py There are several sections inside this python file, however, in this data wrangling process, only three sections needed to pay attention on:
Ø “deal with the API” section Ø “put the format into the JSON format we need” section
Ø “retrieve all data from previous data frame and put them all into a string file” section.
First of all, please find the “deal with the API” section. The code is below: ped_data_raw = requests.get("https://data.melbourne.vic.gov.au/resource/d6mv-s43h.csv?$limit=3000",headers={"X-App-Token":"sEwuYIdbmuKSqbkgnjWnwkskG"}).text … … …
Melbourne Wizards Maintenance Document 31 May 2019
15
You can change the current URL to the one you want to access. The program code will get the data from the URL you define and save into a python data frame. Then, you can use
pandas package to manipulate this data frame and make it become a format you want.
After finishing the data transform process, you need to put your data into a JSON file. Now, please check the “retrieve all data from previous data frame and put them all into a string
file”. The code is below: result['type'] = 'Feature' result['id'] = result['sensor_id'] result['count'] = result['count'].astype(str) result['properties'] = result['sensor_name'].apply(lambda x:"{'name': '" + x + "','count': ") result['properties'] = result['properties'] + result['count'] + "}" result['geometry'] = result['coordinates'].apply(lambda x:"{'type': 'Point', 'coordinates': " + str(x)) result_modified = result.iloc[:,[4, 6, 7, 5]] result_modified['id'] = result_modified['id'].astype(str) result_modified['final'] = result_modified['properties'].apply(lambda x: "{'type': 'Feature', 'properties': " + x + ",") result_modified['final'] = result_modified['final'] + " 'geometry': " + result_modified['geometry'] + "}, 'id': '" + result_modified['id'] + "'}" json_str = "" for i in range(len(result_modified)): if i != (len(result_modified)-1): json_str = json_str + result_modified['final'][i] + ", " else: json_str = json_str + result_modified['final'][i] json_str = json_str.replace("'", '"')
The code is about how to put current pedestrian data into a JSON format we prefer and save
into a string. You can use code as an example and think about what kind of JSON format you need. Then fix the code by yourself.
Lastly, since you already have the JSON string, the only thing you need to do is putting this
string into a file in your amazon ec2 instance. The code is below: file = open("sensor_raw_data.json","w") file.write(json_str) file.close()
Please change the filename to the one you want and save it.
• Second step: fix flaskapp.py In this python file, we have to tell the program code to find the file that we want to publish.
Check the code below: def get_tasks(): file = open('the location of your new json file', 'r') data = file.read() file.close() return data
Melbourne Wizards Maintenance Document 31 May 2019
16
Please change the file direction to the location you save your new file. Then, restart the flask server and you can access to the data.
4.3. Database
4.3.1. Database Structure
4.3.2. Database Characteristics Table Name: Road_Segment Attribute name Description
ID (PK) The ID of each road segment (see details of road segment at
Section 4.2.1 in this document)
Point1_X The Longitude of the start point of a road segment
Point1_Y The Latitude of the start point of a road segment
Point2_X The Longitude of the end point of a road segment
Point2_Y The Latitude of the end point of a road segment
Bar_Index
The index based on the number of bars of an area which a road segment located in, it is a componence of the overall
safety index. (see details of the Bar Index at Section 4.2.1 in this document)
Melbourne Wizards Maintenance Document 31 May 2019
17
Light_Index
The index based on the number of street light of an area
which a road segment located in, it is a componence of the overall safety index. (see details of the Street Light Index at
Section 4.2.1 in this document)
Store_Index
The index based on the number of open store of an area
which a road segment located in, it is a componence of the overall safety index. (see details of the store Index at
Section 4.2.1 in this document)
Camera_Index
The index based on the number of security camera of an area
which a road segment located in, it is a componence of the overall safety index. (see details of the Camera Index at
Section 4.2.1 in this document)
Table Name: JSON-Data Attribute name Description Name The name of Json file
JsonData Json file
Table Name: Reports Attribute name Description ID (PK) The unique code of each repotted incident
Longitude The longitude of the incident happened address
Latitude The latitude of the incident happened address
IncidentTime The report time of an incident
TypeID (FK) The category of the reported incident
ConfirmationNum
The number of conformation of a reported incident
Table Name: Report-Type Attribute name Description TypeID The unique code of a kind of incident type
Category The description of the type (category)
5. Troubleshooting Procedures There are many reasons for error occurring. For example, network instability, hardware
failure, software bugs, etc. The following subsections shows some normal error conditions and solutions.
5.1. Predictable Error • Windows authentication settings error
Solution: Open IIS à Find Website à Authentication à Open Function à Enable Windows Authentication
• Server permissions prevent the site from adding images in the background
Solution:
Melbourne Wizards Maintenance Document 31 May 2019
18
Remotely log in to the server à right click on the folder where the website is located à click Security à find setting of Permissions à set the function
• Failed to import RSA Key Solution: a) Export the RSA key container on the current computer aspnet_regiis -px "NetFrameworkConfigurationKey" D:/RSAkeys.xml -pri
b) Encrypt the configuration file on the current computer
c) On the deployed PC, import an RSA key container named
"NetFrameworkConfigurationKey" aspnet_regiis -pi "NetFrameworkConfigurationKey" Path/nameofthe key.xml
• Run normal in the local development environment, but when release to the server, there appears: “failed to write to the output file" The reason is because the eemp directory in the system directory does not have the
corresponding permissions Solution: C: \ Windows \ temp -> properties --> security --> edit --> add the read and write permissions of the NETWORK SERVICE.
• Failed to load ProviderPackage package correctly Solution:
The administrator opens the Developer Command Prompt for Visual Studio
5.2. Unpredictable Error The overall exception handling is an effective way to deal with unpredictable error, the code
is shown as below:
Node.js: process.on('uncaughtException', function(err) { console.log(err) });…
The try and catch blocks provided in C# provide a structured exception handling scheme. The
try catch itself does not affect the performance of the system. The try catch is does not affect
system performance when no exception occurs.
C#: sing System; namespace ErrorHandlingApplication {
C:\Program\Files\Microsoft Visual Studio\2016\Community\Common7\IDE\PublicAssemblies Gacutil -i Microsoft.VisualStudio.Shell.Interop.11.0.dll C:\Users\SiHao\AppData\Roaming\Microsoft\VisualStudio\15.0_4deacfc5
Melbourne Wizards Maintenance Document 31 May 2019
19
class DivNumbers { int result; DivNumbers() { result = 0; } public void division(int num1, int num2) { try { result = num1 / num2; } catch (DivideByZeroException e) { Console.WriteLine("Exception caught: {0}", e); } finally { Console.WriteLine("Result: {0}", result); } } static void Main(string[] args) { DivNumbers d = new DivNumbers(); d.division(25, 0); Console.ReadKey(); } } } Catch(Exception e) { ... Throw e }
Melbourne Wizards Maintenance Document 31 May 2019
20
6. Testing 6.1. Testing Information Category Date Tester Method Description Result
Usability
testing
8 April 2019; 29 April 2019;
16 May 2019;
Real end
user
The usability tests were completed by real target user without instructions in every
iteration after publishing the build.�Pass
Acceptance
/ Integrate
testing
21 May 2019 System acceptor
The acceptance test was completed by
system acceptor after the final improvement. This test cover all activities
an end user can make.
Pass
Backup and
recovery
testing
7 April 2019 – 9 April 2019;
28 April 2019- 20 April 2019;
15 May 2019–
17 May 2019;
23 May 2019-
25 May 2019
Developer
Full backup system and database; Executed manually;
Back-up versions store at local disk;
Recovery were usually executed two days
after the backup.�
Pass
6.2. Documented testing Details
6.2.1 Usability Testing Given Agile is the underlying philosophy of the development of “Purple Umbrella”, the usability of the system has tested in every iteration. The details are below:
• Iteration 1 Test date: 8 April 2019 User role: Real end user
Test device: PC-Google Chrome & Mobile-Safari Test strategy: user test the website without any instruction
Link of Iteration 1 system: www.purpleumbrella.ml/iteration1 Test Video: http://bit.ly/Utest-Iteration1-TP10 Test Result:
No. Category Function
point Problem Description /Feedback
Problem Solved?
1 UI Layout The layout is not good especially on mobile, When user want to change the preference,
they cannot see the map
YES
Melbourne Wizards Maintenance Document 31 May 2019
21
2 UI Slider Bar The slider bar only have 2 or 3 stops, so it is not a real “slide” operation.
Function deleted
3 Function Safety Index
Display
The safety point can be aggregated, but the
map only show the count of how many point here rather than the average point. which is
useless to user.
Function deleted
• Iteration 2 Test date: 29 April 2019 User role: Real end user
Test device: PC, Google Chrome Test strategy: user test the website without any instruction
Link of Iteration 2 system: www.purpleumbrella.ml/iteration2 Test Video: http://bit.ly/UTest-1-Iteration2-TP10 http://bit.ly/UTest-1-Iteration2-TP10 Test Result:
No. Category Function
point Problem Description /Feedback
Problem Solved?
1 UI Set
preference The heading is too large, and the checkbox is too small.
Function deleted
3 Function
Navigation
Bar of the webpage
When user click the “home” from the navigation bar, it seems to do not response. Then user can
know, it is because of I already on the homepage. But, if user can see a system
response, it will be better.
YES
3 Function Set
preference
After user click the “confirm” button from the dropdown menu, the menu is still here and what
is not expected. Again, when user click somewhere else on the screen, it will not disappear until user click the “Settings” button
again.
Function deleted
4 Function Set
preference After user save my preference, the view of the map seems to do not change
Function deleted
5 Function Navigation
When user’s address is out of the range of Melbourne CBD, the safety navigation seems
useless. If the address is not in the service scope, the system should give an immediate feedback.
YES
Melbourne Wizards Maintenance Document 31 May 2019
22
6 Function Navigation User don’t understand what the “draw my route” function stand for. Also, the icon of this
function is not familiar in my mind.
Function deleted
7 Function Navigation
When user draw my routes and click the point
user want to involve with my route, the remark dialog will automate appear, and it is quite
confusing.
Function deleted
8 Function Remarks When user submit my remark, user cannot have
a look with that.
Function
deleted
9 Function Remark
When user submit my remark, user can know it submits successfully, but I cannot have a review
in an easy way. In other words, user must click that part of the street again to see the review and
most of the street section is look the same so that it quite confusing.
Function deleted
10 Function Remark If user submit a wrong remark, user cannot cancel it.
Function deleted
• Iteration 3 Test date: 16 May 2019 User role: Real end user
Test device: Mobiel & PC��Google Chrome
Test strategy: user test the website without any instruction
Link of Iteration 3 system: www.purpleumbrella.ml/iteration3 Test Video: http://bit.ly/Utest-1-Iteration3-TP10 http://bit.ly/Utest-2-Iterayion3
Test Result:
No. Category Function
point Problem Description /Feedback
Problem
Solved?
1 UI Factor
visualization
When Click the “pedestrian” button, user cannot understand what the bubble mean.
Especially the size and color.
YES
2 UI Buttons design
When open the website, user have no idea
about what should she do, there are a lot of buttons and seems not consistent. Actually,
user don’t know the sequence of clicking those buttons.
YES
3 UI View of the
map
The first view of the map real confused user.
There are a lot of information on the map, a YES
Melbourne Wizards Maintenance Document 31 May 2019
23
lot of icons. After user notice the filter menu on right bottom then user can understand
she can cancel to view those icons.
4 UI Safety Index User don’t understand what it stand for, and there seems no explanation.
YES
5 Usability
Navigation
User cannot change the direction of the map after I set a route
YES
6 Function Navigation
When user input the destination and obtained
a route, the route will no change when user drag the marker of destination.
YES
7 Function Factor
visualization
Sometimes when user select a factor, the view of map is not change. But sometimes it
works.
YES
6.2.2. Integrate Testing Test date: 21 May 2019 Test device: Mobiel & PC��Google Chrome
Test Result��
Epic 1: Rachel wants to know which area has less possible to happen street harassment.
User Story 1: Rachel wants to visualize different factors she cares about when she is walking on the
streets of Melbourne CBD so that she can choose to avoid some negative elements and only walk on
routes with positive amenities or factors that make her feel more comfortable, and to reduce the probability of being harassed.
Activity Pass/Fail
Select/Cancel the view of “Pedestrian” Pass
Select/Cancel the view of “Bars” Pass
Select/Cancel the view of “Construction sites” Pass
Select/Cancel the view of “Night Clubs” Pass
Select/Cancel the view of “Our Safety Index” Pass
Select/Cancel the view of multiple factors (mentioned above) Pass
Hide/ Show the menu of data visualization Pass
Epic 2: Rachel wants to have a useful navigation map to help avoid and deal with street harassment.
Melbourne Wizards Maintenance Document 31 May 2019
24
User Story 2: Rachel wants to use this map to navigate a route so that she needn’t switch screens between this map and other navigation applications.
Activity Pass/Fail
Obtain a route by inputting start point and destination into the input field Pass
Obtain a route by inputting start point and use the current location as the destination.
Pass
Change the route by dragging the marker on the map Pass
Visualize factors around the current route by selecting them from the menu. Pass
Visualize the circular area which can be reached in 10 minutes by walking
from the current location by clicking the icon of my current location.
Pass
Remove the current route by deleting the address from the search bar. Pass
User Story 3: Rachel wants to report an incident in the city of Melbourne that happened in the past
so that she can help others to avoid those areas and make them feel more comfortable when walking
around.
Activity Pass/Fail
Obtain a clean map by clicking the icon of “report”. Pass
Select the characteristics of the incident. Pass
Select the time of the incident. Pass
Select the address of the incident, if not, use current location as default. Pass
Save a unique incident. Pass
Cancel an unsaved incident. Pass
Confirm an incident reported by others. Pass
View the reported incident on the map. Pass
User Story 4: Rachel wants to sound an alarm when she believes is under a threat or is in an
emergency situation so that she can get immediate help.
Activity Pass/Fail
Click the “call police” icon on the map. Pass
Confirm the call. Pass
Cancel the call Pass
Cancel the noise Pass
Melbourne Wizards Maintenance Document 31 May 2019
25
User Story 5: Rachel wants to get a quick introduction of the functionalities on the map so that she can understand that the site features when she first uses it.
Activity Pass/Fail
Begin a tour by clicking the icon of “questions”. Pass
View the next function by clicking the next button. Pass
View the previous function by clicking the prev button. Pass
Finish the tour by clicking the end tour button. Pass
Epic 3: Rachel wants to know which organizations can help if she suffer any harassment.
User Story 6: Rachel wants to know how to deal with street harassment or get some support to overcome an incident of street harassment so that she doesn’t end up being a victim of anxiety or depression and can get
her self-esteem back.
Activity Pass/Fail
Get the organization list by clicking “support” from the navigation bar Pass
View instructions of the organizations Pass
Jump to the official website of any organization from the list. Pass
6.2.3. Backup and Recovery Testing
No. Date Type Executor Description Result
1
7 April
2019 – 9 April
2019
Full back-
up Developer
This is the interation1 system full backup before publishing, to avoid
potential cyberattacks and anomaly caused by improper operation by
the user;
The backup method is manfully and the backup verion are stored at
local disk;
The recovery were executed at 9
April 2019 and every function runs
normally.
Pass
2
28 April
2019 – 30 April
2019
Full back-up
Developer
This is the interation2 system full backup before publishing, to avoid
potential cyberattacks and anomaly caused by improper operation by
the user;
Pass
Melbourne Wizards Maintenance Document 31 May 2019
26
The backup method is manfully and the backup verion are stored at
local disk;
The recovery were executed at 30
April 2019 and every function runs normally.
3
15 May
2019 –
17 May 2019
Full back-up
Developer
This is the interation3 system full
backup before publishing, to avoid potential cyberattacks and anomaly
caused by improper operation by the user;
The backup method is manfully
and the backup verion are stored at local disk;
The recovery were executed at 17
April 2019 and every function runs
normally.
Pass
4
22 May
2019 –
24 May
2019
Full back-
up Developer
This is the final version of system
full backup before publishing, to avoid potential cyberattacks and
anomaly caused by improper operation by the user;
The backup method is manfully
and the backup verion are stored at local disk;
The recovery were executed at 24
April 2019 and every function runs normally.
Pass
Melbourne Wizards Maintenance Document 31 May 2019
27
6.3. Testing Conclusion Through the cooperation of member from team Melbourne Wizards, testers from real target user, and related personnel, the project “Purple Umbrella” has reached its delivery standard.
• Functionality The system correctly implemented feature includes: factor visualization, factor filter, locate user current position, navigation, allow user to report an incident and show it on the map,
sound noise and call police, provide use tutorial and display support information.
• Reliability The reliability control of the existing system is relatively reasonable. Many controls are implemented through webpage control. Moreover, firewall is installed between web server
and database, so that even if the page control fails, The database has a small chance that it
will be tampered with�
�
The fault tolerance of the existing system is unknow for missing formal testing from this
perspective.
• Compatibility The system supports multiple versions of the browser, includes Microsoft Internet Explorer version 11.0.115 and above, Google Chrome version 54.0.2840 and above, Safari 12.1.1 and
above. Besides, the webpages of the system are designed as responsive, so that the system can be able to browser on mobile smoothly.
• Usability The system achieves the following ease of use:
Ø Use uniform colour standards and fonts throughout the system to ensure consistency Ø Use full screen layout to display the map to improve usability on map
Ø Use appropriate symbols to help users understand system features and reduce short-memory load
Ø Provide timely feedback after users’ operation Ø Provide navigation bar that is accessible at any time
The system has the following aspects needs to improve:
Ø User interface introduction is too blunt��system should give appropriate guideline in a
soft way rather than providing a list of instructions