D3. Test Plan

Ideal Plan

Unit tests

  • 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.

Google Doc