Assignment Aim
The aim of the assignment is to assess your ability to produce test cases and test data that can be traced back to a given set of requirements.
Background to case
St Michael’s College in Auckland offers a job search facility for its students. An increasing number of employers are using the services offered by St Michael’s Job Search and a new database application is required to help the automation of the processes of tracking employers’ vacancies and students’ details. The main goal of the application is to provide a robust system so that employers are presented with accurate student information and students are guided towards appropriate vacancies.
Scenario
You have been hired as a test analyst for St. Michael’s. You have been allocated the task of producing a set of test cases (with associated test data) that is to be used to test the St Michael’s Job Search database application.
Instructions
You are to complete a testing report for the St. Michael’s case study. You will find, on Moodle, a test cases template that you can use. This assignment is an individual assignment. Although the application consists of 11 processes you only need to produce test plans (test cases, test data and justifications) for any 2 processes that make up a test package. Test packages are allocated to you by the test manager (lecturer).
You are required to produce a testing report that will contain:
- A title page
- A table of contents
- An introduction
- Test plans for two processes
- Loaded test data
- Test cases
- Justification of test cases (traces tests back to business rules, data dictionary and data volume requirements)
Case study detail
Application The main process requirements for the Job Search application are:
- Forms:
- Enter, modify or delete employers.
- Enter, modify or delete students.
- Enter, modify or delete skills.
- Enter, modify or delete vacancies.
- Add or remove skills to or from a student.
- Add or remove skills to or from a vacancy.
- Apply a student to a vacancy.
- Mark a vacancy as filled.
- The following reports are required:
- Employers and associated vacancies.
- Students and associated skills.
- Vacancies and associated skills.
Test package
- Enter, modify or delete vacancies.
- Students and associated skills report.
Entity Relationship Diagram. See image.
Relations. See image.
Data Dictionary
Notes
- Remember that one individual test case may involve several steps that can be dependent on each other.
- Remember to verify the expected results of the tests with other tests if possible. For example, if you have a test that adds a new record, then use the ‘view’ facility in the program to check that the record has been added.
- Comprehensive testing of valid and invalid data needs to be done for adding new records. However, for modifying existing records you only need to test each field twice: once with valid data and once with invalid data. You should also have test that modifies all allowable fields with valid data.
- If more than one field has invalid or missing data then an error message should be displayed for each field that has invalid or missing data.
- The loaded test data must reflect the cardinality of the database. For example: There is an optional ‘one-to-many’ relationship between Employer and Vacancy which means that you must have at least one employer with no vacancies, at least one employer with many vacancies and at least one employer with just one vacancy.
- Select your input test data to make your tests as independent as possible. For example: if you are testing that a program deletes an employer record then use, as test data, an employer that exists in the loaded test data NOT an employer that was input in an earlier test.
- Remember to check for missing or ambiguous business rules and seek clarification with the test manager (lecturer) if necessary.
Business Rules
The business rules may be incomplete – carry out the checks discussed in class and ask questions (via email) if you feel you require clarification.
Enter, modify or delete employers.
- If the user enters an employer with valid data and clicks on the ‘Add’ button then the message “Employer entered successfully” is displayed and an employer record is added to the employer table.
- If the user enters the EmployerID of an existing employer and clicks on the ‘View’ button then that employer’s details (EmployerID, EmployerName, StreetAddress, Suburb, PhoneNumber, and Status) are displayed.
- If the user modifies the allowable fields (EmployerName, StreetAddress, Suburb, PhoneNumber, and Status) of an employer whose status is current and clicks on the ‘Modify’ button then the message “Employer modified successfully” is displayed and the appropriate fields of the employer record are modified in the employer table.
- If the user enters the EmployerID of an existing employer (whose status is stopped and who has no associated vacancies) and clicks on the ‘Delete’ button then the message “Employer deleted successfully” is displayed and the employer record is deleted from the employer table.
- If an employer record is entered with valid data but with an EmployerID value that is being used by another employer then the error message “Cannot have a duplicate EmployerID” is displayed and another EmployerID is prompted for.
- If the user is entering or modifying an employer then the following must be considered for each field:
- If the maximum length of a field is exceeded then an error message is displayed. For example if an employer’s name of 21 characters is entered then the error message “The name of the employer is too long – 20 characters only” is displayed.
- If the minimum length of a field is not equalled or exceeded then an error message is displayed. For example if an employer’s name of 2 characters is entered then the error message “The name of the employer is too short – 5 characters at least” is displayed.
- If the domain constraint of a field is violated then an error message is displayed. For example if an employer status of ‘pending’ is entered then the error message “The status of the employer can only be ‘current’ or ‘stopped’” is displayed.
- If a required field is left blank then an error message is displayed. For example if an employer’s street address is left blank then the error message “Cannot leave the street address blank” is displayed.
- If the user attempts to modify an employer’s ID then the message “Cannot modify an employer’s ID” is displayed.
- If the user attempts to modify an employer whose status is ‘stopped’ then the message “Cannot modify a ‘stopped’ employer” is displayed.
- If the user attempts to delete an employer whose status is ‘current’ then the message “Cannot delete a ‘current’ employer” is displayed.
- If the user attempts to delete an employer whose status is ‘stopped’ but who still has associated vacancies then the message “Cannot delete an employer that has associated vacancies” is displayed.
Enter, modify or delete students.
- If the user enters a student with valid data and clicks on the ‘Add’ button then the message “Student entered successfully” is displayed and a student record is added to the student table.
- If the user enters the StudentID of an existing student and clicks on the ‘View’ button then that student’s details (StudentID, LastName, FirstName, StreetAddress, Suburb, PhoneNumber, and Status) are displayed.
- If the user modifies the allowable fields (LastName, FirstName, StreetAddress, Suburb, PhoneNumber, and Status) of a student whose status is current and clicks on the ‘Modify’ button then the message “Student modified successfully” is displayed and the appropriate fields of the student record are modified in the student table.
- If the user enters the StudentID of an existing student (status is ‘employed’ and who has no associated applications or skills) and clicks on the ‘Delete’ button then the message “Student deleted successfully” is displayed and the student record is deleted from the student table.
- If a student record is entered with valid data but with a StudentID value that is being used by another student then the error message “Cannot have a duplicate StudentID” is displayed and another StudentID is prompted for.
- If the user is entering or modifying a student then the following must be considered for each field:
- If the maximum length of a field is exceeded then an error message is displayed. For example if a student’s last name of 21 characters is entered then the error message “The last name of the student is too long – 20 characters only” is displayed.
- If the minimum length of a field is not equalled or exceeded then an error message is displayed. For example if a student’s first name of 1 character is entered then the error message “The first name of the student is too short – 2 characters at least” is displayed.
- If the domain constraint of a field is violated then an error message is displayed. For example if an student status of ‘pending’ is entered then the error message “The status of the student can only be ‘current’ or ‘employed’” is displayed.
- If a required field is left blank then an error message is displayed. For example if a student’s street address is left blank then the error message “Cannot leave the street address blank” is displayed.
- If the user attempts to modify a student’s ID then the message “Cannot modify a student’s ID” is displayed.
- If the user attempts to modify a student whose status is ‘employed’ then the message “Cannot modify an ‘employed’ student” is displayed.
- If the user attempts to delete a student whose status is ‘current’ then the message “Cannot delete a ‘current’ student” is displayed.
- If the user attempts to delete a student whose status is ‘employed’ and has no skills but who still has associated applications then the message “Cannot delete a student that has associated applications” is displayed.
- If the user attempts to delete a student whose status is ‘employed’ and has no applications but who still has associated skills then the message “Cannot delete a student that has associated skills” is displayed.
- If the user attempts to delete a student whose status is ‘employed’ but who still has associated applications and skills then the message “Cannot delete a student that has associated applications and skills” is displayed.
Enter, modify or delete skills.
- If the user enters a skill with valid data and clicks on the ‘Add’ button then the message “Skill entered successfully” is displayed and a skill record is added to the skill table.
- If the user enters the SkillID of an existing skill and clicks on the ‘View’ button then that skill’s details (SkillID, Description, and Level) are displayed.
- If the user modifies the allowable fields (Description and Level) of a skill whose status is current and clicks on the ‘Modify’ button then the message “Skill modified successfully” is displayed and the appropriate fields of the skill record are modified in the skill table.
- If the user enters the SkillID of an existing skill (that has no associated vacancies or students) and clicks on the ‘Delete’ button then the message “Skill deleted successfully” is displayed and the skill record is deleted from the skill table.
- If a skill record is entered with valid data but with a SkillID value that is being used by another skill then the error message “Cannot have a duplicate SkillID” is displayed and another SkillID is prompted for.
- If the user is entering or modifying a skill then the following must be considered for each field:
- If the maximum length of a field is exceeded then an error message is displayed. For example if a skill’s description of 21 characters is entered then the error message “The description of the skill is too long – 20 characters only” is displayed.
- If the minimum length of a field is not equaled or exceeded then an error message is displayed. For example if a skill’s description of 4 character is entered then the error message “The description of the skill is too short – 5 characters at least” is displayed.
- If the domain constraint of a field is violated then an error message is displayed. For example if a skill level of pending is entered then the error message “The level of the skill can only be ‘high’ or ‘medium’ or ‘low’” is displayed.
- If a required field is left blank then an error message is displayed. For example if a skill’s description is left blank then the error message “Cannot leave the description blank” is displayed.
- If the user attempts to modify a skill’s ID then the message “Cannot modify a skill’s ID” is displayed.
- If the user attempts to delete a skill that has no associated students but that still has associated vacancies then the message “Cannot delete a skill that has associated vacancies” is displayed.
- If the user attempts to delete a skill that has no associated vacancies but that still has associated students then the message “Cannot delete a skill that has associated students” is displayed.
Enter, modify or delete vacancies
- If the user enters a vacancy with valid data and clicks on the ‘Add’ button then the message “Vacancy entered successfully” is displayed and a vacancy record is added to the vacancy table.
- If the user enters the VacancyID of an existing vacancy and clicks on the ‘View’ button then that vacancy’s details (VacancyID, Description, Salary, Status, and EmployerID plus the EmployerName of the employer) are displayed.
- If the user has modified the allowable fields (Description, Salary and Status) of a vacancy that has a status of ‘pending’ and clicks on the ‘Modify’ button then the message “Vacancy modified successfully” is displayed and the appropriate fields of the vacancy record are modified in the vacancy table.
- If the user enters the VacancyID of a vacancy that, has a status of ‘unfilled’ and that has no associated applications or skills, and clicks on the ‘Delete’ button then the message “Vacancy deleted successfully” is displayed and the vacancy record is removed from the vacancy table.
- If a vacancy record is entered with valid data but with a VacancyID value that is being used by another vacancy then the error message “Cannot have a duplicate VacancyID” is displayed and another VacancyID is prompted for.
- If a vacancy record is entered with valid data but with an EmployerID value that is not present in the Employer table then the error message “The vacancy must be linked to an existing employer” is displayed.
- If the user is entering or modifying vacancies then the following must be considered for each field:
- If the maximum length of a field is exceeded then an error message is displayed. For example if a vacancy’s description of 21 characters is entered then the error message “The description of the vacancy is too long – 20 characters only” is displayed.
- If the minimum length of a field is not equalled or exceeded then an error message is displayed. For example if a vacancy’s description of 4 character is entered then the error message “The description of the vacancy is too short – 5 characters at least” is displayed.
- If the domain constraint of a field is violated then an error message is displayed. For example if a vacancy status of ‘paid’ is entered then the error message “The status of the vacancy can only be ‘filled’ or ‘unfilled’” is displayed.
- If a required field is left blank then an error message is displayed. For example if a vacancy’s description is left blank then the error message “Cannot leave the description blank” is displayed.
- If the user attempts to modify a vacancy’s ID then the message “Cannot modify a vacancy’s ID” is displayed.
- If the user attempts to modify a vacancy’s EmployerID then the message “Cannot modify a vacancy’s EmployerID” is displayed.
- If the user attempts to modify a vacancy that has a status of ‘filled’ then the message “Cannot modify a ‘filled’ vacancy” is displayed.
- If the user attempts to delete a vacancy that has a status of ‘filled’ then the message “Cannot delete a ‘filled’ vacancy” is displayed.
- If the user attempts to delete a vacancy that has a status of ‘unfilled’ and has no skills but that still has associated applications then the message “Cannot delete a vacancy that has associated applications” is displayed.
- If the user attempts to delete a vacancy that has a status of ‘unfilled’ and has no applications but still has associated skills then the message “Cannot delete a vacancy that has associated skills” is displayed.
- If the user attempts to delete a vacancy that has a status of ‘unfilled’ but that still has associated applications and skills then the message “Cannot delete a vacancy that has associated applications and skills” is displayed.
Add or remove skills to or from a student
- When started, the program lists all of the current students (StudentID, LastName, FirstName, and Status).
- The user then selects one student and the program displays all of the skills (SkillID and Description) that have already been added to the student.
- If the user wants to add a new skill to the student then
- the user clicks on the ‘View Skills’ button which causes the program to display a list (SkillID and description) of all skills.
- the user selects a skill and clicks on the ‘Add Skill’ button which causes the program to add the studentskill record to the studentskill table, display the message “Skill added to student successfully” and refresh the student’s list of skills.
- If the combination of skill and student has already been added to the studentskill table then the message “Skill already added to the student” is displayed.
- If the user wants to remove a skill from a student then
- the user selects the skill from the list of skills already added to the student;
- the user clicks on the ‘Remove’ button which causes the program to delete the studentskill record from the studentskill table, display the message “Skill removed successfully” and refresh the student’s list of skills.
Add or remove skills to or from a vacancy.
- When started, the program lists all of the unfilled vacancies (VacancyID, Description, Salary, and Status).
- The user then selects one vacancy and the program displays all of the skills (SkillID and Description) that have already been added to the vacancy.
- If the user wants to add a new skill to the vacancy then
- the user clicks on the ‘View Skills’ button which causes the program to display a list (SkillID and description) of all skills
- the user selects a skill and clicks on the ‘Add Skill’ button which causes the program to add the vacancyskill record to the vacancyskill table, display the message “Skill added to vacancy successfully” and refresh the vacancy’s list of skills.
- If the skill has already been added to the vacancy then the message “Skill already added to the vacancy” is displayed.
- If the user wants to remove a skill from a vacancy then
- the user selects the skill from the list of skills already added to the vacancy;
- the user clicks on the ‘Remove’ button which causes the program to delete the vacancyskill record from the vacancyskill table, display the message “Skill removed successfully” and refresh the vacancy’s list of skills.
Apply a student to a vacancy.
- When started, the program lists all of the unfilled vacancies (VacancyID, Description, Salary, and Status).
- The user then selects one vacancy and the program displays all of the students (Last Name, First Name and application status) who have already applied for the vacancy.
- If the user wants to add a new application to the vacancy then
- the user clicks on the ‘View Students’ button which causes the program to display a list (StudentID, Last Name and First Name) of all current students
- the user selects a student and clicks on the ‘Apply’ button which causes the program to check that the student has the skills that the vacancy requires.
- If the student does possess the required skills then the program adds the application record (with a status of pending) to the application table and displays the message “Application added successfully” and refreshes the vacancy’s list of applications.
- If the student does not possess the required skills then the program displays the message “Student cannot apply for this vacancy”.
- If the student has already applied for the vacancy then the message “Student has already applied for the vacancy” is displayed.
Mark a vacancy as ‘filled’.
- When started, the program lists all of the unfilled vacancies (VacancyID, Description, Salary, and Status).
- The user selects one of the vacancies. Then the form lists all of the students who have applied for the selected vacancy.
- The user selects one of the students as being successful.
- The successful student’s status is set to ‘employed’.
- The successful student’s application status is set to ‘successful’.
- The vacancy’s status is set to ‘filled’.
- The unsuccessful students’ applications statuses are set to ‘unsuccessful’.
Employers and associated vacancies.
- The report must show only those employers whose status is ‘current’ and who have associated ‘unfilled’ vacancies.
- The report must show only ‘unfilled’ vacancies.
- Employers must be sorted by employer name.
- Vacancies must be sorted by vacancy description within employer.
- The error message “There are no employers” is displayed if the employer table is empty.
- The error message “There are no vacancies” is displayed if the vacancy table is empty.
- The error message “There are no current employers” is displayed if there are no current employers in the employer table.
- The error message “There are no unfilled vacancies” is displayed if there are no unfilled vacancies in the vacancy table.
Sample of Report: See image.
Students and associated skills.
- The report must show only those students whose status is ‘current’.
- Students must be sorted by last name and first name.
- Skills must be sorted by description within student.
- The error message “There are no students” is displayed if the student table is empty.
- The error message “There are no skills” is displayed if the skill table is empty.
- The error message “There are no current students” is displayed if there are no current students in the student table.
- The error message “There are no associated skills” is displayed if studentskill table is empty.
Sample of Report: See image.
Vacancies and associated skills.
- The report must show only those vacancies that have a status of ‘unfilled’.
- Vacancies must be sorted by description.
- Skills must be sorted by description within vacancy.
- The error message “There are no vacancies” is displayed if the vacancy table is empty.
- The error message “There are no skills” is displayed if the skill table is empty.
- The error message “There are no unfilled vacancies” is displayed if there are no unfilled vacancies in the vacancy table.
- The error message “There are no associated skills” is displayed if vacancyskill table is empty.
Sample of Report: See image.