Software testing in CI/CD pipelines
Whenever you build software, you want to ensure that it works as expected. In the days of containers, clusters, build pipelines and DevOps, you want to automate as much as possible to focus on the important thing: Your software product! This talk will introduce the audience to CI/CD pipelines, with a focus on integration an UI testing in a modern cluster environment as it is currently widely accepted in the industry. From the perspective of a software developer, I'll give an overview of the CI/CD concepts, show the differences between classic CI/CD implementations in comparison to modern cluster based solutions, implement a CI/CD pipeline for a demo application, setup integration and UI tests for the demo app and demonstrate the workflow from code change to production. In addition, I'll share some experience concerning team composition and project setup to support CI/CD in the daily business.
To achieve this, various technologies are required which are all open source and which I'd like to point out. I will use state of the art cloud infrastructure software and its CI/CD capabilities. To provide a wider point of view, I'll briefly compare different CI/CD attempts of the different cloud technologies. This shall help the audience to get some orientation about the various possibilities within the ecosystem. To demonstrate integration and UI testing, I'll use two frameworks, Citrus and Sakuli. Citrus is an open source integration testing framework supporting a vast amount of transport protocols where the communication is sent over the wire instead of being mocked in some way. The second framework, Sakuli, is focused on UI testing especially in containerized environments. I'll provide a brief introduction into both frameworks, show how tests are written and how they're executed during the CI/CD pipeline.
I'll point out some pitfalls, "do's and don'ts", additional monitoring possibilities to ensure a stable prod environment and useful workarounds. For example, how to work with separate clusters for integration/testing and productive environments, best practices for project setups within the cloud infrastructure or how to use techniques like "source to image" to create immutable, deployable artifacts.
My personal goal is to show the possibilities of a complete automation as well as the automation potential lying in each of the used tools. In addition, I'll mention that a change to an automated environment does not come over night but is a continuous process of change to move into the right direction.
Based on this tutorial, the attendees will have a solid understanding of CI/CD Pipelines and its usecases especially in context of the shown frameworks and technologies. In addition, they'll learn about a bunch of tools, which are basically absolutely independent from each other. This will empower them to use the right tool for the right job and therefore adapt to their own business requirements without beeing enforced to reinvent their whole infrastructure to use anything of the presented technologies.
The content of this talk will be based on approximately 10 years of experience in software testing and test automation in various projects of different size and scale, including the small firm sector as well as big business concerns and global players of their market. As we're also in charge for many cloud transformation projects, we know the challenges of a cloud migration project very well.
Sven Hettwer arbeitet als Softwareentwickler bei der ConSol* Software GmbH am Standort Düsseldorf. Er beschäftigt sich seit seinem Studium intensiv mit Themen wie Softwarequalität und Automatisierung und konnte seit seinem Einstieg in die Wirtschaft vor ca. 3 Jahren bereits Erfahrungen in unterschiedlichsten (z. T. Open Source) Projekten sammeln. In letzter Zeit beschäftigt sich Sven vor allem mit Testautomatisierung in Verbindung mit Containertechnologien und CI/CD