Several smart city services are highly dependent on sensors managed by IoT devices that collect, store, distribute, and process data obtained from the urban environment of interest. In this scenario, the heterogeneity of the devices used to manage the sensors and the heterogeneity of the sensors themselves is remarkable. However, it is also noteworthy that the applications of smart cities are very homogeneous in the operating system (OS) they use, since GNU / Linux is used in about 70% of the applications in this context according to Eclipse Foundation research. Assuming a scenario where people's safety can depend on the correct functioning of smart city services, it is crucial that each of the application components (SO, devices, sensors, etc.) is properly tested and approved before it goes into operation. One of the common practices of the software industry for verifying correctness is the use of automated testing on continuous integration platforms. Continuous integration (CI) infrastructures are widely adopted by the industry, and are subject to constant evolution; thanks to tools such as Travis and Gitlab CI, we noticed a popularization in the adoption of continuous integration techniques by several projects. In spite of the enormous advances in this field and its apparent maturity acquired in recent years, we noticed that base software (eg SOs and compilers) still need to be made in this area. In particular, when we look at the development of SOs, embedded systems, mission-critical applications, and applications in smart cities, the lack or difficulty of having both test and automation support is evident.
News published in Agência FAPESP Newsletter about the scholarship: