# You Broke My Tests!

**URL:** <https://club.ministryoftesting.com/t/you-broke-my-tests/78393>\
**Category:** Discussions\
**Tags:** automation, process\
**Created:** [15 August 2024 13:00 UTC](https://club.ministryoftesting.com/t/you-broke-my-tests/78393 "2024-08-15T13:00:58Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ejacobson](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/ejacobson/32/8472_2.png) [@ejacobson](https://club.ministryoftesting.com/u/ejacobson)\
**Post date:** [15 August 2024 13:00 UTC](https://club.ministryoftesting.com/t/you-broke-my-tests/78393/1 "2024-08-15T13:00:59Z")

</div>

How can I reduce this problem?

Context:  
10 scrum teams with devs and testers in each, in same ART, doing SAFe. All contributing to a monolith ecom site. Weekly global prod deploy. Testers from those 10 dev teams maintain a suite of ~ 2500 Selenium checks that run daily and mostly work (e.g., they find bugs and have a false positive rate of about 5%).

Problem: The false positive rate fluctuates +/- 5% because changes to the product-under-test by Team\_A often break Selenium checks owned by Team\_B and Team\_C. Fixing the breaking tests is unplanned work.

---

<div class="post-metadata">

**Author:** ![poliarush](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/poliarush/32/9542_2.png) [@poliarush](https://club.ministryoftesting.com/u/poliarush)\
**Post date:** [15 August 2024 14:32 UTC](https://club.ministryoftesting.com/t/you-broke-my-tests/78393/2 "2024-08-15T14:32:42Z")

</div>

Hm interested dilemma! Here some ideas:

- **Definition of Done** : make it obligatory cross-review by teams
- **Test Review Board thru pull requests** : make a new process where everything goes thru pull requests. Thus TeamA reviews and merges TeamB, TeamC and vice versa
- **Impact Analysis** : make correlation between tests, check impact once changes are done, prior alarm system before execution
- **AI** : makke self-healing tests [Self-Healing Tests | CodeceptJS](https://codecept.io/heal.html)
- **Motivation** : make bonus for each team based on false positive and they will come up with some ideas you don’t expect 😉

---

<div class="post-metadata">

**Author:** ![al8xr](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/al8xr/32/14743_2.png) [@al8xr](https://club.ministryoftesting.com/u/al8xr)\
**Post date:** [15 August 2024 14:36 UTC](https://club.ministryoftesting.com/t/you-broke-my-tests/78393/3 "2024-08-15T14:36:31Z")

</div>

Adding a few cents to Mykhailo’s statements:

- The rotated release team which is responsible for ensuring that builds are green each week.
- Automated impact analysis to run only impacted tests and not all 2500.
- Shared responsibility for the tests.

---

<div class="post-metadata">

**Author:** ![parwalrahul](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/parwalrahul/32/11376_2.png) [@parwalrahul](https://club.ministryoftesting.com/u/parwalrahul)\
**Post date:** [15 August 2024 15:32 UTC](https://club.ministryoftesting.com/t/you-broke-my-tests/78393/4 "2024-08-15T15:32:37Z")

</div>

Step 1: Move it from Unplanned work to Planned work in your next sprint to bring it to everyone’s attention.

Step 2: Try to separate CI suites that run on daily, weekly and release level. ~ 2500 Selenium checks daily feels anti-pattern to think of. Maybe, you have a reason for it. I am not sure. Some optimization or moving test to API layer needs to be done.

Step 3: Observe if it improves the situation. Time frame: 2 sprints atleast.

---

<div class="post-metadata">

**Author:** ![cassandrahl](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/cassandrahl/32/15220_2.png) [@cassandrahl](https://club.ministryoftesting.com/u/cassandrahl)\
**Post date:** [16 August 2024 09:53 UTC](https://club.ministryoftesting.com/t/you-broke-my-tests/78393/5 "2024-08-16T09:53:39Z")

</div>

Are the tests breaking or failing? I think this is an important distinction to make, as if the tests are actually failing but being treated as broken, then you may end up “fixing” a test so that it doesn’t actually do what you think it does.

Either way, I agree that this should definitely be part of the planned work, and think that an investigation into why this is happening could be helpful.

Are the tests flaky?  
Is the code difficult to maintain?  
Is your branching strategy contributing to the problem?  
… And so on.

This is definitely an interesting scenario. Let us know what you end up doing!

---

<div class="post-metadata">

**Author:** ![anthonygreen](https://sea2.discourse-cdn.com/flex020/user_avatar/club.ministryoftesting.com/anthonygreen/32/13763_2.png) [@anthonygreen](https://club.ministryoftesting.com/u/anthonygreen)\
**Post date:** [18 August 2024 09:52 UTC](https://club.ministryoftesting.com/t/you-broke-my-tests/78393/6 "2024-08-18T09:52:02Z")

</div>

The problem is that end-to-end tests are remote from the locus of the problem.  
In a team with mature development practices the E2E suite only serves to ensure the ‘walking skeleton’ is maintained with integration, component, contact and unit tests doing the heavy lifting by inducing through their test signals a design that has high cohesion with low coupling.  
So how to fix ? Committing the developers to maintaining a suite of contract tests may help, but that can de difficult if there’s no skills adoption culture. I think as @parwalrahul says moving it from unplanned to planned work would be a first step - that surfaces the problems for everyone’s attention.
