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