InfoQ Homepage Integration Testing Content on InfoQ
-
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.
-
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.
-
If You Want to Deliver Fast, Your Tests Have the Last Word
A good testing strategy is critical for safe code changes, fast delivery, reduced MTTR, and improved developer experience. Shifting the concept of “unit” can reduce the time needed for changes.
-
Effective Test Automation Approaches for Modern CI/CD Pipelines
Shifting left can be used to improve test design and lead to faster, more effective CI/CD pipelines. By focusing on building effective and efficient tests, CI/CD runs can quickly return feedback.
-
A Simpler Testing Pyramid: Getting the Most out of Your Tests
Overcomplicating your test structure can lead to slow, brittle tests. A focus on test speed as the primary labeling mechanism maximizes your test investment.
-
The Unit in Unit Testing
In this article, we will focus on how developers should consider using fake objects instead of mock objects, as fake objects offer similar isolation benefits while driving high confidence, clear documentation, and loose coupling between implementation and test code.
-
Proven Solutions to Five Test Automation Issues
Automated testing is often blocked due to some well-known issues, especially in a microservices architecture. API and service simulators can eliminate five common issues that block test automation.
-
An Ode to Unit Tests: in Defense of the Testing Pyramid
The switch to the testing diamond approach has not effectively addressed issues caused by the testing pyramid. Instead, the focus should be on using unit tests correctly within a testable architecture.
-
Using API-First Development and API Mocking to Break Critical Path Dependencies
Teams are using API mocking to break critical path dependencies and enable what were serial execution sequences into parallel paths. This article looks at where mocks should be used for the greatest impact and provides a model to estimate the effect of implementing API mocking and an API-first approach.
-
The Fundamentals of Testing with Persistence Layers
Mocking out dependencies such as databases and other persistence layers leads to ineffective tests. Unfortunately, our industry is also focused on function-level testing to the exclusion of all else, so few are trained on how to write any other type of test. This article seeks to correct the issue by reintroducing the concept of testing with databases.
-
Testing Quarkus Web Applications: Reactive Messaging, Kafka, and Testcontainers
Quarkus is a full-stack, Kubernetes-native Java framework that supports many coding styles, including reactive programming. Writing clean unit/component/integration tests for Quarkus applications when a reactive approach is used is vitally important. Here we demonstrate testing reactive code, reactive messaging, and full integration testing.
-
Testing Quarkus Web Applications: Writing Clean Component Tests
In this article, we will learn how to write clean integration tests for Quarkus applications. We will see how we can write simple and clean tests for the following scenarios: a mail client, security with RBAC, testing using containers, and rest clients.