Largely we had to work on testing, to ensure that the github repositories were properly maintained, and to make sure that everyone's projects were suitable and met the requirements needed to be published. Several stages of testing are needed for different sections:
We tested for every team in MotionInput, taking on this work as a four person team was a difficult task so we decided to split the work between the four of us.
Unit testing was necessary for our MFCs for every button created. This was a fairly simple process as the buttons all are meant to write to JSON so all we have to do is check if they are reading from the JSON by running and then returning the output they are receiving and comparing it to the values we expect to get from the config files. As for buttons and items of the MFC that write to the JSON, this was a similar reversed process where we can check the JSON and compare the results that our button messages are returning and checking if the JSONs have properly updated with them.
The integration testing required more nuance. As we are integration testing for every project there were a variety of problems that arose along the way, most notably, was the fact that every team is working from their own build of MotionInput as well as their own adapted MFCs based off our templates. This meant that while we are familiar with the foundations they have built upon we were not immediately familiar with the technical details of their own builds. This meant coming to develop a close understanding of frameworks like mediapipe as we oversaw the upgrade of facial navigation from opencv to mediapipe, or the switch to pyautogui when implementing speech hotkeys.
With new changes and additions made to many different projects in different ways, our testing was key to developing new requirements.txt files including a new one for the main codebase of MotionInput including the general changes needed.
For this particular case a decision was made to switch the facial navigation software to mediapipe in order to increase framerate and fluidity.
Testing to make sure the builds were set up to work when not on the teams local machines as well as making sure that the MFCs were properly structured in how they searched for data and their pathing was a common problem we had to check for.
Mainly it was compilation errors that we had to test for, as each team was working on a different project, some vastly different to others involving different libraries, it meant that each team had unique problems we had to overcome when attempting to compile their work.