בדיקות תוכנה ואבטחת איכות - QA
Embedded Software Testing and Automation
1. Build infrastructure for automation testing of embedded software. This includes setting up Jenkins on a local server or Amazon AWS, interfacing with a GitHub repository, building the project on the server, loading the built firmware to the hardware, and running tests on it.
2. Create tests for the embedded software to run on the target hardware device or on an emulated environment on the PC. Tests can be composed of static analysis using open-source tools like CppCheck or Tier-1 tools for critical safety systems such as Parasoft.
3. Create unit tests manually or automatically. If manually then it is done using a unit testing framework either open-source such as google test or proprietary licensed frameworks such as Isolator++ by Typemock or by Parasoft. If done automatically (with some manual intervention) then it can be done using Parasoft.
4. Run the unit tests on the target or on the emulated environment using automation.
5. Create tests for dynamic memory analysis to catch scenarios of memory mismanagement that cause memory leaks or undefined behavior. This can be done using open-source tools like Valgrind or proprietary tools like Parasoft.
6. Create tests to monitor via serial communication while the application is running (all via automation). This can be done using tools such as Docklight that also offer a scripting interface.