CS计算机代考程序代写 SQL scheme data structure javascript database Java gui Unit Test Plan

Unit Test Plan

Unit Test Plan/Test Results

Pretty Good Project team (PGPt)

Unit Test Plan/Test Results

Video Stream Scheduling System

Client

Mike Dixon

School of Information Technology

Murdoch University

Pretty Good Project team (PGPt)

Supervisor: Shri Rai

Version 1.4

5/11/2004

Table of Contents
3Member Contribution

41 Introduction

41.1 Purpose and Scope

41.2 Definitions, Acronyms, and Abbreviations

52 Test Environment

52.1 Test Environment Description

52.2 Test Data

52.3 Backup, Recovery and Maintenance Procedures

62.4 Security/Access Control

63 Testing Overview

63.1 Scope of Testing

63.2 Programs/Functions to be tested

73.3 Programs/Functions not to be tested

73.4 Testing Guidelines and Standards

73.4.1 Pass/Fail Descriptions

73.4.2 Defect Identification and Removal

84 Test Approach

84.1 Test Methods

84.2 Verification Method

94.3 Entry Criteria

94.4 Exit/Acceptance Criteria

95 Test Criteria/Cases

105.1 Database Test Cases

125.2 Administration GUI Test Cases

255.3 Scheduler Test Cases

355.4 Dynamic Web Page Test Cases

476 Problem Management

477 Roles and Responsibilities

478 Configuration Management

Member Contribution
Section
Contributing Member

Introduction
Michelle

Purpose and Scope
Michelle

Definitions, Acronyms, and Abbreviations
Michelle

Test Environment
Michelle

Test Environment Description
Michelle

Test Data
Michelle

Backup, Recovery and Maintenance Procedures
Michelle

Security/Access Control
Michelle

Testing Overview
Michelle

Scope of Testing
Michelle

Programs/Functions to be tested
Michelle

Programs/Functions not to be tested
Michelle

Testing Guidelines and Standards
Michelle

Pass/Fail Descriptions
Michelle

Defect Identification and Removal
Michelle

Test Approach
Michelle

Test Methods
Michelle

Verification Method
Michelle

Entry Criteria
Michelle

Exit/Acceptance Criteria
Michelle

Test Criteria/Cases
Michelle

Database Test Cases
Michelle

Administration GUI Test Cases
David, Cliffe, Tim

Scheduler Test Cases
David

Dynamic Web Page Test Cases
David, Martin

Problem Management
Michelle

Roles and Responsibilities
Michelle

Configuration Management
Michelle

1 Introduction
1.1 Purpose and Scope
This document describes the Unit Test Plan for this initial version of the Video Stream Scheduling System. The scope of this Test Plan is limited to the Unit Testing of the database, scheduler, administration GUI and dynamic web page. All Unit Testing will be performed in the development environment three computers have been set-up with the same configuration that the software will be required to function on. These computers are dedicated to this team for testing purposes and are available 24 hrs a day.

Testing of functionality related to but outside the development of this project for example the VLC Client is a System test function and therefore beyond the scope of this Unit testing effort. Other testing phases such as System testing, Integration testing and User Acceptance testing are not addressed by this Test Plan.

1.2 Definitions, Acronyms, and Abbreviations

Definitions, acronyms, and abbreviations used within this Unit Test Plan are listed below. Other definitions, acronyms, and abbreviations can be located in the related Test Plan Strategy document.

Baseline
A specification, or product, that has been formally agreed upon which serves as the starting point against which progress will be judged.

PGPt
Pretty Good Project Team – Team name and our group number is group 4

VLC
Video LAN Client is a complete software solution for video streaming. Video LAN is designed to stream MPEG videos on high bandwidth networks.

GUI
Graphical User Interface – a user interface (displayed as part of a program) which uses graphical images (pictures, icons. etc.) to interact with the end user

MySQL
A popular open source DBMS

DBMS
Database Management System – a software application to manage databases

Test Cases
Test Case is a collection of test sequences with expected outcomes for testing the identified functionality. Test sequences include sample test data to be used to uncover defects. The test case also lists the expected outcome for every test sequence, enabling the developer to verify execution of test cases as planned.

Unit Test
Testing of a component (e.g., a program) in isolation, i.e. by minimal interaction with other system components.

2 Test Environment

2.1 Test Environment Description

The Development environment has been set-up in an office and the following computers are available for all unit testing:

Windows XP – Client – 134.115.65.33 (AKA it3051-01.murdoch.edu.au)

RedHat 9 – SERVER – 134.115.65.36 (AKA it3051-02.murdoch.edu.au)

RedHat 9 – Client – 134.115.65.112

The three computers will have access to the following software:

Computer

IP Address & Hostname

Users
Software

Server
IP: 134.115.65.36

Hostname: it3051-02.murdoch.edu.au
User: pgpt

Pass: PGPt04

Superuser: root

Pass: PGPt04
RedHat 9

VLC

MySQL

Apache

Opera

Perl

X

Services (incl mail, sftp, ssh etc)

Windows Client
IP: 134.115.65.33

Hostname: it3051-01.murdoch.edu.au
Superuser: pgpt

Pass: “”
Windows XP

VLC

Firefox

WinSCP3

Linux Client
IP: 134.115.65.112

User: pgpt

Pass: PGPt04

Superuser: root

Pass: PGPt04
RedHat 9

VLC

X

2.2 Test Data

Personnel will set up all test data manually and be responsible for preparing and executing the Unit tests. There is no expectation that live data will be available for Unit testing.

2.3 Backup, Recovery and Maintenance Procedures

Backups of all programs have been periodically performed and there are copies of the programs on Gryphon as well as home computers.

Version Control has been implemented to manage all versions of the programs. If any program becomes corrupted or non recoverable either a backup copy or the last version of the program will be used. Any special backup or recovery requirements will be catered for by the Unit Tester(s) as is required.

2.4 Security/Access Control

The test environment is located in a secure room within the University and access is restricted to group members and authorised University Staff. The computers as per above have specified logins for the team. Documents and programs will be held on a secure directory on Gryphon.

3 Testing Overview

3.1 Scope of Testing

The scope of this Testing effort is to perform the Unit testing of the Video Scheduler System and the functionality described in the related User Requirements document.

3.2 Programs/Functions to be tested

Module
Type
Title/Description

Database
Database
A MySQL relational database will act as the central repository of data for the system. It shall hold information regarding videos that can be streamed, users, streaming channels and other data. It shall reside on a single server in the system and will be used by the Administrator GUI, dynamic Web Page and Scheduler daemon described below. This database shall provide the underlying data structure of the system and will perform an integral role in the operation of all applications the project team will create.

Scheduler
Program
The scheduler is to initiate VLC on the server-end whenever a stream is scheduled to take place. For each time slot the database is queried and for each stream (on separate channels) scheduled for that slot, a separate VLC process is created/forked to deliver a multicast stream to the channels network destination

Administrator Graphical User Interface
Program

Screens
The Administrator GUI connects to a MySQL database via the menu and maintains this connection until the program is exited or the user chooses to disconnect. The Administration GUI sends SQL queries via database APIs and processes the results.

Dynamic Web Page
Program

Screens
The Administrator GUI connects to a MySQL database via the menu and maintains this connection until the program is exited or the user chooses to disconnect. The Administration GUI sends SQL queries via database APIs and processes the results.

3.3 Programs/Functions not to be tested

This Unit testing effort has a limited scope and will not go beyond the modules and functions listed in section 32 above.

3.4 Testing Guidelines and Standards

3.4.1 Pass/Fail Descriptions

As Tests, Test Procedures, and Test Steps are completed, they are graded on a Pass/Fail Basis. The table below lists the criteria for determining the Pass/Fail status of Testing.
Status
Level
Description

Pass
Step
Expected result achieved

Pass
Procedure
Successful completion of all test steps

Pass
Test
Successful completion of all procedures comprising the test

Fail
Step
Expected result not achieved

Fail
Procedure
Failure of one or more test steps

Fail
Test
Failure of one or more procedures comprising the test

3.4.2 Defect Identification and Removal

The developer will be unit testing their own modules when a defect is found the developer will endeavour to resolve the defect. If the developer cannot find an appropriate solution the team will assist in finding a solution to the problem. Once the developer has resolved the issue, regression testing will be performed to ensure the change has not affected other parts of the module.
4 Test Approach

4.1 Test Methods

The following methods will be utilised as is necessary to define the test cases and complete the planned unit tests:

Basis Path Testing: This is a white box control structure testing technique that enables the definition of “basis set” of execution paths. Test cases derived to exercise the “basis set” ensure that every statement in the program is executed at least once during testing.

Branch Testing: Testing designed to execute each outcome of each decision point in a program.

Condition Testing: This is a white box control structure testing technique that exercises the testing of each logical condition contained in a program.

Data Flow Testing: This is a white box control structure testing technique that aims at generating test cases to satisfy the execution control of program depending upon the data values and sequences of operation.

4.2 Verification Method

The results of the various tests for this functionality will be manually verified and validated against the user requirements.

Verification

Checking items, including software, for conformance, accuracy, and consistency in order to produce a suitable product. Peer reviews, desk checks and client meetings are ways in which the verification process is completed. Verification answers the question, “Are we doing the right job?”

Validation

Process of checking that what has been specified is what the client received or will receive. Validation answers the question, “Are we doing the job right?” Validation is the quality part of the process. It ensures the quality of the tests and provides for quality of the testing process. CM audits, QA audits, and Defect Tracking accomplish validation.

4.3 Entry Criteria

The following pre-requisites are the entry criteria that must be completed prior to the commencement of Unit Testing.

Entry Criteria
Complete (Y/N)

Baseline Requirements Defined
Y

Test Strategy / Unit Test Plan
Y

Test Cases / Stubs & Drivers
Y

Architecture (System Requirements) are ready
Y

Components have been built according to the requirements document
Y

All inputs are completed
Y

Coding has been completed
Y

Code walkthrough has been conducted
Y

4.4 Exit/Acceptance Criteria

The following table lists the exit criteria that will be used to determine that the Unit Testing has been completed successfully. The results of the first test are the baseline; all subsequent tests are compared to the baseline.

Exit Criteria
Complete (Y/N)

All test cases have been executed
Y

Outstanding problem records are approved by the project team as acceptable or out of scope
Y

All fixes have been re-tested and any necessary regression test performed
Y

Unit Test Plan Completed with Test Results
Y

All deliverables completed
Y

Testing is baselined.
Y

5 Test Criteria/Cases

The following pages describe each of the test cases performed for each component.

5.1 Database Test Cases

These tests are designed to verify field validations to uncover field property related errors and verify field dependencies

Test
Test Description
Test Data
Expected Results
Actual Results
Passed?

1
WaitBetweenRequests Numbers between 0-99
24, 99, 5
Excepted Number Range
24, 99, 5 accepted
Yes

2
WaitBetweenRequests Numbers between 0-99
100
Incorrect Number entered
100 Number not accepted
Yes

3
ScheduledbyUsers Boolean
0 or 1
Excepted Number Range
0 or 1 accepted
Yes

4
ScheduledbyUsers Boolean value only
3
Incorrect Number entered
3 Not accepted
Yes

5
LastReservationSlot , slot number between 1-48
9, 15, 38, 42
Excepted Number Range
9, 15, 38, 42 Accepted
Yes

6
LastReservationSlot slot number between 1-48
49, 0
Incorrect Number entered
0, 49 not accepted
Yes

7
LastReservationDate valid date
24.10.2004
Correct Date Entered
Date Accepted
Yes

8
LastReservationDate invalid date
31.09.2004
Incorrect Date Entered
Invalid Date
Yes

9
Length of video in minutes 0-9999
120
Excepted Number Range
120 Accepted
Yes

10
Length of video in minutes 0-9999 invalid length
10000
Incorrect Number Range
1000 Invalid Entry
Yes

11
Flag whether to display a video to users Boolean value only
0, 1
Excepted Number Range
0 or 1 accepted
Yes

12
Flag whether to display a video to users Boolean value only
2
Incorrect Number Range
2 not accepted
Yes

13
Slot represents each half hour of the day 1-48
17, 48
Excepted Number Range
17, 48 Accepted
Yes

14
Slot represents each half hour of the day 1-48
0, 50
Incorrect Number Range
0, 50 not accepted
Yes

15
Foreign Key Check

Check all foreign keys exist in their primary table.
Video(Filename) – DemoVideo

Channel(Name) – ICT 123 Lectures

User(UserID) – 12013919
DemoVideo, channel, user id all exist
Video record is added
Yes

16
Enter whole records ensure data integrity is maintained
Video(Filename) – DemoVideo

Channel(Name) – ICT 123 Lectures

User(UserID) – 12013919
Add Video
Video Record is added
Yes

17
Delete whole records ensure data integrity is maintained
Video(Filename) – DemoVideo

Channel(Name) – ICT 123 Lectures

User(UserID) – 12013919
Video is deleted but not other records
Video is deleted
Yes

18
Flag whether User is an administrator / regular user Boolean value only
0, 1
Excepted Number Range
0 or 1 accepted
Yes

19
Flag whether User is an administrator / regular user Boolean value only
2
Incorrect Number Range
2 not accepted
Yes

5.2 Administration GUI Test Cases

Test Cases for the Administration GUI this maybe required to be performed with the database as this interface is will be hard to test without this component.

Test
Test Description
Test Data
Expected Results
Actual Results
Passed

1
Test to ensure that ‘Connect to database’ window is spawned when user selects Options → Connect to database
User selects Options → Connect to database
The ‘Connect to database’ window will be spawned
The ‘Connect to database’ window is displayed
Yes

2
In ‘Connect to database’, user attempts to connect to

database with correct credentials
User name field = ‘vlcdbadmin’

Pass phrase field = ‘mycgi’
Connection will be established. Main Admin GUI window will be populated with data.
Connection is established. A dialogue box is displayed telling the user that the connection was a success; ”Successfully connected to MySQL server using TCP/IP…”. Main Admin GUI window is then populated with data.
Yes

3
In ‘Connect to database’, user attempts to connect to database with incorrect credentials
User name field =

‘badname’

Pass phrase field = ‘badpass’
Connection will not be established. Error message will be displayed.
Connection not established. Error message is displayed.
Yes

4
In ‘Connect to database’, user enters no input in the ‘Hostname or IP’ field
“” – an empty string is entered in the ‘Hostname or IP’ field.
Connection will not be established. Error message will be displayed.
No connection attempt is made and a meaningful message is displayed to the user. “Invalid Value; the ip hostname field cannot be left blank”
Yes

5
In ‘Connect to database’, user enters an invalid IP address/hostname
‘255.255.255.255’ is entered in the ‘Hostname or IP’ field
Connection will not be established. Error message will be displayed
Connection attempt fails, an error message is displayed
Yes

6
User selects Options → Exit to exit the application.
User selects Options → Exit
The program will terminate
Program closes
Yes

7
User selects Help → About to view information about the Admin GUI
User selects Help → About
Information about the Admin GUI will be displayed
A form is loaded containing the relevant information.
Yes

8
User selects Help → XXX to view the Admin GUI help page
User selects Help → Documentation
The Admin GUI help page will be displayed
A dialogue message explains where the help documentation can be found.
Yes

9
Test to ensure that ‘Add Video’ window is spawned when ‘Add’ button on ‘Videos’ panel is pressed
User presses the ‘Add’ button on the ‘Videos’ panel
The ‘Add Video’ window will be displayed.
The ‘Add Video’ window is displayed.
Yes

10
In ‘Add Video’, user enters no input in ‘Filename’ field before pressing OK
“” – an empty string is entered in the ‘Filename’ field
An error message will be displayed. No other action will be taken.
A descriptive message is displayed. No other action is taken. “Invalid filename; you cannot leave this field blank”
Yes

11
In ‘Add Video’, user enters a value in ‘Filename’ field that clashes with an existing filename.
‘alien.mpg’ is entered in the ‘Filename’ field when a file called ‘alien.mpg’ already exists
An error message will be displayed. No other action will be taken.
A descriptive message is displayed. No other action is taken. “Cannot add video. This filename is already in the database”
Yes

12
In ‘Add Video’, user enters no input in ‘Description’ field before pressing OK
“” – an empty string is entered in the ‘Description’ field
An error message will be displayed. No other action will be taken
A descriptive message is displayed. No other action is taken. “Invalid description; you cannot leave this field blank”
Yes

13
In ‘Add Video’, user attempts to enter a video length less than 1.
User clicks on the down-arrow of the ‘Add Video’ spin-box to set the value to less than 1
The value shown by the spin-box will not decrement below 1.
The value shown by the spin-box does not decrement below 1.
Yes

14
In ‘Add Video’, user cancels addition of a video.
The ‘Cancel’ button is pressed to cancel the addition
The ‘Add Video’ window will be destroyed. No data will be written to database
The window is closed. No further action is taken.
Yes

15
In ‘Add Video’, user attempts to write all input to database (and all input is OK)
The ‘OK’ button is pressed to approve the addition
The ‘Add Video’ window will be destroyed. User input will be saved to database. The list of videos will be updated.
The window is closed and a record is written to the database.

Yes

16
User attempts to remove a video when no video is selected
The ‘Remove’ button on the ‘Videos’ panel is pressed when no video is selected
No action will be taken. The main window will indicate the error (in bottom left hand corner)
No action is taken. The main window indicates the error in status bar. “No video selected”
Yes

17
User attempts to remove a selected video
The ‘Remove’ button on the ‘Videos’ panel is pressed when a video is selected
The selected video will be removed from the database. The list of videos will be updated.
The video’s record is removed from the database. The list of videos is updated.

Check the database
Yes

18
User attempts to edit a video when no video is selected
The ‘Edit’ button on the ‘Videos’ panel is pressed when no video is selected
No action will be taken. The main window will indicate the error (in bottom left hand corner)
No action is taken. The main window indicates the error in status bar. “No video selected”
Yes

19
User attempts to edit a selected video
The ‘Edit’ button on the ‘Videos’ panel is pressed when a video is selected.
The ‘Edit Video’ window will appear.
The ‘Edit Video’ window is loaded.
Yes

20
Test to ensure that when ‘Edit Video’ window is spawned, the correct information about the selected movie is shown
The ‘Edit’ button on the ‘Videos’ panel is pressed when a video is selected.
When the ‘Edit Video’ window appears, the correct information (filename .etc.) for the selected video is shown
The contents of the selected video’s record are loaded into the corresponding fields.

Yes

21
In ‘Edit Video’, user enters no input in the ‘Filename’ field before pressing OK
“” – an empty string is entered in the ‘Filename’ field.
An error message will be displayed. No other action will be taken
A descriptive message is displayed. No other action is taken. “Invalid filename; you cannot leave this field blank”
Yes

22
In ‘Edit Video’, user enters a value in ‘Filename’ field that clashes with an existing filename
‘alien.mpg’ is entered in the ‘Filename’ field when a file called ‘alien.mpg’ already exists
An error message will be displayed. No other action will be taken
A descriptive message is displayed. No other action is taken. “Cannot add video. This filename is already in the database”
Yes

23
In ‘Edit Video’, user enters no input in the ‘Description’ field before pressing OK
“” – an empty string is entered in the ‘Description’ field.
An error message will be displayed. No other action will be taken.
A descriptive message is displayed. No other action is taken. “Invalid description; you cannot leave this field blank”
Yes

24
In ‘Edit Video’, user attempts to enter a video length less than 1.
The down arrow on the right-hand side of the ‘Length’ spin-box is pressed continuously
The value shown by the spin-box will not decrement below 1.
The value shown by the spin-box cannot decrement below 1.
Yes

25
In ‘Edit Video’, user cancels modification of a video.
The ‘Cancel’ button is pressed to cancel the modification
The ‘Edit Video’ window will be destroyed. No data will be written to database
The ‘Edit Video’ window is closed. No data is written to the database
Yes

26
In ‘Edit Video’, user attempts to write all input to database (and all input is OK)
The ‘OK’ button is pressed to approve the modification
The ‘Edit Video’ window will be destroyed. User input will be saved to database.
The window is closed and the original record is modified using the input provided.
Yes

27
Test to ensure that ‘Add Channel’ window is spawned when ‘Add’ button on ‘Channel’ panel is pressed.
User presses the ‘Add’ button on the ‘Channel’ panel
The ‘Add Channel’ window will be displayed.
The ‘Add Channel’ window is displayed.
Yes

28
In ‘Add Channel’, user enters no input in ‘Name’ field before pressing OK
“” – an empty string is entered in the ‘Name’ field
An error message will be displayed. No other action will be taken
A descriptive message is displayed. No other action is taken. “Invalid name; You cannot leave this field blank”
Yes

29
In ‘Add Channel’, user enters a value in ‘Name’ field that clashes with an existing channel name
‘Channel 1’ is entered in the ‘Name’ field when a channel called ‘Channel 1’ already exists
An error message will be displayed. No other action will be taken
A descriptive message is displayed. No other action is taken. “Cannot add Channel. This channelName is already in the database”
Yes

30
In ‘Add Channel’, user enters no input in ‘Multicast Destination Address’ field before pressing OK
“” – an empty string is entered in the ‘Multicast Destination Address’ field
An error message will be displayed. No other action will be taken
A descriptive message is displayed. No other action is taken. “Invalid IP”
Yes

31
In ‘Add Channel’, user cancels addition of a channel
The ‘Cancel’ button is pressed to cancel the addition
The ‘Add Channel’ window will be destroyed. No data will be written to database
The ‘Add Channel’ window is closed. No data will be written to database
Yes

32
In ‘Add Channel’, user attempts to write all input to database (and all input is OK)
The ‘OK’ button is pressed to approve the addition
The ‘Add Channel’ window will be destroyed. User input will be saved to database. The list of channels will be updated.
The ‘Add Channel’ window is closed. User input is saved to a new record in the database. The list of channels is updated

Yes

33
User attempts to remove a channel when no channel is selected
The ‘Remove’ button on the ‘Channels’ panel is pressed when no channel is selected
No action will be taken. The main window will indicate the error (in bottom left hand corner)
No action is taken. The main window indicates the error in status bar. “No channel selected”
Yes

34
User attempts to remove a selected channel
The ‘Remove’ button on the ‘Channels’ panel is pressed when a channel is selected
The selected channel will be removed from the database. The list of channels will be updated.
The selected channel record is removed from the database. The list of channels is updated.

Yes

35
User attempts to edit a channel when no channel is selected
The ‘Edit’ button on the ‘Channels’ panel is pressed when no channel is selected
No action will be taken. The main window will indicate the error (in bottom left hand corner)
No action is taken. The main window indicates the error in status bar. “No channel selected”
Yes

36
User attempts to edit a selected channel
The ‘Edit’ button on the ‘Channels’ panel is pressed when a channel is selected.
The ‘Edit Channel’ window will appear.
The ‘Edit Channel’ window is loaded.
Yes

37
Test to ensure that when ‘Edit Channel’ window is spawned, the correct information about the selected channel is shown
The ‘Edit’ button on the ‘Channels’ panel is pressed when a channel is selected.
When the ‘Edit Channel’ window appears, the correct information (name .etc.) for the selected channel is shown
The values of the selected record are loaded into corresponding components.

Compare to info in the database
Yes

38
In ‘Edit Channel’, user enters no input in the ‘Name’ field before pressing OK
“” – an empty string is entered in the ‘Name’ field.
An error message will be displayed. No other action will be taken
A descriptive message is displayed. No other action is taken. “Invalid name; You cannot leave this field blank”
Yes

39
In ‘Edit Channel’, user enters a value in ‘Name’ field that clashes with an existing channel name
‘Channel 1’ is entered in the ‘Name’ field when a channel called ‘Channel 1’ already exists
An error message will be displayed. No other action will be taken
A descriptive message is displayed. No other action is taken. “Cannot add Channel. This channelName is already in the database”, “using original values”
Yes

40
In ‘Edit Channel’, user enters no input in the ‘Destination Multicast Address’ field before pressing OK
“” – an empty string is entered in the ‘Destination Multicast Address’ field.
An error message will be displayed. No other action will be taken.
A descriptive message is displayed. No other action is taken. “Invalid IP”
Yes

41
In ‘Edit Channel’, user cancels modification of a channel.
The ‘Cancel’ button is pressed to cancel the modification
The ‘Edit Channel’ window will be destroyed. No data will be written to database
The ‘Edit Channel’ window is closed. No data will be written to database
Yes

42
In ‘Edit Channel’, user attempts to write all input to database (and all input is OK)
The ‘OK’ button is pressed to approve the modification
The ‘Edit Channel’ window will be destroyed. User input will be saved to database.
The channel record is modified. The window is closed.

Check the database
Yes

43
Test to ensure that ‘Add User’ window is displayed when the ‘Add’ button on the ‘Users’ panel is pressed.
User presses the ‘Add’ button on the ‘Users’ panel
The ‘Add User’ window is displayed.
The ‘Add User’ window is displayed.
Yes

44
In ‘Add User’, user enters no input in ‘ID’ field before pressing OK
“” – an empty string is entered in the ‘ID’ field
An error message will be displayed. No other action will be taken
An error message will be displayed. No other action is taken. “Invalid id; you cannot leave this field blank”
Yes

45
In ‘Add User’, user enters a value in ‘ID’ field that clashes with an existing user ID
‘david’ is entered in the ‘ID’ field when a user ID of ‘david’ already exists
An error message will be displayed. No other action will be taken
Error message is displayed and there is no change in data.
Yes

46
In ‘Add User’, user enters no input in ‘Name’ field before pressing OK
“” – an empty string is entered in the ‘Name’ field
An error message will be displayed. No other action will be taken
An error message will be displayed. No other action is taken. “Invalid name; you cannot leave this field blank”
Yes

47
In ‘Add User’, user enters no input in ‘Password’ field before pressing OK
“” – an empty string is entered in the ‘Password’ field
An error message will be displayed. No other action will be taken
An error message will be displayed. No other action is taken. “Invalid pass; you cannot leave this field blank”
Yes

48
In ‘Add User’, user cancels addition of a user
The ‘Cancel’ button is pressed to cancel the addition
The ‘Add User’ window will be destroyed. No data will be written to database
The ‘Add User’ window is closed. No data is written to database
Yes

49
In ‘Add User’, user attempts to write all input to database (and all input is OK)
The ‘OK’ button is pressed to approve the addition
The ‘Add User’ window will be destroyed. User input will be saved to database. The list of users will be updated.
A new user record is created in the database using the user input. The window is closed and all lists are updated.
Yes

50
User attempts to remove a user when no user is selected
The ‘Remove’ button on the ‘Users’ panel is pressed when no user is selected
No action will be taken. The main window will indicate the error (in bottom left hand corner)
No action is taken. The main window indicates the error in status bar. “No user selected”
Yes

51
User attempts to remove a selected user
The ‘Remove’ button on the ‘Users’ panel is pressed when a user is selected
The selected user will be removed from the database. The list of users will be updated.
The selected user is removed from the database. The list of users will be updated.

Check the database
Yes

52
User attempts to edit a user when no user is selected
The ‘Edit’ button on the ‘Users’ panel is pressed when no user is selected
No action will be taken. The main window will indicate the error (in bottom left hand corner)
No action is taken. The main window indicates the error in status bar. “No user selected”
Yes

53
User attempts to edit a selected user
The ‘Edit’ button on the ‘Users’ panel is pressed when a user is selected.
The ‘Edit User’ window will appear.
The ‘Edit User’ window is loaded.
Yes

54
Test to ensure that when ‘Edit User’ window is spawned, the correct information about the selected user is shown
The ‘Edit’ button on the ‘Users’ panel is pressed when a user is selected.
When the ‘Edit User’ window appears, the correct information (Name .etc.) for the selected user is shown
When the ‘Edit User’ window appears, fields from the user record are loaded into corresponding components.

Compare to info in the database
Yes

55
In ‘Edit User’, user enters no input in the ‘ID’ field before pressing OK
“” – an empty string is entered in the ‘ID’ field.
An error message will be displayed. No other action will be taken
An error message will be displayed. No other action is taken. “Invalid id; you cannot leave this field blank”
Yes

56
In ‘Edit User’, user enters a value in ‘ID’ field that clashes with an existing user ID
‘david’ is entered in the ‘ID’ field when user ID ‘david’ already exists
An error message will be displayed. No other action will be taken
Error message is displayed and the original data remains unaffected.
Yes

57
In ‘Edit User’, user enters no input in the ‘Name’ field before pressing OK
“” – an empty string is entered in the ‘Name’ field.
An error message will be displayed. No other action will be taken
An error message will be displayed. No other action is taken. “Invalid name; you cannot leave this field blank”
Yes

58
In ‘Edit User’, user enters no input in the ‘Password’ field before pressing OK
“” – an empty string is entered in the ‘Password’ field.
An error message will be displayed. No other action will be taken.
An error message will be displayed. No other action is taken. “Invalid pass; you cannot leave this field blank”
Yes

59
In ‘Edit User’, user cancels modification of a user
The ‘Cancel’ button is pressed to cancel the modification
The ‘Edit User’ window will be destroyed. No data will be written to database
The ‘Edit User’ window is closed. No data will be written to the database
Yes

60
In ‘Edit User’, user attempts to write all input to database
The ‘OK’ button is pressed to approve the modification
The ‘Edit User’ window will be destroyed. User input will be saved to database.
The window is closed and the original record is modified using the input provided.
Yes

61
Test to ensure that ‘Add Scheduled Stream’ window is displayed when the ‘Add’ button on the ‘Scheduled Video Streams’ panel is pressed.
User presses the ‘Add’ button on the ‘Scheduled Video Streams’ panel
The ‘Add Scheduled Stream’ window is displayed.
The ‘Add Scheduled Stream’ window is displayed.
Yes

62
In ‘Add Scheduled Stream’, user does not select a time value from the ‘Time’ list before pressing OK
No time value is selected when OK is pressed
An error message will be displayed. No other action will be taken
An error message is displayed. No other action is taken. “Please select a time”
Yes

63
In ‘Add Scheduled Stream’, user does not select a channel from the ‘Channel’ list before pressing OK
No channel is selected when OK is pressed
An error message will be displayed. No other action will be taken
An error message is displayed. No other action is taken. “Please select a channel”
Yes

64
In ‘Add Scheduled Stream’, user does not select a video from the ‘Video’ list before pressing OK.
No video is selected when OK is pressed.
An error message will be displayed. No other action will be taken
An error message is displayed. No other action is taken. “Please select a video”
Yes

65
In ‘Add Scheduled Stream’, user does not select a user ID from the ‘Scheduled by’ list before pressing OK.
No user ID is selected when OK is pressed
An error message will be displayed. No other action will be taken
An error message is displayed. No other action is taken. “Please select a user”
Yes

66
In ‘Add Scheduled Stream’, user cancels the reservation
The ‘Cancel’ button is pressed to cancel the reservation
The ‘Add Scheduled Stream’ window will be destroyed. No data will be written to database
The ‘Add Scheduled Stream’ window is closed. No data is written to database
Yes

67
In ‘Add Scheduled Stream’, user attempts to write all input to database (and all input is OK)
The ‘OK’ button is pressed to approve the reservation
The ‘Add Scheduled Stream’ window will be destroyed. User input will be saved to database. The list of reservations will be updated.
The ‘Add Scheduled Stream’ window is closed and user input is saved to the database. The list of reservations is updated.

Check the database
Yes

68
In ‘Add Scheduled Stream’, user attempts to make a reservation that overlaps an existing reservation.
User attempts to add a reservation that would overlap another
An error message will be displayed. No other action will be taken.
There is an error message that the stream overlaps and the stream is NOT added
Yes

69
User attempts to remove a reservation when no reservation is selected
The ‘Remove’ button on the ‘Scheduled Video Streams’ panel is pressed when no reservation is selected
No action will be taken. The main window will indicate the error (in bottom left hand corner)
No action is taken. The main window indicates the error in status bar. “No scheduled stream selected”
Yes

70
User attempts to remove a selected reservation
The ‘Remove’ button on the ‘Scheduled Video Streams’ panel is pressed when a reservation is selected
The selected reservation will be removed from the database. The list of reservations will be updated accordingly
The selected reservation is removed from the database. The list of reservations is refreshed

Check the database
Yes

71
User attempts to edit a reservation when no reservation is selected
The ‘Edit’ button on the ‘Scheduled Video Streams’ panel is pressed when no reservation is selected
No action will be taken. The main window will indicate the error (in bottom left hand corner)
No action is taken. The main window indicates the error in status bar. “No scheduled stream selected”
Yes

72
User attempts to edit a selected reservation
The ‘Edit’ button on the ‘Scheduled Video Streams’ panel is pressed when a reservation is selected.
The ‘Edit Scheduled Stream’ window will appear.
The ‘Edit Scheduled Stream’ window is loaded and displayed
Yes

73
Test to ensure that when ‘Edit Scheduled Stream’ window is spawned, the correct information about the selected reservation is shown
The ‘Edit’ button on the ‘Scheduled Video Streams’ panel is pressed when a reservation is selected.
When the ‘Edit Scheduled Stream’ window appears, the correct information (Date .etc.) for the selected reservation is shown
When the ‘Edit Scheduled Stream’ window appears all lists are populated by records from the database and the items pertaining to the stream are selected.
Yes

74
In ‘Edit Scheduled Stream’, user attempts to make a reservation that overlaps an existing reservation.
User modifies the reservation so it overlaps with another
An error message will be displayed. No other action will be taken.
There is an error message that the stream overlaps and the new stream is NOT added, the old row is left in table.
Yes

75
In ‘Edit Scheduled Stream’, user cancels modification of a reservation
The ‘Cancel’ button is pressed to cancel the modification
The ‘Edit Scheduled Stream’ window will be destroyed. No data will be written to database
The ‘Edit Scheduled Stream’ window is closed. No data is written to the database
Yes

76
In ‘Edit Scheduled Stream’, user attempts to write all input to database (and all input is OK)
The ‘OK’ button is pressed to approve the modification
The ‘Edit Scheduled Stream’ window will be destroyed. User input will be saved to database.
The selected stream record will be modified in the database.

Check the database
Yes

77
On the ‘Settings’ panel, user attempts to set ‘Minimum time between reservations’ to a value less than zero
User clicks on the down-arrow of the ‘Minimum time….’ spin-box to set the value to less than 0
The value of the spin box will not decrement below zero
The value of the spin box cannot decrement below zero
Yes

78
On the ‘Settings’ panel, user enters no input in ‘Server Name’ field before pressing ‘Save’
“” – an empty string is entered in the ‘Server Name’ field
An error message will be displayed. The previous values will be reset.
An error message is displayed. The previous values are reset. “Invalid settings; server name shouldn’t be blank””
Yes

79
On the ‘Settings’ panel, user enters no input in ‘Video File Root Directory’ field before pressing ‘Save’
“” – an empty string is entered in the ‘Video File Root Directory’ field
An error message will be displayed. The previous values will be reset.
An error message is displayed. The previous values are reset. “Invalid settings; the video root directory cannot be blank”
Yes

80
On the ‘Settings’ panel, user enters no input in ‘Default new user pass phrase’ field before pressing ‘Save’
“” – an empty string is entered in the ‘Default new user pass phrase’’ field
The value will be accepted and no error message will be displayed.
The value is accepted and no error message will be displayed.
Yes

81
On the ‘Settings’ panel, user attempts to write all settings changes to database (and all input is ok)
The ‘Save’ button is pressed to approve any settings changes
The values of all settings will be written to the database (saved).
These values are saved to the database.

Check the database
Yes

82
On the ‘Settings’ panel, user attempts to cancel all settings changes.
The ‘Reload’ button is pressed to cancel all settings changes and reload original values
The values entered by the user will not be written to the database. All original settings will be restored
The database is not modified. All records on main are updated from the database.
Yes

83
Clicking Add video button when not connected should display an error
The “Add” button on the video panel is clicked
An error message should be displayed in the status bar.
The status bar displays an error message “Not Connected to Database: please connect:
Yes

84
Clicking Add channel button when not connected should display an error
The “Add” button on the channel panel is clicked
An error message should be displayed in the status bar.
The status bar displays an error message “Not Connected to Database: please connect:
Yes

85
Clicking Add user button when not connected should display an error
The “Add” button on the user panel is clicked
An error message should be displayed in the status bar.
The status bar displays an error message “Not Connected to Database: please connect:
Yes

86
Clicking Add scheduled stream button when not connected should display an error
The “Add” button on the scheduled streams panel is clicked
An error message should be displayed in the status bar.
The status bar displays an error message “Not Connected to Database: please connect:
Yes

87
Clicking Edit video button when not connected should display an error
The “Edit” button on the video panel is clicked
An error message should be displayed in the status bar.
The status bar displays an error message “Not Connected to Database: please connect:
Yes

88
Clicking Edit channel button when not connected should display an error
The “Edit” button on the channel panel is clicked
An error message should be displayed in the status bar.
The status bar displays an error message “Not Connected to Database: please connect:
Yes

89
Clicking Edit user button when not connected should display an error
The “Edit” button on the user panel is clicked
An error message should be displayed in the status bar.
The status bar displays an error message “Not Connected to Database: please connect:
Yes

90
Clicking Edit scheduled stream button when not connected should display an error
The “Edit” button on the scheduled streams panel is clicked
An error message should be displayed in the status bar.
The status bar displays an error message “Not Connected to Database: please connect:
Yes

91
When connected the “Options->Connect to database” menu item should change to “Disconnect”
The “Options->Connect to database” menu item is clicked
menu item should change to “Disconnect”
menu item changes to “Disconnect”
Yes

92
When clicking the “Options->Disconnect” menu item the program should disconnect and clear all fields.
The “Options->disconnect” menu item is clicked
The program should disconnect and clear all fields.
The program disconnects and clears all fields.
Yes

93
When connected clicking the “Options->disconnect” menu item should change the menu item back to “Connect to database”
The “Options->Disconnect” menu item is clicked
The menu item should change to “Connect to database”
The menu item changes to “Connect to database”
Yes

5.3 Scheduler Test Cases
Test Cases for the Scheduler GUI this maybe required to be performed with the database, as the scheduler will be hard to test without this component. The alternative is to utilise test drivers and stubs.

Test
Test Description
Test Data
Expected Results
Actual Results
Passed?

1
Scheduler cannot find schedulerd.conf
schedulerd.conf file not available (missing)
The program will exit with an error
The program prints an error message and exits
True

Scheduler output: scheduler started

scheduler.c – error opening schedulerd.conf: No such file or directory

2
Scheduler is able to find schedulerd.conf
schedulerd.conf file can be found and is correct
The program should

continue
The program simply continues
True

Scheduler output:
scheduler started
3
schedulerd.conf contains a line that exceeds the maximum character limit
A line in schedulerd.conf exceeds 200 characters
The program will exit with an error
The program prints an error message and exits
True

Scheduler output: scheduler started

scheduler.c – error: line 52 in ‘schedulerd.conf has too many characters

4

User enters an incorrect database username
The value of the ‘Username’ directive in schedulerd.conf refers to a non-existent user
The program will exit with an error
The program prints an error message and exits
True

Scheduler output:
scheduler started

Failed to connect to database: Error: Access denied for user: ‘vlcdbadmi@localhost’ (Using password: YES)

Test
Test Description
Test Data
Expected Results
Actual Results
Passed?

5
User enters an incorrect database password
The value of the ‘Password’ directive in schedulerd.conf is incorrect
The program will exit with an error
The program prints an error message and exits
True

Scheduler output: scheduler started

Failed to connect to database: Error: Access denied for user: ‘vlcdbadmin@localhost’ (Using password: YES)

6
User enters an incorrect database name
The value of the ‘DatabaseName’ directive in schedulerd.conf refers to a non-existent database
The program will exit with an error
The program prints an error message and exits
True

Scheduler output: scheduler started

Failed to connect to database: Error: Access denied for user: ‘vlcdbadmin@localhost’ to database ‘vlcd’

7
Scheduler cannot connect to the database for any reason
MySQL is not running on the server
Program will exit with an error
The program prints an error message and exits
True

Scheduler output: scheduler started

Failed to connect to database: Error: Cannot connect through socket ‘localhost’

8
Scheduler cannot submit query 1
Database is re-configured incorrectly
Program will exit with an error
The program prints an error message and exits
True

Scheduler output: Error submitting query1

Test
Test Description
Test Data
Expected Results
Actual Results
Passed?

9
Scheduler cannot submit query 2
Database is re-configured incorrectly
Program will exit with an error
The program prints an error message and exits
True

Scheduler output: Error submitting query2

10
User enters an invalid or unavailable hostname/IP address
The value of the ‘HostNameIP’ directive in schedulerd.conf refers to an invalid hostname or IP
The program will exit with an error
The program prints an error message and exits
True

Scheduler output: scheduler started

Failed to connect to database: Error: Unknown MySQL Server Host ‘localhos’ (1)

11
A schedulerd.conf directive exists but no corresponding value
Any directive is entered without a corresponding value (has been tested with all directives)
The program will exit with an error
The program prints an error message and exits
True

Scheduler output: scheduler started

scheduler.c – “HostNameIP” directive in schedulerd.conf has no corresponding value

12
A schedulerd.conf directive contains more than 30 chars
Any directive is entered with more than 30 chars
The program will exit with an error
The program prints an error message and exits
True

Scheduler output: scheduler started

scheduler.c – buffer overflow error on line 25 (either the directive or value has more than 30 characters)

Test
Test Description
Test Data
Expected Results
Actual Results
Passed?

13
The value corresponding to a directive contains more than 30 chars
Any value that corresponds to a directive is entered with more than 30 chars
The program will exit with an error
The program prints an error message and exits
True

Scheduler output: scheduler started

scheduler.c – buffer overflow error on line 25 (either the directive or value has more than 30 characters)

14
Scheduler detects extra unexpected directives (with value)
A new directive that is not expected is added to schedulerd.conf (with a corresponding value)
The program will ignore the directive and continue
The program continues without displaying any error message
True

Scheduler output: scheduler started
15
User enters extra spaces/tabs between a directive and value
Any directive is separated from its value by more than just a single white-space
The program will ignore the extra space/tab chars and continue
The program continues without displaying any error message
True

Scheduler output: scheduler started
16
User enters extra tokens after a value
Extra tokens are entered after any value (has been tested with all values)
The program will ignore the extra tokens and continue
The program ignores the extra tokens and continues without displaying any error message.
True

Scheduler output: scheduler started

Test
Test Description
Test Data
Expected Results
Actual Results
Passed?

17
User enters leading spaces/tabs before a directive
A line with a directive begins with space/tab chars
The program will ignore the leading chars and continue
The program ignores the leading characters and continues without printing any error message
True

Scheduler output: scheduler started

18
User enters a value for ‘WakeupTime1’ directive that is not >=0 and <= 59 Value for ‘WakeupTime1’ directive is set to -1 or 60 (has been tested with both) The program will exit with an error The program prints an error message and exits True Scheduler output: scheduler started scheduler.c - value of WakeupTime1 in schedulerd.conf is not between 0 and 59 (inclusive) 19 User enters a value for ‘WakeupTime2’ directive that is not >=0 and <= 59 Value for ‘WakeupTime2’ directive is set to -1 or 60 (Has been tested with both) The program will exit with an error The program prints an error message and exits True Scheduler output: scheduler started scheduler.c - value of WakeupTime2 in schedulerd.conf is not between 0 and 59 (inclusive) 20 User enters a value for ‘WakeupTime1’ directive that contains non-numeric chars Value for ‘WakeupTime1’ directive is set to ‘1abc’ The program will exit with an error The program prints an error message and exits True Scheduler output: scheduler started scheduler.c - value of WakeupTime1 in schedulerd.conf contains non-numerical characters Test Test Description Test Data Expected Results Actual Results Passed? 21 User enters a value for ‘WakeupTime2’ directive that contains non-numeric chars Value for ‘WakeupTime2’ directive is set to ‘2abc’ The program will exit with an error The program prints an error message and exits True Scheduler output: scheduler started scheduler.c - value of WakeupTime2 in schedulerd.conf contains non-numerical characters 22 User starts the scheduler normally (i.e. when it is not already running) The control script ‘schedulerctl’ is used to invoke the scheduler The scheduler will start normally. The scheduler starts as expected and prints a small message to indicate that it is now running True Scheduler output: scheduler started 23 User attempts to start the scheduler when it is already running. ‘schedulerctl start’ is entered on the command line more than once. i.e. without stopping the program. An error message will be displayed and the scheduler will not be invoked again. The scheduler is not invoked again. An error message is displayed, indicating to the user that the program is already running True Scheduler output: scheduler is already running 24 User stops the scheduler normally (i.e. when the scheduler is running) The control script ‘schedulerctl’ is used to stop the scheduler The scheduler will terminate The scheduler terminates as expected. A message is displayed to indicate that the scheduler has exited. True Scheduler output: scheduler terminated Test Test Description Test Data Expected Results Actual Results Passed? 25 User attempts to stop the scheduler when it is not running ‘schedulerctl stop’ is used to stop the scheduler when it is not already running An error message will be displayed. No other action will be taken An error message is displayed to the user. No other action is taken. True Scheduler output: scheduler is not running 26 User attempts to start the scheduler directly User enters ‘scheduler’ on the command line to start the scheduler rather than using the control script. An error message will be displayed and the scheduler will not be started. An error message is displayed and the scheduler is not started. Users must only use the control script to start and stop the scheduler True Scheduler output: scheduler.c - incorrect command line args 27 User attempts to restart the scheduler when it is running User enters ‘schedulerctl restart’ on the command line to restart the scheduler The scheduler will be stopped and started again. A message will be displayed to the user The scheduler is restarted successfully. A message is displayed to indicate that the restart was successful. True Scheduler output: scheduler re-started 28 User attempts to restart the scheduler when it is not running User enters ‘schedulerctl restart’ when the scheduler is not running An error message will be displayed. No other action will be taken. An error message is displayed to the user. No other action is taken. True Scheduler output: scheduler is not running Test Test Description Test Data Expected Results Actual Results Passed? 29 Scheduler works as expected when ‘WakeupTime1’ is hit ‘WakeupTime1’ directive is set to 25. Any video scheduled to start in the very next timeslot e.g. on the half-hour, is streamed correctly Each video that is scheduled to start does so correctly. True Scheduler output: scheduler program displays no output, however, VLC does print output to screen when stream is invoked 30 Scheduler works as expected when ‘WakeupTime2’ is hit ‘WakeupTime2’ directive is set to 55. Any video scheduled to start in the very next timeslot e.g. on the hour, is streamed correctly Each video that is scheduled to start does so correctly. True Scheduler output: scheduler program displays no output, however, VLC does print output to screen when stream is invoked 31 Scheduler is able to stream multiple videos concurrently The database is configured so that two different videos are set to stream concurrently (to different addresses) The videos are streamed concurrently to the two different addresses The videos are streamed correctly to two different addresses True Scheduler output: scheduler program displays no output, however, VLC does print output to screen when stream is invoked 32 Scheduler install script works correctly User enters ‘schedinstall’ at the command line The scheduler will be installed The scheduler is installed correctly True Test Test Description Test Data Expected Results Actual Results Passed? 33 Scheduler correctly invokes a stream starting in slot 1 of any day A stream is scheduled to start in slot 1 of any day. Important to test this as the child process to handle this stream must be forked during the previous day. The video scheduled to start in slot 1 begins streaming at midnight (the point of change between the 2 days) The video is started at midnight and streams correctly. True Scheduler output: scheduler program displays no output, however, VLC does print output to screen when stream is invoked 34 Scheduler correctly invokes a stream starting in slot 1 of the first day of a month A stream is scheduled to start in slot 1 of the first day of a month. (System time was modified) The video scheduled to start in slot 1 begins streaming at midnight (the point of change between 2 days) The video is started at midnight and streams correctly. This test case is important as it ensures that dates are being calculated correctly. True Scheduler output: scheduler program displays no output, however, VLC does print output to screen when stream is invoked 35 When in timeslot 48 on a particular day, scheduler does not invoke a video scheduled to stream in slot 1 of that day. A stream is scheduled to start in slot 1 and system time is changed to slot 48 of that same day. As the stream in slot 1 will have already been run, scheduler will ignore this and will not invoke VLC for this stream The scheduler ignores this stream. True Scheduler output: no output. Scheduler handles this situation correctly. Test Test Description Test Data Expected Results Actual Results Passed? 36 Scheduler waits the correct number of seconds to invoke a stream A stream is scheduled to start in the very next time slot VLC starts streaming within 5 seconds of when it is scheduled to begin The scheduled stream begins streaming at the correct time – almost to the second True Scheduler output: scheduler program displays no output, however, VLC does print output to screen when stream is invoked 37 Scheduler control script is invoked with no parameter User enters ‘schedulerctl’ on the command line (i.e. there is no command line arg included) An error message will be displayed. No further action will be taken An error message is displayed to the user – no further action is taken. True Scheduler output: schedulerctl: usage: schedulerctl [start | stop | restart] 38 Scheduler control script is invoked with an incorrect parameter Invokes ‘schedulerctl’ with a command line argument that is not ‘start’, ‘stop’ or ‘restart’ An error message will be displayed. No further action will be taken An error message is displayed to the user – no further action is taken True Scheduler output: schedulerctl: usage: schedulerctl [start | stop | restart] 39 Scheduler control script is invoked with more than one parameter User enters ‘schedulerctl start d’ (or something to this effect) on the command line An error message will be displayed and no further action will be taken An error message is displayed and no further action is taken True Scheduler output: schedulerctl: usage: schedulerctl [start | stop | restart] 5.4 Dynamic Web Page Test Cases Test Cases for the Scheduler GUI this maybe required to be performed with the database, as the scheduler will be hard to test without this component. The alternative is to utilise test drivers and stubs. Test Test Description Test Data Expected Results Actual Results Passed? 1 At login, user enters an empty string in the ‘Username’ field before pressing ‘Log In’ button. ‘Username’ = “” ‘Password’ = “david” An error message will be displayed. User will be prompted to enter credentials again Error message is displayed and user is prompted to re-enter credentials Yes 2 At login, user enters an empty string in the ‘Password’ field before pressing ‘Log In’ button. ‘Username’ = “david” ‘Password’ = “” An error message will be displayed. User will be prompted to enter credentials again Error message is displayed and user is prompted to re-enter credentials Yes 3 At login, user enters an empty string in both ‘Username’ and ‘Password’ fields before pressing ‘Log In’ button. ‘Username’ = “” ‘Password’ = “” An error message will be displayed. User will be prompted to enter credentials again Error message is displayed and user is prompted to re-enter credentials Yes 4 At login, user enters a value in both the ‘Username’ and ‘Password’ fields but credentials are incorrect ‘Username’ = “badname” ‘Password’ = “badpass” An error message will be displayed. User will be prompted to enter credentials again Authentication Failed! Message displayed and user is prompted to re-enter credentials Yes 5 At login, user enters a value in both the ‘Username’ and ‘Password’ fields and credentials are correct ‘Username’ = “michelle” ‘Password’ = “michelle” User will be successfully authenticated. VLC Web Interface session guide will be displayed User is successfully authenticated and main session guide is displayed Yes 6 Test to ensure that when the session guide first appears, time-slots for today’s date are shown by default User successfully logs in and the session guide is displayed The session guide will display the time slots/reservations for the current date when it first appears Time slots for the current date are displayed on initial log in Yes 7 Test to ensure that when the session guide first appears, time-slots to the first channel (eg. Channel 1) are shown by default User successfully logs in and the session guide is displayed. The session guide will display the time slots/reservations for the first available channel Time slots fro Channel 1 are displayed which is the first channel in channel table Yes 8 Test to ensure that when the session guide first appears, the current time-slot is indicated (highlighted in yellow) User successfully logs in and the session guide is displayed The session guide will indicate the current time-slot by highlighting it in yellow. Time slot corresponding to current time was highlighted yellow Yes 9 Test to ensure that when the session guide first appears, the correct information for the current date/first channel is displayed. User successfully logs in and the session guide is displayed The session guide will display the reservations for current date on the first channel (correctly!!) Reservations for current date are correctly displayed in the correct slots Yes 10 When normal user (student) changes channels, only channels they are permitted to select are shown in the list of available channels Normal user (student) attempts to select a different channel The list of channels displayed will contain all/only those channels that a normal user may view Channels with a Viewable flag of 0 in channel table are hidden from ordinary users Yes 11 When administrator changes channels, all channels are shown Administrator attempts to select a different channel The list of channels displayed will contain all channels. All channels regardless of Viewable flag are shown to Administrators Yes 12 When a different channel is selected and ‘Change Date-Channel’ is pressed, the session guide is refreshed with reservation information for the selected channel User selects a different channel before pressing the ‘Change Date-Channel’ button The session guide will be updated with reservation information for the selected channel When a new channel is selected the session guide correctly displays sessions only for that channel and no others Yes 13 Test to ensure that when the session guide is refreshed after a new channel is chosen, the correct information for the selected channel is displayed. User selects a different channel before pressing the ‘Change Date-Channel’ button The session guide will be updated with the correct reservation information for the selected channel. When a channel is changed the data for any sessions reserved is consistent with what is in database Yes 14 When any user changes date, a range of dates from today’s date to two weeks into the future is displayed. Any user attempts to select a different date. The session guide will only allow the user to select a date up to 2 weeks into the future. The drop down list of dates is limited to only 14 days into the future Yes 15 When a different date is selected and ‘Change Date-Channel’ is pressed, the session guide is refreshed with reservation information for the selected date User selects a different date before pressing the ‘Change Date-Channel’ button The session guide will be updated with reservation information for the selected date The session guide correctly displayed only those sessions reserved for the new channel and date Yes 16 Test to ensure that when the session guide is refreshed after a new date is chosen, the correct information for the selected date is displayed. User selects a different date before pressing the ‘Change Date-Channel’ button The session guide will be updated with the correct reservation information for the selected date. When a date is changed the data for any sessions reserved is consistent with what is in database Yes 17 When a different date AND channel is selected and ‘Change Date-Channel’ is pressed, the session guide is refreshed with reservation information for the selected date AND channel User selects a different date AND channel before pressing the ‘Change Date-Channel’ button The session guide will be updated with reservation information for the selected date/channel The session guide showed reservations for the newly selected date AND channel Yes 18 Test to ensure that when the session guide is refreshed after a new date AND channel is chosen, the correct information for the selected date/channel is displayed. User selects a different date AND channel before pressing the ‘Change Date-Channel’ button The session guide will be updated with the correct reservation information for the selected date/channel When a date AND channel is changed the data for any sessions reserved is consistent with what is in database Yes 19 When the session guide is refreshed, the database is queried and the current reservations for the selected date/channel are displayed User clicks on the ‘refresh’ button on the session guide The session guide will be refreshed with the most up-to-date reservation information for the selected date/channel When refreshed with “Refresh” the session guide will return to the selected date and channel as long as channel/date drop down lists were not changed since last refresh Yes 20 When user logs out, the log-out operation is performed correctly User clicks on the ‘Log Out’ button on the session guide The current session will be terminated and the user shall be returned to the login screen. Session record is deleted from session table and user is returned to the login screen Yes 21 When user clicks on the ‘View Stream’ button, instructions on how to view the stream are displayed User clicks on the ‘View Stream’ button on the session guide. A dialog box will be displayed. The multicast IP address of the current channel will be displayed. JavaScript pop up message appears with correct instructions and IP address. Yes 22 When instructions on how to view a stream are displayed, the correct multicast address for the current channel is displayed. User clicks on the ‘View Stream’ button on the session guide. The dialog box that is displayed shall display the CORRECT address of the current channel The correct multicast IP address for the channel was displayed Yes 23 When user clicks on the ‘Help’ hyperlink on the session guide, the help page for the VLC Web Interface is displayed. User clicks on the ‘Help’ hyperlink on the session guide. The VLC Web Interface help page will be displayed in a new window. Help page was correctly displayed in new window. Yes 24 Test to ensure that a normal user (student) can only delete reservations they have made themselves. User clicks on the ‘Delete’ hyperlink of a reservation made by another user The session guide will be refreshed and an error message will be displayed. No deletion will occur Session guide was refreshed and error message was displayed “not eligible to delete”. Deletion request failed. Yes 25 Test to ensure that an administrator can delete ANY reservations. Administrator clicks on the ‘Delete’ hyperlink of a reservation made by another user The reservation will be deleted and the session guide will be updated accordingly. Administrator successfully deleted another user's reservation Yes 26 Test to ensure that when a reservation is deleted, it is removed from the database and the session guide is updated. User clicks on the ‘Delete’ hyperlink of a reservation the have made themselves. The reservation will be deleted and the session guide will be updated accordingly. Session was deleted (removed from database) and session guide updated Yes 27 Test to ensure that all users are physically unable to reserve a timeslot that already contains a reservation. User attempts to re-reserve a time slot The session guide will prevent this by removing the ‘Reserve’ hyperlink for each reserved timeslot Reserve hyperlink is removed only for user that made the reservation. Other users will have theirs removed only if they “Refresh”. Worst case scenario of double booking a slot was possible via another users unrefreshed Reserve link Partial Single User PASS Multi-user FAIL under “specific” race condition 28 Test to ensure that a normal user (student) can only modify reservations they have made themselves. User clicks on the ‘Modify’ hyperlink of a reservation made by another user The session guide will be refreshed and an error message will be displayed. No modification will be permitted User was not permitted to modify another user's reservation. Eligibility error msg displayed Yes 29 Test to ensure that an administrator can modify ANY reservations Administrator clicks on the ‘Modify’ hyperlink of a reservation made by another user The ‘Stream Modification’ page will be displayed. Admin was able to modify another users reservation Yes 30 When user clicks on the ‘Reserve’ hyperlink for any timeslot, the ‘Stream Reservation’ page is displayed correctly. Any user clicks on the ‘Reserve’ hyperlink of any available time-slot. The ‘Stream Reservation’ page will be displayed. Reservation page was correctly displayed and reservation could be made Yes 31 In ‘Stream Reservation’ a normal user (student) is only able to select videos for which the ‘viewable’ flag is set to 1. A normal user attempts to select a video on the ‘Stream Reservation’ page The ‘Stream Reservation’ page will only list those videos that a normal user may view (viewable = 1) Normal user was only able to see those movies where Viewable flag was 1 Yes 32 In ‘Stream Reservation’ administrators are able to select from any video, regardless of the value of the ‘viewable’ flag. An administrator attempts to select a video on the ‘Stream Reservation’ page The ‘Stream Reservation’ page will list all videos in the system. Administrator was able to see all movies regardless of Viewable flag setting Yes 33 In ‘Stream Reservation’, any user will only be able to select videos that will NOT overlap future reservations. Any user attempts to select a video on the ‘Stream Reservation’ page The ‘Stream Reservation’ page will list only those videos that will not overlap a future reservation. Videos whose duration overlaps the next existing future reservation are not available in the drop down Yes 34 In ‘Stream Reservation’, user attempts to approve the reservation Any user clicks on the ‘Submit Reservation’ button. The reservation data will be written to the database. The session guide will be updated. Reservation was written to the database and session guide was updated Yes 35 In ‘Stream Reservation’, user attempts to cancel the reservation Any user clicks on the ‘Cancel Reservation’ button The reservation will be cancelled. No data will be written to the database. The reservation was cancelled with no records written to the database Yes 36 In ‘Stream Reservation’, user clicks on the ‘Help’ hyperlink to display the VLC Web Interface help page User clicks on the ‘Help’ hyperlink The VLC Web Interface help page will be displayed in a new window.mysql-3.23.54a-11.i386.rpm The help page was displayed from a new window. Yes 37 Test to ensure that normal users must wait a certain period of time between successive reservations when ‘WaitBetweenRequests’ > 0
A normal user attempts to make two reservations in quick succession.
The session guide will be refreshed and an error message will be displayed. No modification will be permitted
Once a regular user made one reservation a new reservation could not be made for WaitBetweenRequests (in hrs)
Yes

38
Test to ensure that administrators do not have to wait between making successive reservations
Administrator attempts to make two reservations in quick succession.
Both reservations will be accepted. The session guide will be updated accordingly.
Administrator did not have the restriction of WaitBetweenRequests
Yes

39
Test to ensure that any user does not have to wait between successive reservations when ‘WaitBetweenRequests’ = 0.
A normal user attempts to make two reservations in quick succession.
Both reservations will be accepted. The session guide will be updated accordingly.
With WaitBetweenRequests = 0 regular users became unrestricted
Yes

40
Test to ensure that if ‘WaitBetweenRequests’ > 0 and a normal user has waited at least this many hours since last reservation, a new reservation can be made.
A normal user (student) makes a reservation after waiting a period of hours defined by ‘WaitBetweenRequests’
The new reservation will be accepted and written to the database.
User was able to make a new reservation after the WaitBetweenRequests had expired
Yes

41
Test to ensure that when a reservation is made, the session guide is updated accordingly and the correct number of time slots over which the video runs is shown as reserved.
Any user makes a reservation for a movie that spans over more than one time-slot
The session guide will show how many time slots the reservation spans. Other users will be prevented from reserving movies in these time slots.
Movie correctly spanned over multiple timeslots and other users lost the Reserve link for those slots (provided they refreshed their page)
Yes

(Partial)

42
When a normal user makes a reservation, they are able to delete this at any point in time before the reservation has streamed.
A user deletes a reservation they previously made BEFORE it starts streaming
The reservation will be deleted and the user will be able to schedule another reservation immediately – they will not have to wait x hours
A user is able to delete any reservation they have made even after it has started streaming to reset their WaitBetweenRequests
Yes

43
Test to ensure that a normal user cannot delete a reservation after it has streamed.
A user attempts to delete a reservation (from earlier in the day) that they have already viewed
The time slot will not be deleted – the session guide will be refreshed and an error message will be displayed.
Not Implemented
FAIL

44
When user clicks on the ‘Modify’ hyperlink for any timeslot (that they are permitted to modify), the ‘Stream Modification’ page is displayed correctly.
Any user clicks on the ‘Modify’ hyperlink of any reservation they are permitted to modify
The ‘Stream Modification’ page will be displayed.
The Stream Modification page was displayed and the user was able to modify their stream
Yes

45
In ‘Stream Modification’ a normal user (student) is only able to select videos for which the ‘viewable’ flag is set to 1.
A normal user attempts to select a video on the ‘Stream Modification’ page
The ‘Stream Modification’ page will only list those videos that a normal user may view (viewable = 1)
Normal user was only able to see those movies where Viewable flag was 1
Yes

46
In ‘Stream Modification’ administrators are able to select from any video, regardless of the value of the ‘viewable’ flag.
An administrator attempts to select a video on the ‘Stream Modification’ page
The ‘Stream Modification’ page will list all videos in the system.
Administrator was able to see all movies regardless of Viewable flag setting
Yes

47
In ‘Stream Modification’, any user will only be able to select videos that will NOT overlap future reservations.
Any user attempts to select a video on the ‘Stream Modification’ page
The ‘Stream Modification’ page will list only those videos that will not overlap a future reservation.
The ‘Stream Modification’ page listed only those videos that will not overlap a future reservation.
Yes

48
In ‘Stream Modification’, user attempts to approve the modification
Any user clicks on the ‘Submit ‘Modification’ button.
The modification will be written to the database. The session guide will be updated.
The database record was updated correctly and the GUI was refreshed to show update
Yes

49
In ‘Stream Modification’, user attempts to cancel the modification
Any user clicks on the ‘Cancel Modification’ button
The modification will be cancelled. No data will be written to the database.
When a modification was cancelled the GUI returned to the main page and nothing was changed
Yes

50
In ‘Stream Modification’, user clicks on the ‘Help’ hyperlink to display the VLC Web Interface help page
User clicks on the ‘Help’ hyperlink
The VLC Web Interface help page will be displayed in a new window.
The help page was correctly displayed in a new window
Yes

51
Test to ensure that when a modification is made, the session guide is updated accordingly and the correct number of time slots over which the new video runs is shown as reserved.
Any user modifies a reservation and selects a new movie that spans over more than one time-slot
The session guide will show how many time slots the modified reservation spans. Other users will be prevented from reserving movies in these time slots.
After the modification the GUI was updated and the correct number of new time slots was filled in. Other user were prevented from reserving those slots provided they refreshed their page
Yes

(Partial)

52
Test to ensure that normal users (students) can only reserve timeslots on channels they are given ‘write’ access to.
User selects a channel that they are able to view, but not reserve time-slots on.
The session guide will show all time-slots as ‘disabled’. Users will not be able to reserve, modify or delete reservations on this channel
Channels with ScheduledByUser flag set to 0 were correctly show as read-only for regular users
Yes

53
Test to ensure that administrators can reserve timeslots on any channel.
Administrator selects any channel from the session guide
The session guide will provide the administrator ‘write’ access (add, modify and delete) to any channel.
All channels were read-write for Admins regardless of ScheduledByUser setting
Yes

54
VLC Web Interface is able to run over SSL
Any user accesses the VLC Web Interface
The URL scheme will be https://, indicating that SSL is being used.
The web interface worked correctly over port 443
Yes

55
Regular users are not able to modify another users reservation
Regular user clicks “modify” hyperlink of another user
Regular user is prevented from making the modification and an error appears
Error message appeared and user was prevented from modifying stream
Yes

56
Admins are able to modify another users reservation
Admin clicks “modify” hyperlink of another user
Admin is able to modify another user’s reservation
Admin successfully modified a reservation but the Admins username was not written to the record. The owner of the record was still the original person to reserve the record
Yes**

6 Problem Management

Problems relevant to Unit testing will be logged, monitored and resolved as part of the standard procedure for the testing. Escalation to, and resolution by, the developer will be handled in the same way. Problems impacting an individual’s Unit testing, which are outside the scope of the Unit tests, will be logged and resolved by the team.

7 Roles and Responsibilities

This is a list of resources required to conduct the Unit testing activities related to this document.

Resource
Task
Time Estimate

David Patullo
Scheduler
One Week of testing activities

Martin Sulzynski
Database
2 Days of testing activities

Martin Sulzynski
Dynamic Web Page
One Week of testing activities

Cliffe Schreuders/Tim Radbone
Administrator GUI
One Week of testing activities

8 Configuration Management
Version
Date
Author
Description of change

1.0
30/09/2004
Michelle Lister
Initial Unit Test Plan

1.2
26/10/2004
Michelle Lister
Integrated Test Results

1.3
04/11/2004
Michelle Lister
Integrated Test Results

1.4
04/11/2004
David Patullo
Formatted/Final Version

PAGE
Unit Test Plan/Test Results
Page 4
17/04/2014