478 lines
16 KiB
Python
478 lines
16 KiB
Python
import sys
|
|
|
|
table_template = '''
|
|
| ID | Test Case Name | Procedure | Expected Output | Screen Dump | Result |
|
|
|----|----------------|-----------|-----------------|-------------|--------|
|
|
{{{rows}}}
|
|
'''.strip()
|
|
|
|
row_template='''
|
|
| 1 | 2 | 3 | 4 | 5 | 6 |
|
|
'''.strip()
|
|
|
|
cases = [
|
|
{
|
|
'test_case_name':"Display all employees in the system",
|
|
'procedure':'''
|
|
1. Start program.
|
|
2. input 1 for display all employee
|
|
'''.strip(),
|
|
'expected_output':" All employees' information including their employee ID, name, salary and department should be displayed",
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
|
|
{
|
|
'test_case_name':'''Add an employee with name "Pika Chiu, salary 15000 and wortks in IT department into the system''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '2' to add an employee
|
|
2. Input 'Pika Chiu' for employee's name Input "15000" for salary
|
|
3. Input "IT" for IT department
|
|
'''.strip(),
|
|
'expected_output':'''A success message "Employee Added Successfully" should be displayed''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
|
|
{
|
|
'test_case_name':'''Remove an employee with valid employee id''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '3' to Remove an employee
|
|
2. Input 'IVE00006' for employee's id
|
|
'''.strip(),
|
|
'expected_output':'''A success message "Employee Removed Successfully" should be displayed''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''Update an employee with valid employee id''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '4' to Update an employee
|
|
2. Input 'IVE00005' for employee's id
|
|
3. Input '99999' for employee's salary
|
|
'''.strip(),
|
|
'expected_output':'''A success message "Employee Updated Successfully" should be displayed''',
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''Display company statistics''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '5' to Update an employee
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. a list of all employee information listed
|
|
2. total number of staff listed
|
|
3. staff with highest salary listed
|
|
4. staff with lowest salary listed
|
|
5. average salary listed
|
|
''',
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''exiting system''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input "ENTER"(enter key) to exit system
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. system exit
|
|
''',
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''main menu invalid input handling''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input "~" to main menu
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. screen showing "input digit contains non-int value, accepted values are 1,2,3,4,5" alert to user
|
|
''',
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''main menu invalid input handling''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input "a" to main menu
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. screen showing "input digit contains non-int value, accepted values are 1,2,3,4,5" alert to user
|
|
''',
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
|
|
{
|
|
'test_case_name':'''Add an employee (invalid employee name)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '2' to add an employee
|
|
2. Input 'a1' for employee's name (this is invalid name)
|
|
3. Input '123' for employee's name (this is invalid name)
|
|
4. Input '4a' for employee's name (this is valid name)
|
|
5. Input 'apple' for employee's name (this is valid name)
|
|
6. Input "99999" for salary
|
|
7. Input "IT" for IT department
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "ERROR: sorry but the employee name should not contain digit" alert to user
|
|
2. keep asking "Please input employee's name, Enter to return:" until valid name get
|
|
3. after getting apple as name, get back to normal employee adding flow
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''Add an employee (invalid employee salary)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '2' to add an employee
|
|
2. Input 'apple' for employee's name (this is valid name)
|
|
3. Input "aaaaa" for salary (invalid input as contains text)
|
|
4. Input "11111" for salary (valid input)
|
|
5. Input "IT" for IT department
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "ERROR: Employee's salary contains non digit value" alert to user
|
|
2. keep asking "Please input employee's salary, Enter to return:" until valid salary get
|
|
3. after getting valid salary, get back to normal employee adding flow
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
|
|
{
|
|
'test_case_name':'''Add an employee (invalid employee department)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '2' to add an employee
|
|
2. Input 'apple' for employee's name (this is valid name)
|
|
3. Input "11111" for salary (valid input)
|
|
4. Input "Marketing" (invalid input)
|
|
5. Input "IT" (valid input)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "ERROR: Not a valid department, the valid options are HR, IT, Admin, Finance" alert to user
|
|
2. keep asking "Please input employee's department, Enter to return:" until valid department get
|
|
3. after getting valid department, show "***** Employee Added Successfully"
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
|
|
{
|
|
'test_case_name':'''Remove an employee (invalid employee id, not existing)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '3' to remove an employee
|
|
2. Input 'IVE00007' for employee's id (this is invalid id, not exist)
|
|
2. Input "IVE00006" for employee's id (valid input, existing id)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "ERROR: sorry but the input id not found" alert to user
|
|
2. keep asking "Please input employee's id, Enter to return:" until valid id get
|
|
3. after getting valid id, show "***** Employee Removed Successfully"
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''Remove an employee (invalid employee id, invalid format)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '3' to remove an employee
|
|
2. Input 'III00007' for employee's id (this is invalid id, not exist)
|
|
2. Input "IVE00006" for employee's id (valid input, existing id)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "ERROR: sorry but the input id not found" alert to user
|
|
2. keep asking "Please input employee's id, Enter to return:" until valid id get
|
|
3. after getting valid id, show "***** Employee Removed Successfully"
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
|
|
{
|
|
'test_case_name':'''Remove an employee (invalid employee id, invalid format)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '3' to remove an employee
|
|
2. Input 'a' for employee's id (this is invalid id)
|
|
2. Input "IVE00006" for employee's id (valid input, existing id)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "ERROR: sorry but the input id not found" alert to user
|
|
2. keep asking "Please input employee's id, Enter to return:" until valid id get
|
|
3. after getting valid id, show "***** Employee Removed Successfully"
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''Remove an employee (invalid employee id, invalid format)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '3' to remove an employee
|
|
2. Input '11111111' for employee's id (this is invalid id)
|
|
3. Input "IVE00006" for employee's id (valid input, existing id)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "ERROR: sorry but the input id not found" alert to user
|
|
2. keep asking "Please input employee's id, Enter to return:" until valid id get
|
|
3. after getting valid id, show "***** Employee Removed Successfully"
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''Update an employee (invalid employee id, invalid format)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '4' to update an employee
|
|
2. Input '1' for employee's id (this is invalid id)
|
|
3. Input "IVE00006" for employee's id (valid input, existing id)
|
|
4. Input "11111" for employee's id (valid input)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "ERROR: sorry but the input id not found" alert to user
|
|
2. keep asking "Please input employee's id, Enter to return:" until valid id get
|
|
3. after getting valid id, get back to normal update employee flow
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''Update an employee (invalid salary)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '4' to update an employee
|
|
2. Input "IVE00006" for employee's id (valid employee id, existing id)
|
|
3. Input "a" for salary (invalid input, salary cannot be non integer value)
|
|
4. Input "$" for salary (invalid input, salary cannot be non integer value)
|
|
5. Input "111" for salary (value input, integer value only)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "ERROR: Employee's salary contains non digit value" alert to user
|
|
2. keep asking "Please input employee's salary, Enter to return:" until valid salary get
|
|
3. after getting valid salary, show "***** Employee Updated Successfully" to user
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''display highest salary''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '5' get current snap of employee table
|
|
2. In the employee management system menu, input '2' to add an employee
|
|
3. Input "highest_employee" for name (valid employee name)
|
|
4. Input "9999999" for salary (valid highest salary)
|
|
5. Input "IT" for department (valid department)
|
|
6. Input "5" to check the highest salary got updated
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "highest_employee" in staff name field with highest salary
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''display lowest salary''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '5' get current snap of employee table
|
|
2. In the employee management system menu, input '2' to add an employee
|
|
3. Input "lowest_employee" for name (valid employee name)
|
|
4. Input "10" for salary (valid lowest salary)
|
|
5. Input "IT" for department (valid department)
|
|
6. Input "5" to check the lowest salary got updated
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "lowest_employee" in staff name field with lowest salary
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''update statistics after adding user''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '5' get current snap of employee table
|
|
2. In the employee management system menu, input '2' to add an employee
|
|
3. Input "new_user" for name (valid employee name)
|
|
4. Input "10" for salary (valid high salary)
|
|
5. Input "IT" for department (valid department)
|
|
6. Input "5" to check the lowest salary got updated
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. number of staff = "6" + "1" = "7"
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''update statistics after remove user''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '5' get current snap of employee table
|
|
2. In the employee management system menu, input '3' to remove an employee
|
|
3. Input "IVE00006" for id (valid employee id)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. number of staff = "6" - "1" = "5"
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''update average after adding user''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '5' get current snap of employee table
|
|
2. In the employee management system menu, input '2' to add an employee
|
|
3. Input "new_user" for name (valid employee name)
|
|
4. Input "10" for salary (valid high salary)
|
|
5. Input "IT" for department (valid department)
|
|
6. Input "5" to check the average salary got updated
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. average salary changed from $19814.78 to $16,985.53 (average of "7" employee)
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''update average after remove user''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '5' get current snap of employee table
|
|
2. In the employee management system menu, input '3' to add an employee
|
|
3. Input "IVE00001" for id (valid employee id)
|
|
4. Input "5" to check the average salary got updated
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. average salary changed from $19814.78 to $15135.64 (average of "5" employee)
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''add employee (cancelling)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '2' to add an employee
|
|
2. Input "ENTER"(one key) for name (cancelling the add flow)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "***** Employee Add cancelled"
|
|
2. back to the main menu
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''add employee (cancelling)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '2' to add an employee
|
|
2. Input "apple" for name (valid name)
|
|
3. Input "ENTER"(one key) for name (cancelling the add flow)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "Please input employee's name, Enter to return:"
|
|
2. after receiving valid name, showing "Please input employee's salary, Enter to return:"
|
|
3. after pressing "ENTER"(one key), showing "***** Employee Add cancelled"
|
|
4. back to the main menu
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''add employee (cancelling)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '2' to add an employee
|
|
2. Input "apple" for name (valid name)
|
|
3. Input "100" for salary (valid salary)
|
|
4. Input "ENTER"(one key) for department (cancelling the add flow)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "Please input employee's name, Enter to return:"
|
|
2. after receiving valid name, showing "Please input employee's salary, Enter to return:"
|
|
3. after receiving valid salary, showing "Please input employee's department, Enter to return:"
|
|
4. after pressing "ENTER"(one key), showing "***** Employee Add cancelled"
|
|
5. back to the main menu
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''remove employee (cancelling)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '3' to remove an employee
|
|
2. Input "ENTER"(one key) for id (cancelling the remove flow)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "***** Employee remove cancelled"
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
{
|
|
'test_case_name':'''update employee (cancelling)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '4' to update an employee
|
|
2. Input "ENTER"(one key) for id (cancelling the update flow)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "***** Employee update cancelled"
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
|
|
{
|
|
'test_case_name':'''update employee (cancelling)''',
|
|
'procedure':'''
|
|
1. In the employee management system menu, input '4' to update an employee
|
|
2. Input "IVE00006" for name (valid name)
|
|
3. Input "ENTER"(one key) for salary (cancelling the update flow)
|
|
'''.strip(),
|
|
'expected_output':'''
|
|
1. showing "Please input employee's id, Enter to return:"
|
|
1. showing "Please input employee's salary, Enter to return:"
|
|
1. after pressing "ENTER"(one key),
|
|
1. showing "***** Employee update cancelled"
|
|
''',
|
|
'screen_dump':"",
|
|
'result':"Pass/ ~~Fail~~"
|
|
},
|
|
|
|
]
|
|
|
|
i = 0
|
|
with open('test_case_table.md','a+') as o:
|
|
o.truncate(0)
|
|
o.write(table_template.replace('{{{rows}}}',
|
|
'\n'.join(map(lambda x: row_template
|
|
.replace(' 1 ',str(cases.index(x)+1))
|
|
.replace(' 2 ',x['test_case_name'])
|
|
.replace(' 3 ',x['procedure'].replace('\n','<br />'))
|
|
.replace(' 4 ',x['expected_output'].replace('\n','<br />'))
|
|
.replace(' 5 ',f'''
|
|
+1)}.png)
|
|
'''.replace('\n','<br />'))
|
|
.replace(' 6 ',x['result'])
|
|
,cases))))
|
|
|
|
# D:\\\\_workspace\\daniel_jo_assignment_student\\screenshots\\test{str(cases.index(x)+1)}.png
|
|
|