Table Of Contents
Introduction
next
previous
top
Testing is extremely important, both to ensure that the system meets requirements, and
to ensure that it is free of errors. This sub-document of the
Functional Design Document goes over WinterSoft's testing plans.
Unit Testing
next
previous
top
Unit testing will ensure that each unit will work as expected before the units
are integrated. Black box testing provides us with the best method of testing
because we will be able to ensure that the inputs and outputs to each unit
are properly handled.
By analyzing the University of Atlantis Requirements
Document
as well as our interactions with the University of Atlantis, we have identified
some key functions which must undergo unit testing: Registering in a Course, Viewing Timetables, Adding
Courses and Adding Students are all critical functions of the Project Atlantis System, the
first two being Student functionalities,
and the last two being Administrator functionalities.
This section contains test cases for the key units, and Appendix B
contains a set of test cases for the key units as well as several others.
1. Student - View Timetable
next
previous
top
GUI
-
Inputs:
- 1) Student ID number
Expected Outputs:
-
1) Student ID is displayed + Student ID number is passed to the function that will retrieve
a timetable + Date is displayed + Trimester
2. Student - Course Registration
next
previous
top
GUI
-
Part 1:
Inputs:
-
1) Student ID number + OK button
2) Student ID number + Course name + OK button
Expected Outputs:
-
1) Display nothing
2) Course name is ready to pass to the function that will return the course information
Part 2:
Inputs:
-
1) Course name + Selected lecture number + Selected lab number + Selected tutorial number
2) Course name + (Selected lecture number xor Selected lab number xor Selected tutorial number) + Add
3) Course name + Selected lecture number + Selected lab number + Selected tutorial number + Add
4) Course name + Selected lecture number + Selected lab number + Selected tutorial number + Change
5) Course name + Selected lecture number + Drop
Expected Outputs:
-
1) Fill in radio buttons
2) Error: Not all fields selected
3) Pass sections to the function that adds the course to the student and course information
4) Pass section(s) to the function that modifies the student and course information
5) Pass section to the function that handles removing a course from the student and course information
Part 3:
Inputs:
-
1) Course information + Student information
Expected Outputs:
-
1) Display the current information
3. Administrator - Add Course
next
previous
top
GUI
-
Part 1:
Inputs:
-
1) Course name
-
a) "xxxx111"
b) "xxxxx11"
c) "111xxxx"
d) ""
Expected Outputs:
-
1) Course name
-
a) Step 2 menu is loaded
b) Error: Course name is not in the proper format
c) Error: Course name is not in the proper format
d) Error: Course name is not in the proper format
Part 2:
Inputs:
-
1) Valid course name + (Add lecture or Add lab section or Add tutorial section)
2) Valid course name + (Add pre-requisite or Add co-requisite)
Expected Outputs:
-
1) Step 3 - Add section menu is loaded
2) Step 3 - (Add prerequisite or Add co-requisite)
Part 3:
Inputs:
-
1) New section information + OK
2) OK
Expected Outputs:
-
1) Data is ready to be passed to the function that will store the information in the course database
2) Nothing
4. Administrator - Add New Student
next
previous
top
GUI
-
Inputs:
1) Password
-
a) "four"
b) "five"
c) "eightcha"
d) "fifteencharacte"
e) "sixteencharacter"
f) ""
Expected Outputs:
1) Password
-
a) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
b) Valid password
c) Valid password
d) Valid password
e) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
f) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
These tests will cover the functionality of the individual units within our system.
Thorough testing at this stage will help to ensure that no time is wasted on unit
debugging during the integration phase.
Integration Testing
next
previous
top
The following section contains integration tests for the Project Atlantis
registration system for the University of Atlantis. The purpose of integration
testing is to ensure that the components of the system interact reliably. We plan
to use a "sandwich" method of integration, where operational (bottom-level) modules
and logical (top-level) modules will be integrated simultaneously, allowing testers
plenty of time to test both types of modules.
1. Student Login
next
previous
top
GUI
The following test examines the interaction between the LOGIN and the STUDENT CONSOLE
logical components and the VERIFY PASSWORD operational component.
Case 1:
Description: The user supplies a valid Student ID number and a valid matching password.
Expected result: The user is granted entry into the system and the Student Menu screen is displayed to the user.
Input: Valid student ID number and a valid matching password.
Procedure:
- Input is verified by the VERIFY PASSWORD component as valid Student ID number and the password is verified as one that matches the Student ID number
- The operational module ADD COURSE verifies that the course matching the inputted course name does not exist in the database.
- The ADD COURSE operational component will search for the course name to ensure that the course does not exist in the system's database.
- The ADD COURSE operational component creates a record of the course in the course database with the specified lecture, lab, tutorial numbers an assigns a location for the course.
Case 2:
Description: The user supplies an invalid combination of a Student ID number and
password.
Expected result: The user in not granted access into the registration system and
an error message is displayed to the user.
Input: An invalid combination of Student ID and password.
Procedure:
- Input is verified by the VERIFY PASSWORD operational component.
- An error message is displayed to the user.
- The login screen element of the LOGIN operational component is refreshed.
2. Add Course to Timetable
next
previous
top
GUI
The following test examines the component interaction between the COURSE REGISTRATION
element of the STUDENT CONSOLE logical component and the ADD COURSE operational component.
It assumes that a student user is already logged into the system.
Case 1:
Description: The user wishes to register in a course that he is not already registered in,
then inputs valid selections for lecture, lab and tutorial sections.
Input: Valid Course Name, Valid lecture, lab and tutorial section, Student ID number.
Expected result: The course is added to the student's timetable and the student is
added to the student list of the course.
Procedure:
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes course name,
lecture, lab and tutorial numbers to the ADD COURSE operational module.
- The ADD COURSE operational module verifies that the student timetable matching the inputted
student ID number does not contain the inputted course and verifies that there is no conflict
with the inputted lecture, lab and tutorial sections.
- The ADD COURSE operational module adds student ID to the student list of the course and the
course is added to the student timetable.
Case 2:
Description: The user wishes to change her registration in a course that she is
not registered in, then inputs conflicting selections for lecture, lab and/or tutorial sections.
Input: Valid Course Name, Invalid lecture, lab, or tutorial section
Expected result: The course is not added to the student's timetable and the student
is not added to the student list of the course. An error message is displayed to the user.
Procedure:
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes course name,
lecture, lab and tutorial numbers to the ADD COURSE operational module.
- The ADD COURSE operational module verifies that the student timetable matching the inputted
student ID number does not contain the inputted course and verifies that there exists a
conflict with the inputted lecture, lab and tutorial sections.
- The ADD COURSE operational module does not add the student to the student list of the course
student list. ADD COURSE operational module signals the COURSE REGISTRATION element of the
logical module STUDENT CONSOLE that there is a conflict.
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE displays an error
message for the user.
Case 3:
Description: The user wishes to add a course that is already in the user's student
timetable.
Input: Valid Course Name, valid lecture, lab, or tutorial section.
Expected result: The course is not added to the student's timetable and
the student is not added to the student list of the course. An error message is
displayed to the user.
Procedure:
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes
course name, lecture, lab and tutorial numbers to the ADD COURSE operational module.
- The ADD COURSE operational module verifies that the student timetable matching the
inputted student ID number does already contain the inputted course.
- The ADD COURSE operational module does not add the student to the student list of the
course student list. ADD COURSE operational module signals the COURSE REGISTRATION
element of the logical module STUDENT CONSOLE that the course is already present
in the student timetable.
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE displays an
error message for the user.
Case 4:
Description: The user wants to add a course without having the appropriate
pre-requisite.
Input: Valid Course Name, valid lecture, lab, or tutorial section
Expected result: The course is not added to the student's timetable
and the student is not added to the student list of the course. An error message
is displayed to the user.
Procedure:
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes
course name, lecture, lab, tutorial numbers and the pre-requisite course name to
the ADD COURSE operational module.
- The ADD COURSE operational module verifies that the student course history does
not contain the specified pre-requisite course.
- The ADD COURSE operational module does not add the student to the course student
list. The ADD COURSE operational module signals the COURSE REGISTRATION element of
the logical module STUDENT CONSOLE that the student's course history does not contain
the pre-requisite course.
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE displays
an error message for the user.
3. Change Course Registration
next
previous
top
GUI
The following test examines the component interaction between the COURSE REGISTRATION
element of the STUDENT CONSOLE logical component and the CHANGE COURSE operational component.
It assumes that the user is already logged into the system as a Student user.
Case 1:
Description: A user logged in as a Student user wishes to change registration
in a course that he is already registered in to a different lecture, lab and tutorial
number.
Expected Result: The student timetable is modified according to the selected
course registration criteria.
Input: Student ID number, course name, new lecture, lab and tutorial sections.
Procedure:
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes the
course name and student ID number to the RETRIEVE REGISTRATION INFORMATION operational
module.
- The RETRIEVE REGISTRATION INFORMATION operational module passes the lecture, lab
and tutorial sections that the student is currently registered in to the COURSE REGISTRATION
element of the logical module STUDENT CONSOLE.
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes the user
inputted course name, lecture, lab and tutorial numbers to the CHANGE COURSE operational
module.
- The CHANGE COURSE operational module verifies that the student timetable matching
the inputted student ID number does not contain conflict with the inputted lecture,
lab and tutorial sections.
- The CHANGE COURSE operational module adds the student's ID to the student list of
the appropriate lecture of the course.
Case 2:
Description: A user logged in as a Student user wishes to change registration
in a course that he is not registered in to a different lecture, lab and tutorial number.
Expected Result: Student timetable is not modified according to the selected
course registration criteria.
Input: Student ID number, course name, new lecture, lab and tutorial sections.
Procedure:
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes course
name and student ID number to the RETRIEVE REGISTRATION INFORMATION operational module.
- The RETRIEVE REGISTRATION INFORMATION operational module signals the COURSE
REGISTRATION element of the logical module STUDENT CONSOLE that the course name
inputted is not present in the student timetable.
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE displays
an error message for the user.
Case 3:
Description: A user logged in as a Student user wishes to change registration
in a course that he is registered in to a different lecture, lab and tutorial number,
which conflicts with his current schedule.
Expected Result: The student's timetable is not modified according to the selected
course registration criteria.
Input: Student ID number, course name, new lecture, lab and tutorial sections.
Procedure:
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes the course
name and student ID number to the RETRIEVE REGISTRATION INFORMATION operational module.
- The RETRIEVE REGISTRATION INFORMATION operational module passes the lecture, lab and
tutorial sections that the student is currently registered in to the COURSE REGISTRATION
element of the logical module STUDENT CONSOLE.
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes the user
inputted course name, lecture, lab and tutorial numbers to the CHANGE COURSE operational
module.
- CHANGE COURSE operational module verifies that the student timetable matching the
inputted student ID number does contain conflicts with the inputted lecture, lab and
tutorial sections.
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE displays
an error message for the user.
4. Drop Course
next
previous
top
GUI
The following test examines the interaction between the STUDENT CONSOLE and the DROP
operational component.
Case 1:
Description: A Student user wishes to drop a course that he is registered in.
Expected result: The course is deleted from the user's timetable and the
timetable is updated.
Input: Student ID number, course name, lecture, lab and tutorial section.
Procedure:
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes the course
name and student ID number to the RETRIEVE REGISTRATION INFORMATION operational module.
- The RETRIEVE REGISTRATION INFORMATION operational module passes the lecture, lab
and tutorial sections that the student is currently registered in to the COURSE
REGISTRATION element of the logical module STUDENT CONSOLE.
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes the
user inputted course name, lecture, lab and tutorial numbers to the DROP COURSE
operational module.
- The DROP COURSE removes the student from the course student list and removes the
curse from the student's timetable.
Case 2:
Description: A Student user wishes to drop a course that he is not registered in
Expected result: The user's timetable is not modified.
Input: Student ID number, course name, lecture, lab and tutorial section.
Procedure:
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE passes
course name and student ID number to the RETRIEVE REGISTRATION INFORMATION operational
module.
- The RETRIEVE REGISTRATION INFORMATION operational module signals the COURSE
REGISTRATION element of the logical module STUDENT CONSOLE that the student is not
registered in a course that matches the inputted course name.
- The COURSE REGISTRATION element of the logical module STUDENT CONSOLE displays
an error message for the user.
5. View Student Timetable
next
previous
top
GUI
The following test examines the interaction between the VIEW TIMETABLE element
of the logical component STUDENT CONSOLE and operational module VIEW TIMETABLE.
It assumes that a student user is already logged in to the system.
Description: A user with a user status of Student wants to view the
timetable of courses she is currently registered in.
Case 1:
Description: The user clicks on View Timetable from the Student Start-up menu window.
Expected result: The student's timetable information will be displayed.
Input: User-Action View Timetable button clicked.
Procedure:
- The STUDENT CONSOLE component passes the student ID number to the VIEW TIMETABLE
operational component.
- The operational component VIEW TIMETABLE passes the student timetable data to
the VIEW TIMETABLE element of the logical component STUDENT CONSOLE.
6. Add Student
next
previous
top
GUI
The following test examines the interaction between the ADD STUDENT element of the logical
component ADMINISTRATION CONSOLE and the ADD STUDENT operational component.
It assumes that an administrator user is already logged in to the system.
Case 1:
Description: An administrator wishes to add a new student to the registration
system and enters a valid password that is between 5-15 characters long.
Expected Result: A new student will be added to the student list.
Input: Password.
Procedure:
- The ADD STUDENT element of the logical component ADMINISTRATION CONSOLE passes
the password and the automatically assigned ID number to the ADD STUDENT operational
component.
- The ADD STUDENT operational component creates a record in the student database
marked with the ID number, accessible by the inputted password.
7. Add Course
next
previous
top
GUI
The following test examines the interaction between the ADD COURSE element of the
logical component ADMINISTRATION CONSOLE and the operational module ADD COURSE.
It assumes that an administrator user is already logged in to the system.
Case 1:
Description: The user wishes to add a new course that does not exist in the system's database.
Expected result: The course is added to the course database.
Input: Course name, lecture, lab, tutorial numbers.
Procedure:
- The ADD COURSE element of the logical component ADMINISTRATION CONSOLE passes
course name, lecture, lab and tutorial numbers to the operational module ADD COURSE.
- The operational module ADD COURSE verifies that the course matching the
inputted course name does not exist in the database.
- The ADD COURSE operational component will search for the course name to ensure
that the course does not exist in the system's database.
- The ADD COURSE operational component creates a record of the course in the course
database with the specified lecture, lab, tutorial numbers and assigns a location
for the course.
Case 2:
Description: The user wishes to add a new course to the system's database,
but the course to be created already exists.
Expected result: The course is not added to the course database and an
error message is displayed.
Input: Course name, lecture, lab, tutorial numbers.
Procedure:
- ADD COURSE element of the logical component ADMINISTRATION CONSOLE passes course
name, lecture, lab, and tutorial numbers to the operational module ADD COURSE.
- The operational module ADD COURSE verifies that the course matching the inputted
course name does not exist in the database.
- The ADD COURSE operational component will search for the course name to ensure
that the course does already exist in the system's database.
- The ADD COURSE operational component signals the ADD COURSE element of the logical
component ADMINISTRATION CONSOLE that a course matching the inputted course name already
exists.
- ADD COURSE element of the logical component ADMINISTRATION CONSOLE displays an
error message for the user.
8. Remove Course
next
previous
top
GUI
The following test examines the interaction between the REMOVE COURSE element of the
ADMINISTRATOR CONSOLE logical component and the REMOVE COURSE operational component.
Case 1:
Description: An administrator user removes an existing course from the course
database.
Expected result: The course is removed from the course database.
Input: Course name.
Procedure:
- The REMOVE COURSE element of the ADMINISTRATOR CONSOLE logical component passes
the course name to the REMOVE COURSE operational component.
- The REMOVE COURSE operational component removes the course matching the inputted
course name from the database.
9. Overload Course
next
previous
top
GUI
The following test examines the interaction between the OVERLOAD COURSE element of
the ADMINISTRATOR CONSOLE logical component and the OVERLOAD COURSE operational
component. It assumes that an administrator user is already logged in to the system.
Case 1:
Description: The user wishes to overload a course that is already full.
Input: Student ID number, Course name, lecture, lab and tutorial section.
Expected result: The student is added to the course list.
Procedure:
- The OVERLOAD COURSE element of the ADMINISTRATOR CONSOLE logical component passes
the student ID number, course name and lecture, lab, tutorial numbers to the
OVERLOAD COURSE operational component.
- The OVERLOAD COURSE operational component verifies that the course matching the
inputted course name is full and adds the student to the course student list.
Case 2:
Description: The user wishes to add a student to a course student list of a
course that is not full.
Input: Student ID number, Course name, lecture, lab and tutorial section.
Expected result: The student is added to the course student list and the
user is informed that the course is not full.
Procedure:
- The OVERLOAD COURSE element of the ADMINISTRATOR CONSOLE logical component passes
the student ID number, course name and lecture, lab, and tutorial numbers to the OVERLOAD
COURSE operational component.
- The OVERLOAD COURSE operational component verifies that the course matching the
inputted course name is not full and adds the student to the course student list.
- The OVERLOAD COURSE operational component signals the OVERLOAD COURSE element
of the ADMINISTRATOR CONSOLE logical component that the course was not full.
- The OVERLOAD COURSE element of the ADMINISTRATOR CONSOLE logical component
informs the user that the course was not full.
10. Assign Grades
next
previous
top
GUI
The following test examines the interaction between the ASSIGN GRADE element
of the ADMINISTRATOR CONSOLE logical component and the ASSIGN GRADE operational
component. It assumes that an administrator user is already logged in to the system.
Case 1:
Description: The user assigns grades to all students registered
in the course.
Input: Course name, lecture section number, respective grades.
Expected result: Student records of course history are updated with the
inputted grades.
Procedure:
- The ASSIGN GRADE element of the ADMINISTRATOR CONSOLE logical component passes
the course name to the ASSIGN GRADE operational component.
- ASSIGN GRADE operational component passes the course name to the RETRIEVE COURSE
STUDENT LIST operational component.
- The RETRIEVE COURSE STUDENT LIST operational component passes the course student
list to the ASSIGN GRADE operational component.
- ASSIGN GRADE operational component passes the course student list to the ASSIGN
GRADE element of the ADMINISTRATOR CONSOLE logical component.
- The ASSIGN GRADE element of the ADMINISTRATOR CONSOLE logical component passes
the respective student grades to the ASSIGN GRADE operational component.
- ASSIGN GRADE operational component updates course history of students listed
in the course student list with the inputted grades.
Case 2:
Description: An administrator user selects a course with already assigned grades
and changes a single student's grade.
Input: Course Name, student grade.
Expected result: A single student course history is modified.
Procedure:
- The ASSIGN GRADE element of the ADMINISTRATOR CONSOLE logical component passes the
course name to the ASSIGN GRADE operational component.
- The ASSIGN GRADE operational component passes the course name to the RETRIEVE COURSE
STUDENT LIST operational component.
- The RETRIEVE COURSE STUDENT LIST operational component passes the course student
list to the ASSIGN GRADE operational component.
- The ASSIGN GRADE operational component passes the course student list to the ASSIGN
GRADE element of the ADMINISTRATOR CONSOLE logical component.
- The ASSIGN GRADE element of the ADMINISTRATOR CONSOLE logical component passes
the respective student grade to the ASSIGN GRADE operational component.
- The ASSIGN GRADE operational component updates course history of the student.
Product Testing
1. A New Student
next
previous
top
GUIs
-
Introduction
This scenario will depict a student accessing the system for the first time.
The scenario will cover basic tasks that all students must be able to do when using
Project Atlantis. It covers the following requirements specifically:
- Login
- Add courses
- View timetable
- Add conflicting course
- Drop course
- View course history
- Automatic logout
References
This test case covers the same basic functionality as
Test 1
and
Test 3
from The University of Atlantis' Acceptance Test Document.
System State and Background
The two users involved in this scenario are a student named Johnny Talbot
and his freshman friend Kevin Putin. Johnny has little computer experience.
Johnny is in a panic because he has to learn how to use the Project Atlantis
system in order to register for his courses. He should not have any problems
registering for his courses because they are not full. The system contains
information on all of the classes that Johnny requires, as well as information
on Johnny himself.
Scenario Description
Johnny is a second year undergraduate student, and he is accessing the new
Project Atlantis registration system for the first time. It is the beginning of
the school year and there are only two days left before the registration deadline.
At the login screen he types in his student ID (12345678) and his account password
(big_Star). After logging in Johnny decides that he wants to view information on
FISH101. After doing this, Johnny decides that he will add it to his timetable
along with his other choices, CRAB103, and TURT123. Subsequently Johnny views
his timetable with the added courses. Then he tries to add FLOW 301 which
conflicts with his schedule. Johnny drops CRAB103 because he has taken a
similar course before. Johnny checks his course history to make sure but
before he logs out, Johnny realizes that he is late for a meeting with Kevin.
He quickly runs off to the meeting and forgets to properly exit the system.
The Test
Login
- Johnny enters in 12345678 in the Login ID field.
- He enters "big_Fish" in the Password field, and clicks OK.
- The system will display an error message, because the password is incorrect.
- The system asks Johnny to re-enter his password.
- He enters "big_Star" in the Password field, and clicks OK.
- The password is correct, and Johnny is taken to the Student Menu screen.
Course Registration
- Johnny clicks on the Course Registration button, and then the system takes him to the Course Registration screen.
- Johnny selects FISH101 from the Select Course menu, and clicks Add.
- Johnny selects a section of the course by checking it in the Course Registration window (Lecture 01 and Lab 01).
- Johnny selects Add.
- The system asks for confirmation and Johnny confirms his choice by clicking OK.
- Johnny adds CRAB103 (L01 and B01) and TURT123 (L01 and B01) using the same steps as taken for FISH101.
Add conflicting course
- Johnny selects Add Course in the Student Menu window.
- He selects FLOW 301 from the course menu and clicks OK.
- Johnny checks Lecture 01 in the course registration window and selects Add.
- The system informs Johnny that there is a conflict with his current timetable.
- Johnny clicks OK and returns to the main Student Menu.
View timetable
- Johnny clicks the View Timetable button.
- The system then takes him to the View Timetable window.
Drop Course
- From the View Timetable screen Johnny clicks on the Course Registration button.
- The system takes Johnny to the Course Registration screen.
- Johnny enters CRAB103 in the Select Course field, and clicks Drop.
- The system asks for confirmation and Johnny confirms his choice by clicking OK.
- The course is dropped and Johnny's timetable is updated.
View history
- From the main screen Johnny clicks on the View Courses Taken button.
- The system takes him to the View Courses Taken window.
Automatic Logout
- After 6 minutes of inactivity, the system automatically logs Johnny out.
Conclusion
This acceptance test evaluates functionality on behalf of the University's students.
This functionality includes Login, Add course, View timetable, Drop course, View course History
and Automatic Logout.
2. The Professor
next
previous
top
GUIs
-
Introduction
This scenario will depict some of the activities that a professor of the University
of Atlantis would perform when using Project Atlantis. This scenario was created to test
the following tasks:
- Login
- Change Password
- Assign Grades
- Overload Course
- Remove Course
- Change Location and Time of a Course
- Add Course
- Logout
References
This test case covers the same basic functionality as
Test 2
and
Test 4
from The University of Atlantis' Acceptance Test Document.
System State and Background
The user involved in this scenario is Matt Damon, a professor of Drama at
Atlantis University. Matt has decided that his password is too obvious,
and he would like to change it. The trimester has just finished, so the
professor needs to assign grades to the students that took his class in the
last trimester. The new trimester will soon begin, but professor Damon
will be teaching FISH513 Lecture 01 instead of FISH201 Lecture 03.
Damon also had a student - Anton Kowalski - request that he be added to
the class list of WATR 305 which is already full. Damon knows Anton is a
good student and wants to grant his request. Damon will also remove FISH201
Lecture 03 from the system. Although he is fairly experienced with computers,
his time is limited due to a dentist appointment. For the purposes of error
checking, there are only 3 lecture sections available for FISH201 presently.
Scenario Description
Matt Damon needs to change his current password, since he feels it might
be too easy to guess. He logs into the system and chooses change password,
and follows the necessary procedure to change it. He then selects OK, which takes
Matt back to the main administration page. Professor Damon then chooses Assign
Grades from the administrator menu. He selects the course name (MPHL355) and
lecture number (03), and then enters a grade for each student. After returning
to the Main Administrator's Menu screen he selects the Overload Course button.
Damon types in Anton Kowalski's ID number and chooses the appropriate lecture,
lab and tutorial sections of WATR 305. After returning to the administrator menu,
he selects Remove a Course to remove his FISH201 section from the list of all
courses. Note that this will not delete the grade information previously specified
by Professor Damon. After finishing this, Matt adds the new course through the
Add Course screen (FISH513) and logs out. The telephone in his office rings and
Matt is informed by his superior that there will be a change in the new course's
time. Damon then selects Change Course Information and edits the appropriate
information (the time of the lecture). The new time is Thursday and Friday at
12 PM. Then Damon logs out of the system.
The Test
Login
- Professor Damon enters his ID, 00094555 in the ID field.
- The professor enters his current password "ima_star" in the password field.
- He selects OK and is logged in.
Change Password
- From the Administrator Menu professor Damon selects the Change Password button.
- He enters his current password, "ima_star", in the Old Password field.
- He then enters his new password "movie_man" in both the New Password and Confirm New Password fields.
- Professor Damon selects OK to complete the change.
Assign Grades
- Professor Damon chooses Assign Grades from the main screen.
- Damon is brought to the Assign Grades window.
- He selects MPHL 355 from the course database.
- Damon selects 09 lecture number from the menu.
- Professor Damon enters the grades for his students next to their ID numbers in the proper fields, and then clicks OK.
Overload a Course
- Professor Damon chooses Overload Course from the main screen.
- Damon enters Anton Kowalski's ID number.
- Damon selects WATR 305 from the course database and then selects appropriate lecture, lab and tutorial sections.
- Damon clicks Add and Anton Kowalski is added to the class list of WATR 305.
- Damon is then returned to the main menu.
Remove a Course
- Professor Damon chooses Remove Course from the main menu.
- He selects FISH 201 from the remove course menu and clicks OK.
- A message appears to confirm professor Damon's choice.
- Damon confirms by clicking OK.
- The course is removed and Matt is returned to the main menu.
Add a Course
- Professor Damon chooses Add Course from the main screen.
- He enters FISH513 in the Course Name field and clicks OK.
- Professor Damon enters 01 in the Select Section field and clicks Add.
- System asks for confirmation and Damon confirms his choice by clicking OK.
- Enters MERM 420 in the pre-requisite field and Clicks OK.
- System asks for confirmation and Damon confirms his choice by clicking OK.
- The system displays an error message because MERM420 is not a course.
- Professor Damon enters MERM 413 as the pre-requisite.
- System asks for confirmation and Damon confirms his choice by clicking OK.
- The system adds the course to the database.
Change Course Details
- From the main menu Damon selects Modify Course Information.
- Damon is then brought to the Modify Course screen.
- Damon enters the new time of the lecture and clicks Add.
- System asks for confirmation and Damon confirms his choice by clicking OK.
- The system adds the modified course to the database with a new automatically generated location.
- Damon is then returned to the main administrator screen.
Logout
- From the administrator's main page, professor Damon selects the Logout button.
Conclusion
The purpose of the above scenario is to test some key parts of the functionality
of Project Atlantis. The scenario chosen describes some of the activities that will
be carried out by the professors of the University of Atlantis. The system will
be considered successful if it carries the tasks out correctly and with the
appropriate error detection.
Conclusion
next
previous
top
Wintersoft management is confident that upon successful completion of unit, integration
and product tests the Project Atlantis Registration System for the University of Atlantis
will be delivered as an error-free, dependable system that adheres to all functional
requirements and internal Wintersoft product standards. This document acts as a
guideline for that testing as we enter the coding phase.
Appendix A: White Box Test Drivers
next
previous
top
WinterSoft may not have the resources to conduct White Box Testing within the time and
economic parameters set for Project Atlantis, but a battery of tests have been put in place.
This section includes some details on those tests.
1. View Timetable
next
previous
top
TestDriver_Student_ViewTimetable() {
// Overall Assumptions:
// Course Fish101, L01, B01, T01 exist in database
// Student 12345678, paswd1, part-time exists in database
// Student 12345678 is registered in Fish101, L01, B01, T01
// Test 1
// Run Test 1.1
// Local Assumptions: none
// expect a timetable containing Fish101, L01, B01, T01 for Student 12345678 viewTimetable
Returns Student timetable
// Run Test 1.2
// Local Assumptions:
// Drop Student 12345678 from Fish101
// expect an empty timetable to be displayed
viewTimetable
Returns empty timetable
} // end Student_ViewTimetable
2. Course Registration
next
previous
top
TestDriver_Student_CourseRegistration() {
// Overall Assumptions:
// Course Fish101, L01, B01, T01 exist in database
// Lecture, Lab and Tutorial instructor = Dr. FishMonger.
// Course Description = "The mating habits of tropical fish"
// Pre-Requisite = WATR101
// Co-Requisite = SLME101
// L01 time = MWF 8:00
// B01 time = TR 9:00
// T01 time = TR 12:00
// Student 12345678, paswd1, part-time exists in database
// Test – Add Course to Student Timetable
// Run test 1.1
// Local Assumptions:
// Student 12345678 is registered in Fish101, L01, B01, T01
// expect failure since student is already registered
courseRegistration for Student 12345678 in Course FISH101
error ( "You are already registered in this course" )
// Run test 1.2
// Local Assumptions:
// Student 12345678 has not completed Pre-Requisite WATR101 for FISH101
// Expect failure for Student 12345678 in Course FISH101
courseRegistration for Student 12345678 in Course FISH101
error ( "You require one (or more) pre-requisite(s) before taking
this course. Please consult the course information")
// Run test 1.3
// Local Assumptions:
// Student 12345678 is not registered in Co-Requisite SLME101
// Expect failure for Student 12345678 in Course FISH101
courseRegistration for Student 12345678 in Course FISH101
error ( "You require one (or more) co-requisite(s) before taking
this course, Please consult the course information")
// Run test 1.4
// Local Assumptions:
// No Lecture section was specified for Student 12345678 in Course FISH101
// Expect failure
courseRegistration for Student 12345678 in Course FISH101, Lab B01, Tut. T01
error ( "You must select a lecture section" )
// Run test 1.5
// Local Assumptions:
// More than one lecture section was specified
// Expect failure
courseRegistration for Student 12345678 in Course FISH101, Lec. L01, L02, Lab B01, Tut. T01
error ( "You may only select one lecture section" )
// Run test 1.6
// Local Assumptions:
// The course has a lab section (B01) but no lab section was specified
// Expect failure
courseRegistration for Student 12345678 in Course FISH101, Lec. L01, Tut. T01
error ( "You must select a lab section" )
// Run test 1.7
// Local Assumptions:
// More than one lab section was specified
// Expect failure
courseRegistration for Student 12345678 in Course FISH101, Lec. L01, Lab B01, B02, Tut. T01
error ( "You may only select one lab section" )
// Run test 1.8
// Local Assumptions:
// The course has a tutorial section (T01), but no tutorial section was specified
// Expect failure
courseRegistration for Student 12345678 in Course FISH101, Lec. L01, Lab B01
error ( "You must select a tutorial section" )
// Run test 1.9
// Local Assumptions:
// More than one tutorial section was specified
// Expect failure
courseRegistration for Student 12345678 in Course FISH101, Lec. L01, Lab B01, Tut. T01, T01
error ( "You may only select one tutorial section" )
// Run test 2.0
// Local Assumptions:
// Student has the Pre-Requisite (WATR101) and Co-Requisite (SLME101), and has
// chosen one each of L01, B01, and T01. The Student is not already registered in
// FISH101.
// Expect success
courseRegistration for Student 12345678 in Course FISH101, Lec. L01, Lab B01, Tut. T01
update database
3. Add New Student
next
previous
top
TestDriver_Administrator_AddNewStudent() {
// Overall Assumptions:
// none
Test 1 – Add Student to Registration System.
// Run test 1.1
// Local Assumptions:
// The new student ID number is automatically generated by the system.
// The student's status is automatically set to 'part-time'.
// The password being entered is less than 5 characters.
// Expect failure
addStudent with Password "1234"
error ( "Password must be at least 5 characters" )
// Run test 1.2
// Local Assumptions:
// The new student ID number is automatically generated by the system.
// The student's status is automatically set to 'part-time'.
// The password being entered is at least 5 characters.
// Expect success
addStudent with Password "1234567"
the database is updated and the student is added to the Registration System.
} // end test driver for Administrator Add New Student
4. Add New Course
next
previous
top
TestDriver_Administrator_addCourse (){
//Test 1 Test addLectureSection
// Overall Assumptions
// The administrator exists in database
// The course being added is FISH101 and it is a valid course name.
//FISH101 does not exist in the database
//Run Test 1.1
//Local Assumptions: Administrator enters section number into the Add Section form that //is not valid or does not start with 'L'.
//Expect an error message
addLectureSection for FISH101 lecture S01
error("This is not a valid lecture section number")
//Run Test 1.2
//Local Assumptions:
//Administrator has entered a valid course name and lecture section.
//Administrator enters the section days, time, location, and maximum class size.
//Expect an error message
addLectureSection for FISH101 lecture L01,for day 'B'
error ( "Days may be one of 'U','M','T','W','R','F','S'." )
//Run Test 1.3
//Local Assumptions:
//Administrator has entered a valid course name and lecture section and date.
//Administrator enters the section days, time, location, and maximum class size.
//Expect an error message
addLectureSection for FISH101 lecture L01,for day 'F', at room number '-45'
error ( "Invalid room number" )
//Run Test 1.4
//Local Assumptions:
//Course name being added is a valid course
//Room 100 is a valid room
addLectureSection for FISH101 lecture L01,for day 'F', at room number '100'
Database is updated and the course is added.
} // end test driver for Administrator Add Course
Appendix B: Unit Testing
next
previous
top
This section contains a complete set of Unit Testing cases.
Note: All cancel buttons have the same functionality of returning the user to the
previous screen. This will be handled by desk testing.
1. Login
next
previous
top
-
Inputs:
1) ID number
-
a) 00000000
b) 00100000
c) 00100001
d) 99999999
e) xxxxxxxx
f) No input
2) Password
-
a) "four"
b) "five"
c) "eightcha"
d) "fifteencharacte"
e) "sixteencharacter"
f) ""
Expected Outputs:
1) ID number
-
a) Valid administrator ID number
b) Valid administrator ID number
c) Valid student ID number + Data is ready to be passed to the function that will ensure a student with that number exists
d) Valid student ID number + Data is ready to be passed to the function that will ensure a student with that number exists
e) Invalid ID number + Login screen
f) Invalid ID number + Login screen
2) Password
-
a) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
b) Valid password + Data is ready to be passed to the function that will check the password for that student
c) Valid password + Data is ready to be passed to the function that will check the password for that student
d) Valid password + Data is ready to be passed to the function that will check the password for that student
e) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
f) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
2. Student and Administrator - Main Menu
next
previous
top
Note: There is no unit testing to ensure that the main menu will load the
other appropriate menus because this will be handled during desk testing.
3. Student - View Timetable
next
previous
top
-
Inputs:
- 1) Student ID number
Expected Outputs:
-
1) Student ID is displayed + Student ID number is passed to the function that will retrieve
a timetable + Date is displayed + Trimester
4. Student - Course Registration
next
previous
top
-
Part 1:
Inputs:
-
1) Student ID number + OK button
2) Student ID number + Course name + OK button
Expected Outputs:
-
1) Display nothing
2) Course name is ready to pass to the function that will return the course information
Part 2:
Inputs:
-
1) Course name + Selected lecture number + Selected lab number + Selected tutorial number
2) Course name + (Selected lecture number xor Selected lab number xor Selected tutorial number) + Add
3) Course name + Selected lecture number + Selected lab number + Selected tutorial number + Add
4) Course name + Selected lecture number + Selected lab number + Selected tutorial number + Change
5) Course name + Selected lecture number + Drop
Expected Outputs:
-
1) Fill in radio buttons
2) Error: Not all fields selected
3) Pass sections to the function that adds the course to the student and course information
4) Pass section(s) to the function that modifies the student and course information
5) Pass section to the function that handles removing a course from the student and course information
Part 3:
Inputs:
-
1) Course information + Student information
Expected Outputs:
-
1) Display the current information
5. Student - Course Information
next
previous
top
-
Part 1:
Inputs:
-
1) Student ID number + OK button
2) Student ID number + Course name + OK button
3) None
Expected Outputs:
-
1) Display nothing
2) Course name is ready to pass to the function that will return the course information
3) None
Part 2:
Inputs:
-
1) Course object
2) None
Expected Outputs:
-
1) Course information is loaded and displayed
2) Nothing
6. Student - View Courses Taken
next
previous
top
-
Part 1:
Inputs:
-
1) Student ID number
Expected Outputs:
-
1) Student ID number is ready to pass to the function that will return the course taken and the corresponding grades
Part 2:
Inputs:
-
1) Previously taken course object
Expected Outputs:
-
2) Display the information
7. Logout
next
previous
top
-
Part 1:
Inputs:
-
1) Logout button is pressed
Expected Outputs:
-
1) Confirmation window is loaded
Part 2:
Inputs:
-
1) OK button is pressed
2) Cancel button is pressed
Expected Outputs:
-
1) User is logged off the system
2) Returns to previous menu
8. Administrator - Assign Grades
next
previous
top
-
Part 1:
Inputs:
-
1) Selected course + OK
2) OK
Expected Outputs:
-
1) Course name is ready to be passed to the function that will retrieve the list of sections
2) Nothing
Part 2:
Inputs:
-
1) Course name + Selected section + OK
2) Course name + OK
Expected Outputs:
-
1) Course name and section are ready to be passed to the function that will retrieve the student list and grades
2) Nothing
Part 3:
Inputs:
-
1) Grade of 0
2) Grade of 99
3) Grade of 100
4) Grade of 101
Expected Outputs:
-
1) Data will be passed to the function that will store the information in the student and course information
2) Data will be passed to the function that will store the information in the student and course information
3) Data will be passed to the function that will store the information in the student and course information
4) Invalid grade + Error: Grade is not in the range 0 to 100
9. Administrator - Overload Courses
next
previous
top
-
Part 1:
Inputs:
-
1) ID number + Course name + OK
-
a) 00100000
b) 00100001
c) 99999999
d) xxxxxxxx
2) ID number + OK
3) OK
Expected Outputs:
-
1)
-
a) Invalid ID number + Error: Not A Student ID Number
b) Ensure course name and ID number are ready to be passed to the function that will load the sections of a course
c) Ensure course name and ID number are ready to be passed to the function that will load the sections of a course
d) Invalid ID number + Error: Not Proper Format
2) Nothing
3) Nothing
Part 2:
Inputs:
-
1) ID number + Course name + Course section(s) + OK
Expected Outputs:
-
1) Display all the information
Part 3:
Inputs:
-
1) ID number + Course name + Selected course sections(s) + OK
Expected Outputs:
-
1) Ensure the information is ready to be passed to the function that will
update, and check, the student and course information.
10. Administrator - Add Course
next
previous
top
-
Part 1:
Inputs:
-
1) Course name
-
a) "xxxx111"
b) "xxxxx11"
c) "111xxxx"
d) ""
Expected Outputs:
-
1) Course name
-
a) Step 2 menu is loaded
b) Error: Course name is not in the proper format
c) Error: Course name is not in the proper format
d) Error: Course name is not in the proper format
Part 2:
Inputs:
-
1) Valid course name + (Add lecture or Add lab section or Add tutorial section)
2) Valid course name + (Add pre-requisite or Add co-requisite)
Expected Outputs:
-
1) Step 3 - Add section menu is loaded
2) Step 3 - (Add prerequisite or Add co-requisite)
Part 3:
Inputs:
-
1) New section information + OK
2) OK
Expected Outputs:
-
1) Data is ready to be passed to the function that will store the information in the course database
2) Nothing
11. Administrator - Modify Course
next
previous
top
-
Part 1:
Inputs:
-
1) Selected course + OK
2) OK
Expected Outputs:
-
1) Course name is ready to be passed to the function that will retrieve the list of sections
2) Nothing
Part 2:
Inputs:
-
1) Course name + Modify button
Expected Outputs:
-
1) Course name + Modify course menu
Part 3:
Inputs:
-
1) Course name + Course section + Course information
Expected Outputs:
-
1) Course name + Course information is in the correct format and ready to be passed to the function
that will store this information in the database
12. Administrator - Remove Course Section
next
previous
top
-
Part 1:
Inputs:
-
1) Selected course + OK
2) OK
Expected Outputs:
-
1) Course name is ready to be passed to the function that will retrieve the list of sections
2) Nothing
Part 2:
Inputs:
-
1) Course name + Remove button
Expected Outputs:
-
1) Course name + Remove course menu
Part 3:
Inputs:
-
1) Course name + (Course section or Course pre-requisites or Course co-requisites)
Expected Outputs:
-
1) Course name + Course information in the proper format to be passed to the
function that will remove the data from the course
13. Administrator - Remove Course
next
previous
top
-
Inputs:
-
1) Select Course + OK
2) OK
Expected Outputs:
-
1) Course name is ready to be passed to the function that will remove the course from
the database
2) Nothing
14. Administrator - Set Trimester Deadlines
next
previous
top
-
Inputs:
-
1) Start date + End date + OK
2) OK
Expected Outputs:
-
1) Proper date format and is ready to be passed to the function that will set the dates
2) Nothing
15. Administrator - Add New Student
next
previous
top
-
Inputs:
1) Password
-
a) "four"
b) "five"
c) "eightcha"
d) "fifteencharacte"
e) "sixteencharacter"
f) ""
Expected Outputs:
1) Password
-
a) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
b) Valid password
c) Valid password
d) Valid password
e) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
f) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
16. Administrator - Modify Student
next
previous
top
-
Part 1:
Inputs:
-
1) ID number
-
a) 00100000
b) 00100001
c) 99999999
d) xxxxxxxx
e) No input
2) Valid ID number + OK
Expected Outputs:
-
1) ID number
-
a) Invalid ID number + Error: Not a valid student ID number
b) Valid student ID number
c) Valid student ID number
d) Invalid ID number + Error: Not a valid student ID number
e) Invalid ID number + Error: Not a valid student ID number
2) Data is in the proper format and ready to be passed to the function that will return the student information
Part 2:
Inputs:
-
1) Password
-
a) "four"
b) "five"
c) "eightcha"
d) "fifteencharacte"
e) "sixteencharacter"
f) ""
2) (Valid password or Status) + OK
3) View student timetable pressed
4) View courses taken pressed
Expected Outputs:
-
1) Password
-
a) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
b) Valid password
c) Valid password
d) Valid password
e) Invalid password + Error: Password must be between 5 and 15 characters + Nothing
f) Invalid password + Error: Password must be between 5 and 15 characters + Nothing
2) Data is in the proper format and is ready to be passed to the function that will update the student information
3) ID number is ready to be passed to the function that will load the student's timetable
4) ID number is ready to be passed to the function that will load the previous list of courses taken
17. Administrator - Override Pre/Co-Requisites
next
previous
top
-
Part 1:
Inputs:
-
1) ID number
-
a) 00100000
b) 00100001
c) 99999999
d) xxxxxxxx
e) No input
2) Valid ID number + OK
3) OK
Expected Outputs:
-
1) ID number
-
a) Invalid ID number + Error: Not a valid student ID number
b) Valid student ID number
c) Valid student ID number
d) Invalid ID number + Error: Not a valid student ID number
e) Invalid ID number + Error: Not a valid student ID number
2) Data is in the proper format and ready to be passed to the function
that will ensure that such an ID number exists
3) Nothing
Part 2:
Inputs:
-
1) Course + OK
2) OK
Expected Outputs:
-
1) Course name is ready to be passed to the function that handles the retrieval of the course information
2) Nothing
Part 3:
Inputs:
-
1) OK
2) Override pre-requisites
3) Override co-requisites
Expected Outputs:
-
1) Nothing
2) Data will be ready to be passed to the function that will handle the change in the student's information
3) Data will be ready to be passed to the function that will handle the change in the student's information
18. Administrator - Add Administrator
next
previous
top
-
Inputs:
-
1) Administrator name xor Password xor Status
2) Administrator name + Password + Status
Expected Outputs:
-
1) Error: All fields must be entered
2) Data is ready to be passed to the function that will store the new administrator
19. Administrator - Modify Administrator
next
previous
top
-
Part 1:
Inputs:
-
1) ID number
-
a) 00000000
b) 00100000
c) 00100001
Expected Outputs:
-
1) ID number
-
a) Valid administrator ID + Data is ready to be passed to the function that will load the current administrator information
b) Valid administrator ID + Data is ready to be passed to the function that will load the current administrator information
c) Invalid ID + Error: ID is not in the administrator range
Part 2:
Inputs:
-
1) Password
-
a) "four"
b) "five"
c) "eightcha"
d) "fifteencharacte"
e) "sixteencharacter"
f) ""
2) (Valid password or Status or Name) + OK
Expected Outputs:
-
1) Password
-
a) Invalid password + Error: Password must be between 5 and 15 characters + Login screen
b) Valid password
c) Valid password
d) Valid password
e) Invalid password + Error: Password must be between 5 and 15 characters + Nothing
f) Invalid password + Error: Password must be between 5 and 15 characters + Nothing
2) Data is in the proper format and is ready to be passed to the function that will update the administrator information
20. Student and Administrator - Change Password
next
previous
top
-
Inputs:
1) Password fields (All)
-
a) "four"
b) "five"
c) "eightcha"
d) "fifteencharacte"
e) "sixteencharacter"
f) ""
2) Valid old password + OK
3) Valid old password + Valid new password + OK
4) Valid old password + Valid new password != Valid Confirm new password + OK
5) Valid old password + Valid new password = Valid Confirm new password + OK
Expected Outputs:
1) Password
-
a) Invalid password + Error: Password must be between 5 and 15 characters + Nothing
b) Valid password
c) Valid password
d) Valid password
e) Invalid password + Error: Password must be between 5 and 15 characters + Nothing
f) Invalid password + Error: Password must be between 5 and 15 characters + Nothing
2) Error: All fields must be entered
3) Error: All fields must be entered
4) Error: New password and confirmation must match
5) Data is ready to be passed to the function that will update the user's information
These tests will cover all the functionality of the individual units within our system.
Thorough testing at this stage will help to ensure that no time is wasted on unit
debugging during the integration phase.
[MAIN]
[FUNCTIONAL DESIGN DOCUMENT]
[DOCUMENTS]
[CONTACTS]
|