We all know that a modern tester should have both analytical skills and basic knowledge of programming as well as soft skills. If we add experience in agile software development, we get an almost perfect candidate in the eyes of employers. However, what if one day your employer says: - Our sensor has been recently working too short. - Please, do the battery life tests. - Current functionalities of our product will be enhanced soon. Please, write some tests for the embedded platform. - Clients are complaining about our system working too slowly. Please, prepare the testing environment for performance tests of microprocessor memory.
Nowadays, everything tends to deliver high-quality products in a continuous way. How to test an application for your customer with so many tools, equipment, and ecosystems combining HW, FW, mobile devices and complex backend architecture? Over the past few years, I've already gone three times through the transformation from "QA Team" thinking to "Dev/TestOps" mindset in IoT companies.
During my presentation, I'll show you how to implement a multi-node system (HW/FW/SW) in the environment of Continuous Integration and (finally) Continuous Delivery. I will start with a big picture of a centralized test environment. After that, all components will be separately analyzed to present possible solutions and implementations. I will also show how to involve manual testers and let actively participate in the environment evolution. All of that supported by Jenkins tool, Python language, BDD approach, and some HW knowledge.
- General understanding of Continuous Delivery solution in IoT products context
- The real implementation of centralized test automation infrastructure
- Understanding that (because of real devices) not everything can be dockerized/moved to the cloud
- Overview of how manual testers can participate in building CI environment