InfoQ Homepage Testing Content on InfoQ
-
Mastering Impact Analysis and Optimizing Change Release Processes
Dynamic IT professional with a proven track record in optimizing production processes and analyzing outages in complex systems handling millions of TPS. The recent CrowdStrike outage highlights the importance of continuous improvement and adherence to best practices. Passionate about elevating operational excellence through strategic reviews and effective process enhancements.
-
How Quality Champions Foster Sustainable Software Quality Improvement at Swiss Post
Even skilled and motivated agile teams sometimes fail to achieve their own software quality goals. In this article, we present a practice we use to assist agile teams in reaching their quality goals and share our experience. The practice is about paying constant attention to specific metrics. It means encouraging people to improve themselves in both qualitative and quantitative ways.
-
Experimenting with LLMs for Developer Productivity
This article describes an experiment that sought to determine if no-cost LLM-based code generation tools can improve developer productivity. The experiment evaluated several LLMs by generating unit tests for some open-source code and measuring the code coverage as well as the manual rework necessary to make the tests work.
-
Is Your Test Suite Brittle? Maybe It’s Too DRY
One important design principle in software development is DRY – Don’t Repeat Yourself. However, when DRY is applied to test code, it can cause the test suite to become brittle — difficult to understand, maintain, and change. In this article, I will present some indications that a test suite is brittle, guidelines to follow when reducing duplication in tests, and better ways to DRY up tests.
-
Modernizing Testing Practices for Jakarta EE Projects
This article focuses on the increasing adoption of data-driven testing in Java enterprise applications and sheds light on the Data and NoSQL Jakarta specifications. It highlights the significance of modern testing libraries such as JUnit Jupiter and AssertJ and emphasizes the importance of container-based frameworks like Testcontainers in enhancing testing practices.
-
Testing Machine Learning: Insight and Experience from Using Simulators to Test Trained Functionality
When testing machine learning systems, we must apply existing test processes and methods differently. Machine Learning applications consist of a few lines of code, with complex networks of weighted data points that form the implementation. The data used in training is where the functionality is ultimately defined, and that is where you will find your issues and bugs.
-
Efficiently Arranging Test Data: Streamlining Setup with Instancio
The need to ensure code quality is ubiquitous, regardless of the development paradigm. Continuous Deployment and Continuous Delivery indicate that reliable test suites are directly connected to the speed of development and quicker customer feedback loop. Instancio automates the data setup step - the A in Arrange-Act-Assert. So, it allows you to put more emphasis on the business feature tested.
-
Reducing Verification Lead Time by 50% by Lowering Defect Slippage and Applying AI/ML Techniques
Can we increase our flexibility? Can we increase our test coverage? Can we increase our efficiency? And is it possible to reduce our verification lead-time by 50%? One company challenged itself with these questions. This article explores two important “‘pillars”’ of their testing strategy: shifting left and using state-of-the-art techniques to support verification activities.
-
Debugging Production: eBPF Chaos
This article shares insights into learning eBPF as a new cloud-native technology which aims to improve Observability and Security workflows. You’ll learn how chaos engineering can help, and get an insight into eBPF based observability and security use cases. Breaking them in a professional way also inspires new ideas for chaos engineering itself.
-
Debugging Go Code: Using pprof and trace to Diagnose and Fix Performance Issues
In this article, we will look at how to identify and fix performance issues in Go programs using the pprof and trace packages. We will begin by covering the fundamentals of the tools, then delving into practical examples of how to use them. By the end of this article, you will have a solid understanding of how to use these powerful tools to improve the performance of your Go applications.
-
Thinking Deductively to Understand Complex Software Systems
Thinking differently can allow us to approach problems in new ways. With testing, approaching the problem with a negative approach can lead to more thorough test cases.
-
Debugging outside Your Comfort Zone: Diving beneath a Trusted Abstraction
This article takes a deep dive through a complex outage in the main database cluster of a payments company. We’ll focus on the aftermath of the incident - the process of understanding what went wrong, recreating the outage in a test cluster, and coming up with a way to stop it from happening again, and dive deep into the internals of Postgres, and learn about how it stores data on disk.