Unit tests for each of our core algorithm functions (e.g., in imgproc.py, contour, select_largest_component, length_of_contour, length_of_contour_with_spacing)
Unit tests for each helper function (e.g., in img_helpers.py)
Unit tests for GUI using Squish GUI Tester or QTest
Unit tests for CLI processing helper functions
Integration testing
GUI + results (i.e., test that specific sequences of button presses produce correct output in the GUI) testing using Squish GUI Tester or QTest
Tools used
Pytest
Squish GUI Tester
QTest
Types of end users
Biomedical researchers without developer experience (i.e., would use GUI but not CLI)
Biomedical researchers with developer experience (i.e., could use GUI and CLI)
Performance testing
Use cprofile to investigate bottlenecks of program
Acceptance testing
Give tool to the two types of users mentioned above and get their feedback
Get feedback from clients Prof. Styner and Rachel Smith
Actual Plan
We use pytest as our unit testing framework and integrate it with GitHub actions (CI) so that unit tests run on push and PR.
Our performance tests will involve end-to-end tests comparing our head circumference algorithm’s final results to ground truth data computed by the old head circumference tool.
Our client has specified that for given input, the output of our tool doesn’t have to be exactly the same as the output of the old tool, but there should be a high correlation coefficient (R2).
We have already compared with images where all pixel spacing values are 1, but we need to get data for images where the pixel spacing values are not all 1 and compare with that as well.
We will give our tool to our client for their direct feedback.