Trends in Testing
The further development of software testing is increasingly characterized by artificial intelligence (AI). Two key areas can be distinguished: the...
The development of modern appliances requires a robust test infrastructure and comprehensive system tests to ensure quality and reliability. Appliances such as combi-steamers, which are used in professional kitchens, often contain extensive software - for some manufacturers this comprises up to 700,000 lines of code. Extensive test automation is used to manage this complexity. Insights into the daily test routine show how companies master the challenges of scaling in software development while ensuring the highest standards for their products.
In this podcast episode, I talk to Andreas Berger from RATIONAL, a manufacturer of kitchen appliances. Andreas explains the importance of system testing and a good testing infrastructure for their products, such as combi steamers. We talk about how their appliances, which are used in large kitchens such as restaurants and hotels, are equipped with lots of software. Around 700,000 lines of code in their appliances are offset by extensive test automation. Andreas gives insights into the daily testing routine and how they overcome the challenges that come with scaling their development.
“The biggest challenge is scaling with development. We are currently growing massively in terms of development, and we don’t want to end up in a situation where we have as many people in test automation as in development.” - Andreas Berger
After studying computer engineering, Andreas Berger started in embedded software development at a payment terminal manufacturer. The main area of his work was middleware development. The next station led him, also as an embedded middleware developer, to a medical technology company that developed dephibrilators for ambulances and helicopters. He has been working at RATIONAL since 2012. He also started there as an embedded developer and has been setting up the automated system test for the devices since the end of 2017. Since last year, he has officially led the Nightwatch team.
RATIONAL is known for the manufacture of combi-steamers and tilting catcher systems that are used in commercial kitchens worldwide. At first glance, these appliances look like pure kitchen technology, but they are highly complex systems with a large number of electronic components and company-specific functions that have to work together precisely. An average appliance contains around 700,000 cells that communicate with each other. This high level of technical complexity makes comprehensive and thorough system testing essential to ensure smooth operation.
A key objective at RATIONAL is to test all key appliance functions fully automatically. To this end, a comprehensive test infrastructure consisting of racks, electronic assemblies and relay modules is being set up. The entire test process runs automatically - from initiation to report generation the next morning. This automation significantly reduces manual sources of error and simultaneously increases the efficiency of the test processes.
One of the biggest challenges is the integration of hardware and software components to ensure seamless collaboration. To achieve this, RATIONAL relies on a specially developed Python framework. The choice of Python is based on its versatility and simplicity compared to programming languages such as C or C++. Another advantage of Python is the lack of need for compilation times, which further accelerates the testing process.
A frequent test scenario at RATIONAL involves simulating specific operating modes, such as cooking with hot air. This involves checking whether all relevant components such as motors, heaters and temperature sensors work correctly and achieve the desired goals. Such tests are crucial to ensure that the appliances function reliably under real-life conditions.
A key goal for the future of test automation at RATIONAL is the introduction of a comprehensive test impact analysis. This analysis should help to prioritize test cases more efficiently and further optimize the test process. A functioning test impact analysis would make it possible to test changes in a targeted manner and make the entire process even more efficient. This step is an important milestone on the way to continuously improving quality assurance.
The software test infrastructure comprises all the necessary resources and tools required for testing software. This includes hardware, software, test environments, test data and test tools. It forms the basis for the planning, execution and evaluation of tests to ensure the quality and functionality of the software. A well-structured test infrastructure enables efficient test processes and contributes to the early detection of errors.
The main components of the software test infrastructure include test environments, test tools, test data and hardware resources. Test environments simulate the production environment to enable realistic tests. Test tools support the automation and management of tests. Test data is necessary to map different scenarios. Hardware resources provide the required computing power and storage capacity.
A solid test infrastructure is crucial to ensure the quality and reliability of software products. It enables tests to be carried out efficiently, errors to be detected at an early stage and development time to be shortened. Without a suitable infrastructure, tests can be incomplete or faulty, which can lead to problems in production and dissatisfied customers.
Setting up an effective test infrastructure starts with analyzing the test requirements and selecting suitable test tools. It is important to create test environments that realistically replicate production conditions. Obtaining relevant test data and ensuring sufficient hardware resources are also crucial. Close cooperation between developers and testers also promotes the development of an efficient test infrastructure.
Automation plays a central role in the test infrastructure, as it takes over repetitive tasks and increases test efficiency. Automated tests enable faster feedback on the state of the software and reduce human error. They are particularly useful for regression testing and continuous integration processes, as they can perform tests regularly and consistently.
When setting up a test infrastructure, challenges can arise such as selecting the right tools, integrating them into existing systems and ensuring scalability. In addition, test environments must be configured to accurately replicate production conditions. Managing and updating test data and training the team to use the new infrastructure are other important aspects.
With manual tests, the focus of the infrastructure is on the provision of test environments and tools for test documentation. Automated tests, on the other hand, require additional tools for script creation and execution as well as systems for continuous integration. The hardware requirements can be higher for automated tests, especially if parallel test executions are planned.
Regular updates of test tools and environments are essential to keep pace with technological developments. It is important to ensure the consistency of test data and to remove outdated data. Documentation and monitoring help to keep track of the state of the infrastructure. In addition, the team should be continuously trained to be able to work effectively with the infrastructure.
A well-developed test infrastructure enables comprehensive and efficient testing, allowing errors to be detected and rectified at an early stage. This leads to higher software quality and reliability. Without an adequate test infrastructure, important tests can be overlooked, increasing the risk of errors in the production environment.
Current trends in the development of test infrastructures include the increased use of cloud-based test environments, the integration of AI for test automation and the use of container technologies such as Docker. These approaches offer flexibility, scalability and increased efficiency in the testing process. The concept of shift-left testing, in which tests are integrated earlier in the development cycle, is also becoming increasingly important.
The further development of software testing is increasingly characterized by artificial intelligence (AI). Two key areas can be distinguished: the...
The use of AI in test automation opens up exciting opportunities to increase efficiency and make development processes more flexible. By using...
The integration of Shift Left and Shift Right into the development process offers holistic quality assurance. Shift Left promotes early testing to...