Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Story] - Long term testing strategy #1145

Open
ladislas opened this issue Nov 19, 2022 · 0 comments
Open

[Story] - Long term testing strategy #1145

ladislas opened this issue Nov 19, 2022 · 0 comments
Assignees
Labels
01 - type: story Clear roadmap to implement a new feature, refactor code, etc.

Comments

@ladislas
Copy link
Member

Description

To make sure our systems are working, we have different levels of testing:

unit testing

  • status: up and running locally and on CI
  • test that units of the system behave the way they are supposed to
  • run on host system (macOS/Linux)
  • very low level
  • TDD as much as possible

integration testing

  • status: up and running locally and on CI
  • test that components can work together
  • mid to high level
  • run on host system (macOS/Linux)
  • TDD/BDD

(on device) component testing

(on device) integration testing

(on device) functional testing

(on device) system testing

  • status: currently done by hand
  • test that the whole system is working as expected
  • long and tedious but necessary for each new release
  • parts might be automated with automated on device functional testing

Missing types of testing

The above tests only focus on "does the unit/component/system work as expected".

There is not control related to wether the unit/component/system was working better or worse before and after the changes.

This imply we add one more type testing

(on device) performance testing

  • status: not started yet
  • test that the unit/component/system still performs as expected
  • not applicable to all parts of the system
  • parts where applicable:
    • logging --> output rate, impact on other thread, etc. (done by spike, must be automated)
    • BLE --> communication speed, MTU size
    • CommandKit + BLE --> number of commands sent, ability to handle them
    • VideoKit --> frame rate, CPU load
    • LEDKit --> frame rate, CPU load
    • IMU --> precision, CPU load
  • could also measure compilation time, size impact of each module on the boostloader/os

Related epic/story:

@ladislas ladislas added the 01 - type: story Clear roadmap to implement a new feature, refactor code, etc. label Nov 19, 2022
@ladislas ladislas added this to the Future Release milestone Nov 19, 2022
@ladislas ladislas self-assigned this Nov 19, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
01 - type: story Clear roadmap to implement a new feature, refactor code, etc.
Projects
None yet
Development

No branches or pull requests

1 participant