4. 0 Module Testing:

4.1 Code Inspections:

The Dangerous Minds implementation team has taken it upon themselves to perform the code inspections. When one of the members finishes his function or module he then passes it over to another member who then inspects it looking for logical and semantical errors. Once inspected the module is sent over to the testing team for extensive execution based testing.

4.2 Black Box Testing:

As per our test plan, as soon as a module was completed by the Dangerous Minds implementation team, our testing team went to work trying to find any errors they could. The format followed for our test cases is laid out in the test plan but it can be summarized by determining equivalence classes of input and output, determining what the output should be, then executing the corresponding function and ensuring the output matches what was expected. Any discrepencies are documented and sent to the implementation team for bug repair.

In the following tables the comment fields with "No errors found" in them indicate that the actual result matched the expected result. If an error was found, the steps taken are reported.

4.2.1 Passenger Functionality:

The interactions between a passenger and IFESS are broken up into intuitively named functions. Each of these functions was tested based on the equivilence classes and border cases noted before the results.

Test Cases for listMovie(genre):

Function Description: Returns a list of all movies in the database matching the inputed genre

Equivalence Classes:
1. Genre exists in the system
2. Genre does not exist in the system

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
genre="action"

List of movies contained in the genre "action"; if no movies are in the genre, a blank list will be returned. All movies in the genre were returned. No errors found. Jon
2
Input equivalence class 2:
genre="fubar"
Notification indicating the genre does not exist. No returned movies. Implies that no movies in the genre exist. Jon

Test Cases for playMovie(movieID):

Function Description: Plays the corresponding movie to the movieID.

Equivalence Classes:
1. Set of all movies in the system
2. Set of all movies restricted from use in the system
3. Movies not in the system

Border Cases:
1. Lowest movieID in class 1
2. Highest movieID in class 1

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
movieID=5

Movie will start to be played outputting video data Movie started playing. No errors found. Jon
2
Input equivalence class 2:
movieID=6
Error indicating that the movie does not exist Movie started playing. Error found. Movie should not have played.
Bug report sent to implementation team.
Jon
3
Input equivalence class 3:
movieID=365
Error indicating that the movie does not exist Movie not found. No errors found. Jon
4
Border case 1:
movieID=1
Movie will start to be played outputting video data Movie started playing. No errors found. Jon
5
Border case 2:
movieID=12
Movie will start to be played outputting video data Movie started playing. No errors found. Jon

Test Cases for listMusic():

Function Description: Lists all the music available in the system.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Request for music list.

List of available music streams. Expected list of music streams was returned. No errors found. Tyler

Test Cases for listenMusic(musicID):

Function Description: Plays the corresponding music to the musicID.

Equivalence Classes:
1. Set of all music in the system
2. Music not in the system

Border Cases:
1. Lowest musicID in class 1
2. Highest musicID in class 1

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
musicID=3

Music will start playing. Music started playing. No errors found. Tyler
3
Input equivalence class 2:
musicID=365
Error indicating that the musicID does not exist in the system. Music did not play. No errors found. Tyler
4
Border case 1:
musicID=1
Music will start playing. Music started playing. No errors found. Tyler
5
Border case 2:
musicID=12
Music will start playing. Music started playing. No errors found. Tyler

Test Cases for listGames():

Function Description: Lists all the games currently in the IFESS database.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Request for games list.

List of available games. Expected list of games was returned. No errors found. Jon

Test Cases for playGame(gameID):

Function Description: Launches the corresponding game to the gameID.

As the games have not yet been developed, testing of the game launching functionality was performed using sample executable programs which can be launched analogously to the games.

Equivalence Classes:
1. Set of all games in the system
2. Games not in the system

Border Cases:
1. Lowest gameID in class 1
2. Highest gameID in class 1

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
gameID=4

Test program will be executed. Test program did not correctly launch. Error found. File should have launched.
Bug report sent to implementation team.
Tyler
3
Input equivalence class 2:
game ID=100
Error indicating that gameID is not found. Test program did not run. No errors found. Tyler
4
Border case 1:
gameID=1
Test program will be executed. Test program did not correctly launch. Error found. File should have launched.
Bug report sent to implementation team.
Tyler
5
Border case 2:
gameID=8
Test program will be executed. Test program did not correctly launch. Error found. File should have launched.
Bug report sent to implementation team.
Tyler

Test Cases for openURL(url):

Function Description: Opens Microsoft Internet Explorer browser to the destination URL.

Equivalence Classes:
1. Valid internet URLs
2. Valid local URLs
3. Invalid internet URLs
4. Invalid local URLs

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
url="http://www.uvic.ca"

Website loads in browser. UVic webpage loaded correctly. No errors found. Jon
2
Input equivalence class 2:
url="file://H:/ifess/help/internet.html"
File loads into internet browser. Internet help page loaded correctly. No errors found. Jon
3
Input equivalence class 3:
url="http://invalidurl"
Page will not load. Error will be displayed. DNS error. Server not found. No errors found. Jon
4
Input equivalence class 4:
url="file://H:/ifess/invalidfile"
File will not load. Error will be displayed. File not found error. No errors found. Jon

Test Cases for goBack():

Function Description: Causes the browser to go back to the previously visited web page.

Equivalence Classes:
1. Previous page exists.
2. Previous page does not exist.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Test equivalence class 1:
previous page="http://www.uvic.ca"
current page="http://www.hotmail.com"

Previous website loads in browser. UVic webpage loaded correctly. No errors found. Jon
2
Test equivalence class 2:
previous page=null
current page="http://www.hotmail.com"
No change should be observed. Browser continued showing hotmail page. No errors found. Jon

Test Cases for checkBill():

Function Description: Returns all the information regarding a passengers billing information.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Request for passenger billing information.

Current billiling information is returned. Test bill was returned. No errors found. Tyler

Test Cases for listMeals():

Function Description: Lists all the meals that are available.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Request for meal list.

Meal information is returned. Available meal information was returned. No errors found. Jon

Test Cases for listSnacks():

Function Description: Lists all the snacks that are available.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Request for snack list.

Snack information is returned. Available snack information was returned. No errors found. Jon

Test Cases for listDrinks():

Function Description: Lists all the drinks that are available.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Request for drinks list.

Non-alcoholic drink information is returned. All drinks, including alcoholic drinks were returned. Error found.
Alcholic drinks should not have been included.
Bug report sent to implementation team.
Jon

Test Cases for listAlcoholicDrinks():

Function Description: Lists all the Alcoholic drinks that are available.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Request for alcoholic drink list.

Alcoholic drink information is returned. Available alcoholic drink information was returned. No errors found. Jon

Test Cases for orderMeal(mealID):

Function Description: Places an order for the corresponding meal to mealID

Equivalence classes:
1. Set of all meals in the system
2. Set of all meals not in the system
3. Set of all meals that are out of stock

Border Cases:
1. Lowest mealID in the system.
2. Highest mealID in the system.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
mealID=3

Order confirmation is returned. Database information is updated. Confirmation was returned. Meal order exists in the database. No errors found. Jon
2
Input equivalence class 2:
mealID=100
Error indicating that the meal does not exist. Returned error indicating that meal does not exist. No errors found. Jon
3
Input equivalence class 3:
mealID=2
Error indicating that the meal is out of stock. Returned error indicating that meal is not in stock. No errors found. Jon
4
Border case 1:
mealID=1
Order confirmation is returned. Database information is updated. Confirmation was returned. Meal order exists in the database. No errors found. Jon
5
Border case 2:
mealID=4
Order confirmation is returned. Database information is updated. Confirmation was returned. Meal order exists in the database. No errors found. Jon

Test Cases for orderSnack(snackID):

Function Description: Places an order for the corresponding snack for snackID.

Equivalence classes:
1. Set of all snacks in the system
2. Set of all snacks not in the system
3. Set of all snacks that are out of stock

Border Cases:
1. Lowest snackID in the system.
2. Highest snackID in the system.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
snackID=3

Order confirmation is returned. Database information is updated. Confirmation was returned. Snack order exists in the database. No errors found. Jon
2
Input equivalence class 2:
snackID=100
Error indicating that the snack does not exist. Returned error indicating that snack does not exist. No errors found. Jon
3
Input equivalence class 3:
snackID=2
Error indicating that the snack is out of stock. Returned error indicating that snack is not in stock. No errors found. Jon
4
Border case 1:
snackID=1
Order confirmation is returned. Database information is updated. Confirmation was returned. Snack order exists in the database. No errors found. Jon
5
Border case 2:
snackID=4
Order confirmation is returned. Database information is updated. Confirmation was returned. Snack order exists in the database. No errors found. Jon

Test Cases for orderDrink(drinkID):

Function Description: Places an order for the corresponding drink to drinkID.

The order drink fuction operates in the same manner for both alcoholic drinks as well as non-alcoholic drinks. Alcoholic drinks also integrate with billing and that aspect of the system will be tested as part of the integration phase.

Equivalence classes:
1. Set of all non-alcoholic drinks in the system
2. Set of all non-alcoholic drinks not in the system
3. Set of all non-alcoholic drinks that are out of stock

Border Cases:
1. Lowest drinkID in the system.
2. Highest drinkID in the system.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
drinkID=3

Order confirmation is returned. Database information is updated. Confirmation was returned. Drink order exists in the database. No errors found. Jon
2
Input equivalence class 2:
drinkID=100
Error indicating that the drink does not exist. Returned error indicating that drink does not exist. No errors found. Jon
3
Input equivalence class 3:
drinkID=2
Error indicating that the drink is out of stock. Returned error indicating that drink is not in stock. No errors found. Jon
4
Border case 1:
drinkID=1
Order confirmation is returned. Database information is updated. Confirmation was returned. Drink order exists in the database. No errors found. Jon
5
Border case 2:
drinkID=4
Order confirmation is returned. Database information is updated. Confirmation was returned. Drink order exists in the database. No errors found. Jon

4.2.2 Flight-Attendant Functionality:

The interactions between a flight attendant and IFESS are broken up into intuitively named functions. Each of these functions are tested based on the equivilence classes and border cases noted before the results.

Test Cases for listOrderedMeals():

Function Description: Lists all the ordered meals from the passengers and pilots.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Request for list of meal orders.

List of orders and corresonding passenger information is returned. All ordered meals/passenger pairs are returned. No errors found. Tyler

Test Cases for listPendingRefreshments():

Function Description: Lists all the refreshments that are pending for delivery.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Request for list of pending refreshment orders.

List of orders and corresonding passenger information is returned. All ordered refreshment/passenger pairs are returned, along with those that have already been delivered.

Error found.
Delivered orders should not be listed.
Bug report sent to implementation team.

Tyler

Test Cases for removePendingOrder(orderID):

Function Description: Marks an order as delivered.

Equivalence classes:
1. Set of all pending orders in the system
2. Set of all non existing orders
3. Set of all pending orders that have been delivered

Border Cases:
1. Lowest orderID in the system.
2. Highest orderID in the system.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
orderID=3

Order is marked as delivered. Database was updated marking the food order as delivered. No errors found. Tyler
2
Input equivalence class 2:
orderID=100
Error indicating that the order does not exist. Returned error indicating that order does not exist. No errors found. Tyler
3
Input equivalence class 3:
orderID=2
Error indicating that the order has already been fulfilled. Returned error indicating that the order does not exist. No errors found. Tyler
4
Border case 1:
orderID=1
Order is marked as delivered. Database was updated marking the food order as delivered. No errors found. Tyler
5
Border case 2:
orderID=4
Order is marked as delivered. Database was updated marking the food order as delivered. No errors found. Tyler

Test Cases for viewBilling(seatID):

Function Description: Lists all the billing information about a passenger sitting in seat seatID.

Equivalence classes:
1. Set of all seats in the system
2. Set of all non existing seats

Border Cases:
1. Lowest seatID in the system.
2. Highest seatID in the system.

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
seatID=3a

List of billed items for the corresponding passenger. All valid billed items are listed.

No error found.

Tyler
2
Input equivalence class 2:
seatID=9999a
Error indicating seat does not exist. Error indicating seat does not exist. No error found. Tyler
3
Border case 1:
seatID=1a
List of billed items for the corresponding passenger. All valid billed items are listed.

No error found.

Tyler
4
Border case 2:
seatID=444e
List of billed items for the corresponding passenger. All valid billed items are listed.

No error found.

Tyler

Test Cases for swapSeats(seatIDfrom, seatIDto):

Function Description: Swaps the passenger in seatIDfrom with the passenger in seatIDto.

Equivalence classes:
1. Valid seatIDfrom and valid seatIDto
2. Valid seatIDfrom and invalid seatIDto
3. Invalid seatIDfrom and valid seatIDto
4. Invalid seatIDfrom and invalid seatIDto

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
seatIDfrom=3a
seatIDto=4c

Confirmation of seat swap and the database should note the change. The two seats swapped successfully

No error found.

Tyler
2

Input equivalence class 2:
seatIDfrom=3a
seatIDto=9999c

Error indicating seat swap may not proceed. Seat swap was not successful. No error found. Tyler
3
Input equivalence class 3:
seatIDfrom=9999c
seatIDto=3a
Error indicating seat swap may not proceed. Seat swap was not successful. No error found. Tyler
4
Input equivalence class 4:
seatIDfrom=8888e
seatIDto=9999c
Error indicating seat swap may not proceed. Seat swap was not successful. No error found. Tyler

 

4.2.3 Administrator Functionality:

We did not perform formal black box tesing on this module due to time constraints. We did however briefly test the other functions of the administrator in a similar manner.

Test Cases for removeItem(itemID):

Function Description: Perminently removes an item from the IFESS database.

Equivalence Classes:
1. Set of all existing itemIDs.
2. Set of all invalid itemIDs.

Border Cases:
1. Lowest itemID in class 1
2. Highest itemID in class 1

Test ID
Description
Expected Result
Actual Result
Comments
Tester
1

Input equivalence class 1:
itemID=5

Item should be removed from IFESS database. The item was removed successfully.

No error found.

Jon
2

Input equivalence class 2:
itemID=99999

Error indicating item does not exist. Item was not removed. No error found. Jon
3
Border case 1:
itemID=1
Item should be removed from IFESS database. The item was removed successfully.

No error found.

Jon
4
Border case 2:
item ID=21
Item should be removed from IFESS database. The item was removed successfully.

No error found.

Jon

 

4.3 White Box Testing:

Due to time constraints and resource limitations white box testing was not executed as originally stated in the Technical Design Document Test Plan. This aspect of testing will require a time effort that will not be matched by sufficient results during this phase of development. Therefore, white box testing will be reevaluated and potentially rescheduled in the future.

Module Testing Summary:

After extensive effort every module has been tested in some way shape or form. Unfourtunately, due to lack of tools and time no white box testing was accomplished. On the other hand we black box tested every module extensively with well chosen equivalence classes and boundry values. The bugs and errors that were discovered have been sent to the implementation team for correction. Since the majority of these errors are quite trivial we are not documenting the re-test after the fix has occured. Rest assured it was tested with the same inputs and passed.