tp10-maintenance document-purple umbrella

29
Maintenance Document WEB APPLICATION – PURPLE UMBRELLA TEAM MELBOURNE WIZARDS Version 3 31 May 2019

Upload: others

Post on 12-Mar-2022

9 views

Category:

Documents


0 download

TRANSCRIPT

Maintenance Document WEB APPLICATION – PURPLE UMBRELLA TEAM MELBOURNE WIZARDS

Version 3 31 May 2019

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

6

3.3.2. Fictional Decomposition

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