Verification Test Results for find-the-best



Automated Test Summary

Test Run Details

Summary

Requirements Summary
Count Percentage
#Requirements 1 100.0%
Manual Requirements 0 0.0%
Manual & Auto Requirements 0 0.0%
Automated Requirements 1 100.0%
Invalid 0 0.0%
PASS 0 0.0%
FAIL 0 0.0%
Not tested 1 100.0%

Protocol Summary
Count Percentage
#Protocols 10 100.0%
PASS 10 100.0%
FAIL 0 0.0%


Test Run Details

Test Protocols with results

TP-001: load empty data and initialize it Start date : 2026-07-12 16:18:08 MDT
At: test_tp001_model.py(57) Requirements : see below
Software Version: N/A Serial number: N/A
Objectives:
  • verify Model can load a new project and populate it
Preconditions: N/A Deviations: N/A
Step Req. Execution Instructions Expected Actual Pass / Fail Date
1 N/A load empty project True True PASS 2026-07-12 16:18:08
tester: auto
test_tp001_model.py(108)
2 N/A add criteria greater than 0 2 PASS 2026-07-12 16:18:08
tester: auto
test_tp001_model.py(137)
3 N/A modify criteria context greater than 0 4 PASS 2026-07-12 16:18:08
tester: auto
test_tp001_model.py(153)
4 N/A rank criteria greater than 0 8 PASS 2026-07-12 16:18:08
tester: auto
test_tp001_model.py(193)
5 N/A load tasks greater than 0 10 PASS 2026-07-12 16:18:08
tester: auto
test_tp001_model.py(237)
6 N/A check compids greater than 0 13 PASS 2026-07-12 16:18:08
tester: auto
test_tp001_model.py(258)
7 N/A compare each criteria for each combo of tasks greater than 0 14 PASS 2026-07-12 16:18:08
tester: auto
test_tp001_model.py(292)
8 N/A report ranking of each tasks per criteria 100 +/-1 101 PASS 2026-07-12 16:18:08
tester: auto
test_tp001_model.py(359)
9 N/A report overall rank of each task 100 100 PASS 2026-07-12 16:18:09
tester: auto
test_tp001_model.py(385)
10 N/A delete tasks and criteria True True PASS 2026-07-12 16:18:09
tester: auto
test_tp001_model.py(97)

Req. Desc.
N/A No requirements found


TP-002: add/delete/edit tasks or criteria Start date : 2026-07-12 16:18:09 MDT
At: test_tp002_add_delete.py(56) Requirements : see below
Software Version: N/A Serial number: N/A
Objectives:
  • verify Model can add new, delete or modify tasks or criteria and tasks
Preconditions: N/A Deviations: N/A
Step Req. Execution Instructions Expected Actual Pass / Fail Date
1 N/A load existing empty4.json 0.2 0.2 PASS 2026-07-12 16:18:09
tester: auto
test_tp002_add_delete.py(112)
2 N/A add, delete, modify criteria greater than 0 25 PASS 2026-07-12 16:18:09
tester: auto
test_tp002_add_delete.py(168)
3 N/A modify criteria ranks 1.0 +/-0.015 0.99 PASS 2026-07-12 16:18:09
tester: auto
test_tp002_add_delete.py(187)
4 N/A add, delete, modify tasks greater than 0 30 PASS 2026-07-12 16:18:09
tester: auto
test_tp002_add_delete.py(284)
5 N/A misc. functions False False PASS 2026-07-12 16:18:10
tester: auto
test_tp002_add_delete.py(84)

Req. Desc.
N/A No requirements found


TP-003: load, save and check_and_fix functions Start date : 2026-07-12 16:18:10 MDT
At: test_tp003_model_load_save.py(57) Requirements : see below
Software Version: N/A Serial number: N/A
Objectives: N/A
Preconditions: N/A Deviations: N/A
Step Req. Execution Instructions Expected Actual Pass / Fail Date
1 N/A load various json files greater than 0 35 PASS 2026-07-12 16:18:10
tester: auto
test_tp003_model_load_save.py(121)
2 N/A call check and fix {'t1-t2': None} {'t1-t2': None} PASS 2026-07-12 16:18:10
tester: auto
test_tp003_model_load_save.py(268)

Req. Desc.
N/A No requirements found


TP-020: load empty data and initialize it Start date : 2026-07-12 16:18:10 MDT
At: test_tp020_gui_basic.py(41) Requirements : see below
Software Version: N/A Serial number: N/A
Objectives: N/A
Preconditions: N/A Deviations: N/A
Step Req. Execution Instructions Expected Actual Pass / Fail Date
1 N/A start Gui False False PASS 2026-07-12 16:18:10
tester: auto
test_tp020_gui_basic.py(84)
2 N/A connect harness to GUI App server True True PASS 2026-07-12 16:18:11
tester: auto
test_tp020_gui_basic.py(88)
3 N/A load empty project normal normal PASS 2026-07-12 16:18:12
tester: auto
test_tp020_gui_basic.py(103)
4 N/A save initial file content {'next_task_id': 1, 'next_crit_id': 1, 'crits': {}, 'tasks': {}, 'comps': {}} {'next_task_id': 1, 'next_crit_id': 1, 'crits': {}, 'tasks': {}, 'comps': {}} PASS 2026-07-12 16:18:12
tester: auto
test_tp020_gui_basic.py(374)
5 N/A add criteria {'next_task_id': 1, 'next_crit_id': 4, 'crits': {'c1': {'name': 'crit1', 'rawrank': 1, 'rank': 0.33, 'context': 'context1'}, 'c2': {'name': 'crit2', 'rawrank': 1, 'rank': 0.33, 'context': 'context2'}, 'c3': {'name': 'crit3', 'rawrank': 1, 'rank': 0.33, 'context': 'context3'}}, 'tasks': {}, 'comps': {'c1': {}, 'c2': {}, 'c3': {}}} {'next_task_id': 1, 'next_crit_id': 4, 'crits': {'c1': {'name': 'crit1', 'rawrank': 1, 'rank': 0.33, 'context': 'context1'}, 'c2': {'name': 'crit2', 'rawrank': 1, 'rank': 0.33, 'context': 'context2'}, 'c3': {'name': 'crit3', 'rawrank': 1, 'rank': 0.33, 'context': 'context3'}}, 'tasks': {}, 'comps': {'c1': {}, 'c2': {}, 'c3': {}}} PASS 2026-07-12 16:18:14
tester: auto
test_tp020_gui_basic.py(374)
6 N/A load tasks {'next_task_id': 4, 'next_crit_id': 4, 'crits': {'c1': {'name': 'crit1', 'rawrank': 1, 'rank': 0.33, 'context': 'context1'}, 'c2': {'name': 'crit2', 'rawrank': 1, 'rank': 0.33, 'context': 'context2'}, 'c3': {'name': 'crit3', 'rawrank': 1, 'rank': 0.33, 'context': 'context3'}}, 'tasks': {'t1': {'name': 'task1'}, 't2': {'name': 'task2'}, 't3': {'name': 'task3'}}, 'comps': {'c1': {'t1-t2': None, 't1-t3': None, 't2-t3': None}, 'c2': {'t1-t2': None, 't1-t3': None, 't2-t3': None}, 'c3': {'t1-t2': None, 't1-t3': None, 't2-t3': None}}} {'next_task_id': 4, 'next_crit_id': 4, 'crits': {'c1': {'name': 'crit1', 'rawrank': 1, 'rank': 0.33, 'context': 'context1'}, 'c2': {'name': 'crit2', 'rawrank': 1, 'rank': 0.33, 'context': 'context2'}, 'c3': {'name': 'crit3', 'rawrank': 1, 'rank': 0.33, 'context': 'context3'}}, 'tasks': {'t1': {'name': 'task1'}, 't2': {'name': 'task2'}, 't3': {'name': 'task3'}}, 'comps': {'c1': {'t1-t2': None, 't1-t3': None, 't2-t3': None}, 'c2': {'t1-t2': None, 't1-t3': None, 't2-t3': None}, 'c3': {'t1-t2': None, 't1-t3': None, 't2-t3': None}}} PASS 2026-07-12 16:18:16
tester: auto
test_tp020_gui_basic.py(374)
7 N/A rank criteria {'next_task_id': 4, 'next_crit_id': 4, 'crits': {'c1': {'name': 'crit1', 'rawrank': 5, 'rank': 0.5, 'context': 'context1'}, 'c2': {'name': 'crit2', 'rawrank': 3, 'rank': 0.3, 'context': 'context2'}, 'c3': {'name': 'crit3', 'rawrank': 2, 'rank': 0.2, 'context': 'context3'}}, 'tasks': {'t1': {'name': 'task1'}, 't2': {'name': 'task2'}, 't3': {'name': 'task3'}}, 'comps': {'c1': {'t1-t2': None, 't1-t3': None, 't2-t3': None}, 'c2': {'t1-t2': None, 't1-t3': None, 't2-t3': None}, 'c3': {'t1-t2': None, 't1-t3': None, 't2-t3': None}}} {'next_task_id': 4, 'next_crit_id': 4, 'crits': {'c1': {'name': 'crit1', 'rawrank': 5, 'rank': 0.5, 'context': 'context1'}, 'c2': {'name': 'crit2', 'rawrank': 3, 'rank': 0.3, 'context': 'context2'}, 'c3': {'name': 'crit3', 'rawrank': 2, 'rank': 0.2, 'context': 'context3'}}, 'tasks': {'t1': {'name': 'task1'}, 't2': {'name': 'task2'}, 't3': {'name': 'task3'}}, 'comps': {'c1': {'t1-t2': None, 't1-t3': None, 't2-t3': None}, 'c2': {'t1-t2': None, 't1-t3': None, 't2-t3': None}, 'c3': {'t1-t2': None, 't1-t3': None, 't2-t3': None}}} PASS 2026-07-12 16:18:17
tester: auto
test_tp020_gui_basic.py(374)
8 N/A compare each criteria for each combo of tasks {'next_task_id': 4, 'next_crit_id': 4, 'crits': {'c1': {'name': 'crit1', 'rawrank': 5, 'rank': 0.5, 'context': 'context1'}, 'c2': {'name': 'crit2', 'rawrank': 3, 'rank': 0.3, 'context': 'context2'}, 'c3': {'name': 'crit3', 'rawrank': 2, 'rank': 0.2, 'context': 'context3'}}, 'tasks': {'t1': {'name': 'task1'}, 't2': {'name': 'task2'}, 't3': {'name': 'task3'}}, 'comps': {'c1': {'t1-t2': 1, 't1-t3': 1, 't2-t3': 0}, 'c2': {'t1-t2': 1, 't1-t3': 1, 't2-t3': 0}, 'c3': {'t1-t2': 0, 't1-t3': 1, 't2-t3': 1}}} {'next_task_id': 4, 'next_crit_id': 4, 'crits': {'c1': {'name': 'crit1', 'rawrank': 5, 'rank': 0.5, 'context': 'context1'}, 'c2': {'name': 'crit2', 'rawrank': 3, 'rank': 0.3, 'context': 'context2'}, 'c3': {'name': 'crit3', 'rawrank': 2, 'rank': 0.2, 'context': 'context3'}}, 'tasks': {'t1': {'name': 'task1'}, 't2': {'name': 'task2'}, 't3': {'name': 'task3'}}, 'comps': {'c1': {'t1-t2': 1, 't1-t3': 1, 't2-t3': 0}, 'c2': {'t1-t2': 1, 't1-t3': 1, 't2-t3': 0}, 'c3': {'t1-t2': 0, 't1-t3': 1, 't2-t3': 1}}} PASS 2026-07-12 16:18:18
tester: auto
test_tp020_gui_basic.py(374)
9 N/A delete a criteria after tasks have been added {'next_task_id': 4, 'next_crit_id': 5, 'crits': {'c1': {'name': 'crit1', 'rawrank': 5, 'rank': 0.62, 'context': 'context1'}, 'c3': {'name': 'crit3', 'rawrank': 2, 'rank': 0.25, 'context': 'context3'}, 'c4': {'name': 'crit4', 'rawrank': 1, 'rank': 0.12, 'context': ''}}, 'tasks': {'t1': {'name': 'task1'}, 't2': {'name': 'task2'}, 't3': {'name': 'task3'}}, 'comps': {'c1': {'t1-t2': 1, 't1-t3': 1, 't2-t3': 0}, 'c3': {'t1-t2': 0, 't1-t3': 1, 't2-t3': 1}, 'c4': {'t1-t2': None, 't1-t3': None, 't2-t3': None}}} {'next_task_id': 4, 'next_crit_id': 5, 'crits': {'c1': {'name': 'crit1', 'rawrank': 5, 'rank': 0.62, 'context': 'context1'}, 'c3': {'name': 'crit3', 'rawrank': 2, 'rank': 0.25, 'context': 'context3'}, 'c4': {'name': 'crit4', 'rawrank': 1, 'rank': 0.12, 'context': ''}}, 'tasks': {'t1': {'name': 'task1'}, 't2': {'name': 'task2'}, 't3': {'name': 'task3'}}, 'comps': {'c1': {'t1-t2': 1, 't1-t3': 1, 't2-t3': 0}, 'c3': {'t1-t2': 0, 't1-t3': 1, 't2-t3': 1}, 'c4': {'t1-t2': None, 't1-t3': None, 't2-t3': None}}} PASS 2026-07-12 16:18:24
tester: auto
test_tp020_gui_basic.py(374)
10 N/A delete a task ack ack PASS 2026-07-12 16:18:25
tester: auto
test_tp020_gui_basic.py(353)
11 N/A disconnect from GUI API server False False PASS 2026-07-12 16:18:26
tester: auto
test_tp020_gui_basic.py(78)

Req. Desc.
N/A No requirements found


TP-021: load an existing file Start date : 2026-07-12 16:18:30 MDT
At: test_tp021_gui_file_open.py(42) Requirements : see below
Software Version: N/A Serial number: N/A
Objectives: N/A
Preconditions: N/A Deviations: N/A
Step Req. Execution Instructions Expected Actual Pass / Fail Date
1 N/A start Gui False False PASS 2026-07-12 16:18:30
tester: auto
test_tp021_gui_file_open.py(68)
2 N/A connect harness to GUI App server True True PASS 2026-07-12 16:18:30
tester: auto
test_tp021_gui_file_open.py(72)
3 N/A load existing project False False PASS 2026-07-12 16:18:31
tester: auto
test_tp021_gui_file_open.py(98)
4 N/A use File|Saveas with a new name True True PASS 2026-07-12 16:18:32
tester: auto
test_tp021_gui_file_open.py(125)
5 N/A use File|Close to close and no save/save the file 4 4 PASS 2026-07-12 16:18:34
tester: auto
test_tp021_gui_file_open.py(192)
6 N/A use File|Exit to close and no save/save the file False False PASS 2026-07-12 16:18:38
tester: auto
test_tp021_gui_file_open.py(228)
7 N/A disconnect from GUI API server None None PASS 2026-07-12 16:18:44
tester: auto
None

Req. Desc.
N/A No requirements found


TP-022: file exit with a save Start date : 2026-07-12 16:18:44 MDT
At: test_tp022_gui_file_exit_save.py(42) Requirements : see below
Software Version: N/A Serial number: N/A
Objectives: N/A
Preconditions: N/A Deviations: N/A
Step Req. Execution Instructions Expected Actual Pass / Fail Date
1 N/A start Gui False False PASS 2026-07-12 16:18:44
tester: auto
test_tp022_gui_file_exit_save.py(58)
2 N/A connect harness to GUI App server True True PASS 2026-07-12 16:18:45
tester: auto
test_tp022_gui_file_exit_save.py(62)
3 N/A use File|Exit to close and save the file 4 4 PASS 2026-07-12 16:18:45
tester: auto
test_tp022_gui_file_exit_save.py(110)
4 N/A disconnect from GUI API server None None PASS 2026-07-12 16:18:52
tester: auto
None

Req. Desc.
N/A No requirements found


TP-023: untitled file close and exit Start date : 2026-07-12 16:18:53 MDT
At: test_tp023_gui_file_untitled.py(41) Requirements : see below
Software Version: N/A Serial number: N/A
Objectives: N/A
Preconditions: N/A Deviations: N/A
Step Req. Execution Instructions Expected Actual Pass / Fail Date
1 N/A start Gui False False PASS 2026-07-12 16:18:53
tester: auto
test_tp023_gui_file_untitled.py(58)
2 N/A connect harness to GUI App server True True PASS 2026-07-12 16:18:53
tester: auto
test_tp023_gui_file_untitled.py(62)
3 N/A open an untitled project and close/exit it False False PASS 2026-07-12 16:18:54
tester: auto
test_tp023_gui_file_untitled.py(139)
4 N/A disconnect from GUI API server None None PASS 2026-07-12 16:19:03
tester: auto
None

Req. Desc.
N/A No requirements found


TP-024: recent file close and exit Start date : 2026-07-12 16:19:04 MDT
At: test_tp024_gui_file_recent.py(42) Requirements : see below
Software Version: N/A Serial number: N/A
Objectives: N/A
Preconditions: N/A Deviations: N/A
Step Req. Execution Instructions Expected Actual Pass / Fail Date
1 N/A start Gui False False PASS 2026-07-12 16:19:04
tester: auto
test_tp024_gui_file_recent.py(58)
2 N/A connect harness to GUI App server True True PASS 2026-07-12 16:19:04
tester: auto
test_tp024_gui_file_recent.py(62)
3 N/A open a recent file and close out/ver_tp022.json out/ver_tp022.json PASS 2026-07-12 16:19:05
tester: auto
test_tp024_gui_file_recent.py(85)
4 N/A disconnect from GUI API server False False PASS 2026-07-12 16:19:05
tester: auto
test_tp024_gui_file_recent.py(52)

Req. Desc.
N/A No requirements found


TP-080: run the scenario in README.md Start date : 2026-07-12 16:19:09 MDT
At: test_tp080_gui_readme.py(39) Requirements : see below
Software Version: N/A Serial number: N/A
Objectives: N/A
Preconditions: N/A Deviations: N/A
Step Req. Execution Instructions Expected Actual Pass / Fail Date
1 N/A start Gui False False PASS 2026-07-12 16:19:09
tester: auto
test_tp080_gui_readme.py(92)
2 N/A connect harness to GUI App server True True PASS 2026-07-12 16:19:10
tester: auto
test_tp080_gui_readme.py(96)
3 N/A start a new project normal normal PASS 2026-07-12 16:19:10
tester: auto
test_tp080_gui_readme.py(111)
4 N/A create 3 new tasks 3 3 PASS 2026-07-12 16:19:10
tester: auto
test_tp080_gui_readme.py(119)
5 N/A change their names to tv, computer, phone new3 new3 PASS 2026-07-12 16:19:11
tester: auto
test_tp080_gui_readme.py(135)
6 N/A save file as out/ver_tp080.json False False PASS 2026-07-12 16:19:11
tester: auto
test_tp080_gui_readme.py(143)
7 N/A add 3 criteria is useful is useful PASS 2026-07-12 16:19:11
tester: auto
test_tp080_gui_readme.py(192)
8 N/A rank criteria 3 3 PASS 2026-07-12 16:19:12
tester: auto
test_tp080_gui_readme.py(213)
9 N/A compare each criterion for each combo of tasks is useful is useful PASS 2026-07-12 16:19:14
tester: auto
test_tp080_gui_readme.py(257)
10 N/A check overall ranks asksaveasfilename asksaveasfilename PASS 2026-07-12 16:19:24
tester: auto
test_tp080_gui_readme.py(82)
11 N/A disconnect from GUI API server False False PASS 2026-07-12 16:19:25
tester: auto
test_tp080_gui_readme.py(86)

Req. Desc.
N/A No requirements found


TP-099: miscellaneous chacks Start date : 2026-07-12 16:19:29 MDT
At: test_tp099_misc.py(45) Requirements : see below
Software Version: N/A Serial number: N/A
Objectives: N/A
Preconditions: N/A Deviations: N/A
Step Req. Execution Instructions Expected Actual Pass / Fail Date
1 N/A check version 0.1.0 0.1.0 PASS 2026-07-12 16:19:29
tester: auto
test_tp099_misc.py(48)
2 N/A check svc greater than 0 44 PASS 2026-07-12 16:19:29
tester: auto
test_tp099_misc.py(70)
3 N/A check cfg True True PASS 2026-07-12 16:19:29
tester: auto
test_tp099_misc.py(80)
4 N/A check app_status False False PASS 2026-07-12 16:19:29
tester: auto
test_tp099_misc.py(128)

Req. Desc.
N/A No requirements found




Trace Matrix

Test Run Details

Trace Matrix

Req. Id Protocol
SRS-001
(auto)
Desc: TODO The module shall provide something

ERR missing test case for this requirement