GenAI in test automation
The use of AI in test automation opens up exciting opportunities to increase efficiency and make development processes more flexible. By using...
The redesign of CI/CD pipelines often plays a decisive role in stabilizing and improving the quality of software development. Automated software tests and well thought-out quality assurance processes make a significant contribution to improving software quality. In addition to test-driven development, open source tools are proving to be a valuable support. Challenges and solutions in this area show how efficient development processes can be implemented.
In this episode, I talk to Karsten Günther about the redesign of CI/CD pipelines at Marquardt, a company in the automotive industry. He shares his experience of automating software tests and implementing quality assurance processes. In addition to the use of Test-Driven Development, the use of open source tools helps to improve software quality. The episode offers valuable insights into the challenges and solutions of software development in the automotive sector.
“A software developer, like every human being, makes mistakes. We are all colleagues, but we are not Chuck Norris. We have to test, test, test.” - Karsten Günther
Karsten Günther has been working as an engineer, software developer and architect in the automotive sector for many years. He has experience in the embedded area as well as in the development of methods and tools for automation and pipelines for continuous integration (CI/CD). He currently works as a platform engineer in the Rhein-Main Team (RMT) at Marquardt GmbH and is involved in Software Product Line Engineering (SPLE), Automotive SPICE, Test-Driven Development (TDD), Pair Programming and the use of tools and programming languages such as CMake, Python, PowerShell, Jenkins, GitHub and Bitbucket.
Continuous integration and deployment (CI/CD) plays a crucial role in modern software development. Especially in safety-critical industries such as the automotive industry, reliable and efficient quality assurance processes are essential. Marquardt, a company in the automotive industry, has fundamentally revised its CI/CD pipelines and implemented new strategies and technologies in the process. This article provides an insight into the challenges, solutions and best practices that play a central role in this process.
Marquardt develops complex hardware and software solutions for the automotive industry. These products must not only be functionally convincing, but also work reliably under extreme environmental conditions, such as in Siberia or North Africa. Software quality is therefore a critical factor.
In the past, many development and testing processes were carried out manually, which impaired the efficiency and quality of the software. In order to meet these challenges, the aim was to comprehensively automate the CI/CD pipelines. A key measure was the introduction of a new, open source-based platform to make software development more efficient and robust.
The automation of tests is an essential part of a modern CI/CD pipeline. Continuous Integration (CI) makes it possible to integrate changes into the main branch of the code several times a day. This allows potential errors to be detected at an early stage and improves collaboration within the development teams.
A particular focus is on ensuring that all changes are tested automatically before they are transferred to the production system. This not only increases software quality, but also significantly reduces the amount of manual testing required.
A proven approach to improving software quality is Test-Driven Development (TDD). With this method, tests are written before functions are implemented. This creates a stable test network that serves as a safety mechanism and identifies errors at an early stage.
The use of TDD helps to ensure that the code is designed to be testable right from the start. This not only facilitates subsequent adjustments, but also improves the long-term maintainability of the software.
The introduction of a standardized platform for software development at Marquardt aims to make development and testing processes more efficient. Embedded software development in particular requires fault-tolerant environments in which developers can work safely without having to worry about unintentionally impairing existing functions.
This platform provides a structured environment that supports best practices and optimizes collaboration between developers. The use of standardized tools and processes improves the consistency of software development.
The choice of suitable tools and frameworks is crucial for the efficiency and quality of development processes. A central element of the new platform is an open source build system that supports software development.
Google Test, a widespread framework for unit tests that is used in embedded systems in particular, is also used. These tools help to create a reliable and reproducible test environment.
Another important component of the new platform is the integration of documentation tools. Sphinx is used to automatically generate all development documentation. Originally developed for Python projects, Sphinx offers numerous extensions that enable functions such as requirements tracing, automatic test report creation and test generation.
This automation ensures that documentation is always up to date and complies with regulatory requirements.
Precisely documented requirements and tests are essential to meet regulatory requirements, especially in the automotive industry. The platform enables audit-proof documentation of requirements, test results and changes, which ensures traceability throughout the entire development cycle.
A long-term goal is the broad introduction of the new platform in further development projects. Many existing software solutions are still based on outdated technologies that are to be gradually migrated to the modern environment.
In addition, the platform is being continuously developed to enable seamless hardware-software integration and system integration. This should further increase efficiency and support new use cases.
A decisive factor for the success of the new platform is acceptance within the development teams. The early involvement of users in the design process and the continuous collection of feedback are essential to ensure a high level of user-friendliness.
Great importance is therefore attached to close cooperation with the developers to ensure that the platform actually meets their needs and is used successfully in the long term.
The redesign of the CI/CD pipelines at Marquardt shows how software development can be optimized through the use of modern technologies and methods. The automation of tests, the introduction of a standardized platform and the increased focus on continuous integration are decisive measures for increasing software quality.
Stable and efficient development processes are essential, particularly in safety-critical sectors such as the automotive industry. The continuous further development of the platform and the involvement of users will be crucial to ensuring the long-term success of this transformation.
A CI pipeline (Continuous Integration) automates the process of software development by regularly integrating new code into a shared repository. With each change, automated tests are performed to ensure that the code is functional. CD (Continuous Delivery) extends this by automatically transferring the software to a production environment as soon as tests have been passed. This speeds up the software delivery process and improves quality. Both together enable fast updates and increased team productivity.
The main differences between a CI pipeline and a CD pipeline are the focus and scope. A CI pipeline focuses on the continuous integration of code changes to enable immediate error detection and correction. It tests the code regularly and creates builds. A CD pipeline, on the other hand, aims to automatically deploy these builds to different environments, improving software delivery through automation and reliability. While the CI pipeline optimizes the integration phase, the CD pipeline takes care of the delivery of the software.
The implementation of a CI pipeline significantly accelerates software development by enabling automated tests and integrations. This reduces errors and improves software quality, as bugs are detected at an early stage. In addition, the CI/CD pipeline promotes faster delivery of features and updates, which increases customer satisfaction. Transparency in the development process increases collaboration within the team, while the continuous feedback loop supports the ability to adapt to changes. Overall, the CI pipeline leads to more efficient processes and more stable software.
Continuous Integration (CI) is an automated process that ensures that development changes are regularly integrated into the main code base. In a CI pipeline, changes are checked by automated builds and tests. Each developer adds their code at short intervals, allowing errors to be detected at an early stage. The pipeline then runs tests to ensure that the code is functional and does not break any existing features. This enables continuous improvement and speeds up software development.
A CI pipeline typically consists of the following phases: Code Commit, Build, Testing and Deployment. These phases are important to ensure that the code is continuously integrated, reliably built and automatically tested before it enters the production environment. This detects errors early, improves quality and speeds up software delivery. The CI Pipeline promotes an efficient development environment and enables rapid feedback for developers.
Tools such as Jenkins, GitLab CI, Travis CI and CircleCI are particularly suitable for implementing CI pipelines. These tools offer user-friendly interfaces, integration with version control systems and extensive plugins to support various programming languages. They also enable automated tests and deployments, which increases efficiency. Docker and Kubernetes are also recommended for container-based applications. Choose the tool that best suits your project requirements.
A CI pipeline improves DevOps implementation by enabling automated tests and integrations. This reduces errors and increases software quality as code changes are constantly checked. Developers can receive feedback more quickly, which promotes collaboration and shortens release cycles. In addition, the CI pipeline enables a consistent environment, which simplifies and accelerates deployment. This increases the efficiency of the entire development team and shortens time-to-market.
The use of AI in test automation opens up exciting opportunities to increase efficiency and make development processes more flexible. By using...
The development of modern appliances requires a robust test infrastructure and comprehensive system tests to ensure quality and reliability....
World Quality Day provides an opportunity to take a look at the development of software quality and the changes in software testing over the last 20...