> Markdown version of [/videos/190-continuous-testing-run-automated-tests-for-every-change?t=2139](https://www.wearedevelopers.com/videos/190-continuous-testing-run-automated-tests-for-every-change?t=2139). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # Continuous testing - run automated tests for every change! Is manual QA bottlenecking your CI/CD pipeline? Replace error-prone testing with continuous automated coverage using Testcontainers, Gatling, and BDD to safely accelerate your deployments. - **Speakers:** Christian Kühn - **Event:** World Congress 2021 - **Published:** June 29, 2021 - **Duration:** 47:22 - **URL:** https://www.wearedevelopers.com/videos/190-continuous-testing-run-automated-tests-for-every-change ## Summary Continuous testing acts as a critical evolution within Continuous Integration (CI) pipelines, emphasizing the "shift left" methodology to catch bugs and performance dips as close to the development phase as possible. Relying on Dijkstra's maxim that testing shows the presence of bugs but inherently cannot prove their absence, organizations must aggressively expand automated coverage to replace error-prone manual quality assurance. By integrating tests early and automatically executing them on every code push, engineering teams drastically reduce debugging costs and prevent end-user impact in production. A foundational pillar of this approach is Behavior-Driven Development (BDD). Utilizing tools like Cucumber empowers developers, clients, and QA teams—often referred to as the "Three Amigos"—to collaboratively specify feature expectations using readable Given/When/Then notation. This guarantees that automated safety nets closely align with desired business outcomes. Shifting to performance, frameworks like Gatling allow teams to simulate load generation on every pull request. Generating varied ramp-up scenarios and HTTP request bursts validates not only whether the application works under stress, but whether it accurately returns HTTP errors without quietly degrading the user experience. Moving beyond pure application logic, robust CI pipelines integrate realistic infrastructure and failure states to ensure complete system hardiness. Using Testcontainers allows CI pipelines to spin up ephemeral Docker environments for true database interaction (such as PostgreSQL or MySQL) rather than relying on inconsistent in-memory substitutes. Similarly, abstracting third-party connections with simulators like WireMock enables engineers to safely introduce network latency, connection timeouts, or malformed HTTP responses into the test sandbox. Though these comprehensive automation environments demand greater upfront cloud resources and setup, they ultimately maximize developer velocity by eliminating the manual testing bottlenecks that stall deployments. **Keywords:** continuous testing pipeline, shift-left testing methodology, continuous integration CI, behavior-driven development BDD, cucumber test automation, given-when-then notation, three amigos QA collaboration, gatling load generation, performance testing ramp-up, ephemeral database testcontainers, docker-based integration testing, wiremock API simulation, HTTP timeout simulation, automated pull request validation, manual testing automation ## Chapters 1. **Shifting left to identify bugs early in development** (01:10) — Moving quality assurance closer to development enables faster identification and resolution of software bugs. 1. **Automating quality validation through continuous integration workflows** (04:07) — Releasing code in frequent increments prevents integration conflicts and accelerates code validation feedback loops. 1. **Reducing wasted developer time using continuous testing** (06:15) — Automating manual test scenarios creates immediate context-aware feedback regarding newly introduced source code defects. 1. **Balancing test coverage against feature development speed** (09:02) — Identifying the minimum required volume of tests prevents quality assurance overhead from slowing down new capabilities. 1. **Aligning business requirements using behavior driven development** (11:51) — Writing tests in plain language guarantees non-technical stakeholders and developers share unified application expectations. 1. **Executing performance testing via load generator simulations** (23:39) — Creating realistic traffic volumes during build cycles uncovers latency regressions before initiating production deployments. 1. **Running isolated database integration tests using containers** (35:39) — Replacing unrepresentative in-memory databases with ephemeral docker containers guarantees accurate schema validation across varied deployment environments. 1. **Mocking external service responses and latency conditions** (40:45) — Simulating customized http constraints inside local sandboxes facilitates robust exception handling processes against external server timeouts. 1. **Replacing manual testing processes with pipeline automation** (45:24) — Transitioning away from human validation reduces random verification errors while directly increasing testing infrastructure requirements. ## Related Moments - [Managing testing strategies within continuous delivery pipelines](https://www.wearedevelopers.com/videos/704-testing-net-applications-a-tool-box-for-every-developer) (from "Testing .NET applications a Tool box for every developer") - [Implementing continuous testing for test-driven development workflows](https://www.wearedevelopers.com/videos/1591-developer-joy-with-quarkus) (from "Developer Joy with Quarkus") - [Shifting development challenges towards complex testing and team collaboration](https://www.wearedevelopers.com/videos/1459-the-evolving-landscape-of-application-development-insights-from-three-years-of-research) (from "The Evolving Landscape of Application Development: Insights from Three Years of Research") - [Addressing questions on development practices and testing strategies](https://www.wearedevelopers.com/videos/1069-100-times-more-frequent-deployments-how-did-we-create-a-high-performance-team) (from "100 times more frequent deployments: How did we create a high performance team?") - [Deciding between comprehensive full flows and incremental steps](https://www.wearedevelopers.com/videos/282-watch-tests-go-brrrr-getting-started-with-cypress-in-reactjs) (from "Watch Tests Go Brrrr! : Getting Started with Cypress in ReactJS") - [Scaling automated testing practices across growing engineering teams](https://www.wearedevelopers.com/videos/662-write-tests-you-love-not-hate) (from "Write tests you love, not hate") ## Related Articles - [Integration And E2E Testing: Are They Complementary or Interchangeable?](https://www.wearedevelopers.com/magazine/86-integration-and-e2e-testing-are-they-complementary-or-interchangeable) - [The 8 Best Code Testing Tools](https://www.wearedevelopers.com/magazine/402-the-8-best-code-testing-tools) - [Benefits of Using JMeter For Performance Testing](https://www.wearedevelopers.com/magazine/96-benefits-of-using-jmeter-for-performance-testing) - [Now is the time for industrialized software development](https://www.wearedevelopers.com/magazine/601-now-is-the-time-for-industrialized-software-development) ## Related Jobs - [Software Tester](https://www.wearedevelopers.com/jobs/ext/1209689-software-tester) at **BWI GmbH** - [QA Automation Engineer](https://www.wearedevelopers.com/jobs/ext/1414297-qa-automation-engineer) at **Bitpanda** - [Staff, Analytics Engineer](https://www.wearedevelopers.com/jobs/ext/569504-staff-analytics-engineer) at **Twilio** - [Software Tester (f/m/d)](https://www.wearedevelopers.com/jobs/44712-software-tester-f-m-d) at **Power Plus Communications** - [Engineer, Offensive Security Organization](https://www.wearedevelopers.com/jobs/ext/1992296-engineer-offensive-security-organization) at **Twilio** - [Softwaretester Embedded Linux Systems](https://www.wearedevelopers.com/jobs/ext/1432629-softwaretester-embedded-linux-systems) at **Power Plus Communications AG**