In the ecosystem of software development and quality assurance, the “AUT”—or Application Under Test—is the sun around which all testing activities revolve. As software scales, the infrastructure surrounding the AUT often becomes bloated. Engineers and testers frequently face a paralyzing dilemma: what should stay and what should go? Whether it is legacy test scripts, massive datasets, or experimental configurations, “keeping everything” is a recipe for technical debt and operational inefficiency.
Knowing what to keep in your AUT environment requires a balance between risk mitigation and performance optimization. This guide explores the technical frameworks necessary to prune your testing assets, ensuring your CI/CD pipelines remain lean and your quality signals stay sharp.

The Philosophy of Lean Testing: Why “Keep Everything” is a Trap
In the early stages of a project, it is tempting to save every test case and keep every log file. However, as the AUT matures, this hoarding mentality leads to “Test Bloat.” Test bloat occurs when the volume of testing assets exceeds the team’s ability to maintain them, leading to a breakdown in trust regarding the testing results.
The Cost of Technical Debt in Automation
Every line of code in a test suite is a liability. When the AUT’s UI changes or its API is refactored, the test scripts must follow suit. If you keep redundant or low-value tests, you are effectively increasing the surface area of your technical debt. Maintenance costs rise exponentially, and senior engineers find themselves spending more time fixing “brittle” tests than developing new features. To determine what to keep, you must first calculate the ROI of each test script: if the cost of maintenance exceeds the value of the bugs it catches, it is time to retire it.
Flaky Tests and the Signal-to-Noise Ratio
One of the most significant risks of keeping too much in your AUT environment is the “flaky test” phenomenon. When you have thousands of tests, some will inevitably fail due to environmental hiccups rather than actual software bugs. These false negatives create noise. If a developer sees a failing build and assumes it’s “just that old flaky test again,” the entire purpose of automated testing is defeated. Keeping only the most stable and high-signal tests ensures that a failure is always treated as a genuine priority.
Criteria for Keeping Test Cases in the Application Under Test
Deciding which tests to keep requires a structured evaluation of the AUT’s functionality. Not all features are created equal, and your test suite should reflect that hierarchy.
High-Risk Functionality and Business-Critical Paths
The first category of items to keep are those that cover the “Happy Path” and business-critical workflows. In a fintech AUT, this might be the transaction processing engine; in an e-commerce AUT, it is the checkout flow. These tests are non-negotiable. You should prioritize keeping tests that validate core revenue-generating features. If a feature’s failure would result in significant financial loss or a total service outage, the associated tests must be kept, hardened, and perhaps even expanded.
Frequency of Feature Change vs. Stability
A useful metric for deciding what to keep is the “Volatility Index” of a feature. If a part of the AUT is under constant flux—such as a new UI component being A/B tested—it may not be worth keeping a permanent, heavy automated test for it yet. Conversely, for stable, underlying services that rarely change but are foundational to the system, long-term regression tests are essential. You keep what is stable to prevent regression, and you keep what is critical to protect the brand.
Regulatory and Compliance Requirements
In industries like healthcare or aerospace, the decision of what to keep is often taken out of the hands of the engineers. Regulatory bodies may require specific “audit trail” tests to be maintained for the life of the application. In these cases, even if a test seems redundant from a purely technical standpoint, it must be kept to satisfy legal and compliance frameworks.
Data Retention Strategies: Managing the Backend of Your AUT

The AUT is not just code; it is also the data that populates it. Managing the “state” of the application is one of the most difficult aspects of modern software testing, especially with the rise of big data and complex microservices.
Identifying Transient vs. Persistent Data
To maintain a high-performing AUT, you must distinguish between data needed for a specific test execution (transient) and data that represents a system state (persistent).
- Transient Data: These should be purged after every test run. Keeping “ghost data” in your test database slows down query times and can lead to unexpected side effects in subsequent tests.
- Persistent Data: This includes configuration settings, user roles, and core product catalogs. This should be kept but version-controlled, just like your code.
GDPR and Privacy-First Data Pruning
Modern tech environments must prioritize data privacy. When deciding what data to keep in an AUT environment, “PII” (Personally Identifiable Information) should be the first thing to go. If you are using “production dumps” to populate your AUT, you must implement automated scrubbing tools. Keeping un-anonymized user data in a testing environment is a massive security liability. The rule here is simple: keep the structure of the data, but discard the identity within the data.
The Lifecycle of an Automated Test: When to Refactor or Retire
Test suites should be treated as living organisms. They require a lifecycle management process that identifies when a test has reached its “end of life.”
Implementing Regular Audit Cycles
Engineering teams should conduct a “Test Audit” at the end of every major release cycle. During this audit, look for redundant tests. If three different tests are essentially validating the same API endpoint with slightly different parameters, they should be consolidated into a single parameterized test. Keeping three separate scripts increases the maintenance burden without increasing the coverage.
Using Analytics to Identify Redundant Coverage
Advanced QA teams use “Code Coverage” and “Test Impact Analysis” tools to decide what to keep. If a test has passed 1,000 times over six months without ever catching a bug, and the code it covers hasn’t changed, the test may be redundant. It isn’t providing a “safety net”; it’s just consuming compute cycles. Tech leaders should use these analytics to identify “zombie tests”—scripts that run but no longer serve a meaningful purpose.
Tools and Best Practices for Sustaining a Clean Environment
To keep your AUT lean, you need the right technical stack and a culture of “continuous cleaning.”
Version Control for Test Assets
Everything associated with the AUT—from the deployment scripts (Terraform, Ansible) to the test data—should be stored in version control (Git). This allows you to “delete” items with confidence. If you realize later that a retired test case was actually necessary, you can easily revert the change. This psychological safety net encourages engineers to be more aggressive in pruning the AUT of unnecessary bloat.
CI/CD Integration for Continuous Pruning
Integrating “Linters” and “Static Analysis” tools into your CI/CD pipeline can help identify dead code within your test suite automatically. Furthermore, implementing “automated environment teardowns” ensures that nothing is kept in the cloud infrastructure longer than necessary. In a modern tech stack, the goal is often to keep nothing permanent in the environment, instead rebuilding the AUT from scratch for every test run to ensure a “clean room” state.

Conclusion
Deciding what to keep in your AUT is a sophisticated technical challenge that sits at the intersection of software engineering and risk management. By focusing on business-critical paths, maintaining a high signal-to-noise ratio, and strictly governing data retention, you can transform a bloated, slow testing process into a streamlined engine of innovation.
The most successful tech organizations are not those with the most tests, but those with the right tests. Treat your AUT like a high-performance machine: keep only the parts that add power, reduce friction, and ensure the safety of the journey. Pruning is not an admission of wasted work; it is an essential practice for maintaining technical excellence in an ever-evolving digital landscape.
aViewFromTheCave is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to Amazon.com. Amazon, the Amazon logo, AmazonSupply, and the AmazonSupply logo are trademarks of Amazon.com, Inc. or its affiliates. As an Amazon Associate we earn affiliate commissions from qualifying purchases.