Since the industrial sector highly values robustness and quality, we at evosoft also place great emphasis on testing our products. In an environment where many PLCs and HMI panels are involved in the manufacturing processes, it is very important to ensure that the binaries containing the programs of these devices are all correct. Previously, the testing of the ready binaries was only possible by verifying manually all the included functionalities. To stabilize and speed up this process we have developed a framework with the general purpose of loading and comparing data. The functionality of this application can be extended by plugins supporting various file formats and special comparing algorithms.
The main purpose of my work was to design and implement plugins which can represent the original file as an easily understandable visual tree and to provide possibilities for a highly customizable comparing process.
The plugin which is responsible for loading and visualizing the file is very useful not only for the testers but for the developers, too. This module makes possible the display and analysis of a file without loading it in a complex simulator or downloading a – possibly corrupt – binary on the hardware itself. It also makes possible to find and read the specific parts of the file even for those who have never seen or understood a binary structure like the format we are supporting.
By the comparer plugin we can automate almost all of the validation steps in our testing scenarios. The implemented specific comparison logics allow us to analyze the differences between the functionalities put in the binaries instead of the byte level data which can frequently differ during the development process.
The framework application extended with these plugins will allow the testers to focus only on the important, functionally different parts of the files created by the tested application. Besides, it is much easier for the developers to analyze the results of the changes they have made on the code by simply comparing the newly created file to a reference one. The extensions made the communication extremely easy between the two sides by defining the places of the differences or problems and by letting them have the same point of view on the analyzed data.