D3. Test Plan

Ideal Testing Goals:

Unit Testing Goals:

  • Add unit tests to help determine hardware issues and timing differences that the researchers had issues with. Our end goal is to create presets of different waves for the researchers. Create unit tests for every combination of motors to test for any hardware issues. Go through the software and implement unit tests to see if that is the issue with the motor delays.

Integration and system testing (with UI)

  • We will create unit tests to check to see if all the cross component functionalityfrom a system level. We will create tests to see if presets will be actually excuted within the machine. Additionally, we will create tests to see if we run the UI that the results are being added within the database.

Descriptions of tools used

  • pytest, MongoDB, pymongo

Descriptions of types of end users

  • End user is researcher at Chapel Hill. Implementation will be added so that other researchers will be able to use if we are able to.

performance, reliability, etc. testing

  • Similar to what we will be testing in the integration and system testing, we will build upon this by creating tests that determine what motor (or at least what row/ column) of motors is causing an error respectively to expected values. We will also want to test if over time there is increased delays in the waves. If we had all the time we would do this for every combination.

Realistic Goals:

Unit Testing Goals:

  • Add unit tests to help determine hardware issues and timing differences that the researchers had issues with. Our end goal is to create presets of different waves for the researchers. Although we won’t be able to implement unit test for every combination of motors, we will implement unit tests so that rows and columns will be in sync with each other.

Integration and system testing (with UI)

  • As we create our presets for the researchers, we will need to create tests that if a motor fails to operate or there is input delay from a motor that the researcher is notified. If an error like this occurs then the respective expected values will be different. With our presets we aim to have expected values and if they differ from what we expect an error is raised. We will create unit tests for a specific subset of presets to see if there is the corss component functionality.

performance, reliability, etc. testing

  • Similar to what we will be testing in the integration and system testing, we will build upon this by creating tests that determine what motor (or set of motors) is causing an error respectively to expected values. We will also want to test if over time there is increased delays in the waves. Realistically we will test only a random subset of motors to determine what is causing this.

Acceptance testing

  • Generally, acceptance testing will be done by the researches to see if the database stores the information for the various waves they need to test.