TesterArmyTesterArmy
  • Customers
  • Pricing
Sign inGet started
HomeCustomersNovu case study
Customer story

Novu cut flaky tests in half and merges about 30% faster

Bigger test changes went to an outsourced QA service over Slack, and Novu waited. Now the team describes user flows in plain language, and TesterArmy tests every pull request.

Novu did not arrive at TesterArmy from manual QA. The team had already been through Cypress, Playwright, and an outsourced service that wrote and maintained its tests. The missing piece was a product the team could steer itself, with visibility into every run.

Dithered photo of a historical telephone switchboard exchange
TesterArmyNovu
Case study

"It's like a no-frills, no-hassle QA engineer working beside you."

Dima Grossman
Dima GrossmanCofounder & CTO, Novu
Time to merge
~30% faster
Flaky tests
50% fewer
Average test run
4 min
[01] Who we talked to

The CTO who guards the first five minutes

Dima Grossman is the cofounder and CTO of Novu, which he describes as the biggest open source communication platform on GitHub. He runs a team of about 15 people, backed by some 450 open source contributors. Novu is an API-first product, but a company's first impression of it happens in the dashboard, so Dima classifies the critical paths as the first five minutes of using Novu. He needs QA to keep those five minutes working in every packaging of the product.

Dima Grossman, Cofounder and CTO of Novu, in the TesterArmy bitmap treatment
Dima GrossmanNovu
[02] The problem

A QA service the team couldn't see into

Novu started with Cypress, which stopped working at scale: the more test cases the team added, the more challenging the suite became. A Playwright suite came next, and then an outsourced QA service took over the Playwright work entirely, writing the tests and fixing them when something broke or turned flaky.

As a way to offload maintenance, the service worked. Somebody else dealt with flakiness and updated test cases when the product changed, and Dima says having a person handle that was extremely helpful. The catch was that there was no product behind the person. Novu never interacted with a system, only with a Slack channel.

Four packagings, one Slack channel

Novu ships as a cloud platform and an enterprise edition, across staging and production. Testing all four means new test patterns and dynamic triggers whenever the product moves. On the service, the bigger changes meant explaining the request in Slack and waiting.

"Making the bigger changes, the communication was not very helpful, and we lacked the visibility into what's happening behind the scenes."

The misalignment ran deeper than turnaround time. Dima had always assumed professional services were a step on the way to a product, and this vendor was walking in the other direction, further into services. When Novu asked about using the product, the team learned the vendor was investing in the services side instead.

Going back to maintaining their own Playwright suite was not on the table either, because, as Dima puts it, the market is not heading in this direction. So the team kept quietly looking for something that behaved like a product.

[03] The switch

A test that signed itself up

The looking ended on X, where Dima ran into TesterArmy's posts and decided to give it a spin. The risk was small, since the worst the agent could do was log into staging. And the first thing the agent did was what Dima calls the most difficult part of establishing any testing environment: creating users, logging in, and handling credentials.

"With almost no guidance, it was able to sign up and navigate the logged-in product. The moment I saw it navigate within the system, I knew the base is there."

Once the agent was inside, the rest of the setup stopped being plumbing. Dima describes it as "mapping customer journeys in human language, almost describing what our users are doing," and letting TesterArmy walk them.

It started with a tweet

Novu was the first open source project TesterArmy supported. The paid subscription came later. Dima tried the product during the YC batch, automated his first flow quickly, and became one of the first people to post about it publicly.

"I usually consider myself an early adopter with a lot of technology, so it was quite easy to just give it a go and try it out."

[04] The solution

User flows instead of selectors

Use case 01/Web Testing

Plain language on live staging

Novu's saved tests cover the dashboard's critical paths and run as a smoke test on staging after every merge, with Slack notifications when something breaks. Each test is written the way Dima describes the product to peers: "describe user flows in simple language and achievable steps: click that, do that, or achieve this particular goal." An average run completes in about four minutes.

What changed most is how the suite behaves when the product moves. On earlier tooling, a UI shift meant changing the whole test suite, which Dima calls the time-consuming kind of flakiness, the kind a rerun cannot fix.

"I can see from the recordings that the agent sometimes takes a different path if the UI has changed, or there is a new pop-up. The test can adapt to it, and we're not seeing those types of flakiness."

He is deliberate about what remains. The content editor, one of the most complicated areas of Novu, still produces the occasional combination that passes one day and fails the next. But the class of flakiness that used to force rewrites is gone, and by Dima's estimate flaky tests across the suite have dropped by half. What is left can be rerun instead of rebuilt.

Use case 02

Dynamic tests on every pull request

The capability Novu could not get before is the dynamic PR flow. When a pull request goes up, TesterArmy plans and runs tests against it before the merge. For the team, the runs are "another layer of confidence when shipping changes, especially ones touching the dashboard." Novu had tried to build the same flow with Cursor's cloud agents, which produce a similar video of a computer-use session, but in Dima's words the setup didn't nail it in the end.

The difference Dima points to is where the tests run: "TesterArmy runs against the live staging environment, not a local copy of the codebase, which gives a different angle of confidence." His ballpark for the effect is about 30 percent faster time to merge. He volunteered the caveat himself: nobody at Novu tracks it, and the number is what the added confidence amounts to in practice.

Use case 03

Real sign-ups without auth mocks

The other thing that removed a whole category of work is authentication. Novu used to mock or bypass parts of its auth flow so tests could get in. Now TesterArmy signs up as a real user and handles verification itself. "Previously we had to do a lot of hacks for things like OTP codes. It worked out of the box with TesterArmy, and it removed all of this complexity from our side."

NovuFast facts
Segment
Open source communication infrastructure
Team
~15 people, ~450 open source contributors
Previous QA stack
Cypress, then Playwright run by an outsourced QA service
TesterArmy solutions used
Web TestingPR Testing
About Novu

Novu is the open source communication infrastructure for products and AI agents. It notifies users across in-app, email, SMS, push, and chat, and increasingly lets users talk back to agents: a notification goes out over Slack, the user replies, and an agent picks up the response end to end. Thousands of businesses run Novu's cloud, and an uncounted number self-host the open source edition.

[05] The results

Fewer flakes, faster merges, full visibility

Both headline numbers are Dima's own estimates, and he is upfront that Novu does not formally track either. What the team sees every day is the mechanism behind them: tests that adapt instead of breaking, pull requests that carry their own test runs, and a recording of every run instead of work happening behind the scenes.

  • Flaky testsWith the outsourced serviceA UI change could invalidate whole test cases, with rewrites routed through the vendorWith TesterArmyTests adapt to UI changes on their own; what remains is rare and rerunnableCut in half
  • Time to mergeWith the outsourced serviceUI changes shipped without dedicated pre-merge testsWith TesterArmyDynamic tests run on every pull request before merge~30% faster
  • Adding or changing testsWith the outsourced serviceBigger changes went through Slack requests to the vendorWith TesterArmySelf-serve, written in plain languageNo round-trips
  • Visibility into test runsWith the outsourced serviceWork happened behind the scenesWith TesterArmyA recording of every run and every path the agent tookFull replay
  • Authentication in testsWith the outsourced serviceMocks and hacks for OTP codesWith TesterArmySigns up and logs in as a real userOut of the box
MetricWith the outsourced serviceWith TesterArmyImpact
Flaky testsA UI change could invalidate whole test cases, with rewrites routed through the vendorTests adapt to UI changes on their own; what remains is rare and rerunnableCut in half
Time to mergeUI changes shipped without dedicated pre-merge testsDynamic tests run on every pull request before merge~30% faster
Adding or changing testsBigger changes went through Slack requests to the vendorSelf-serve, written in plain languageNo round-trips
Visibility into test runsWork happened behind the scenesA recording of every run and every path the agent tookFull replay
Authentication in testsMocks and hacks for OTP codesSigns up and logs in as a real userOut of the box

The flaky-test and merge figures are Dima's own estimates, from the interview of 2026-08-26; Novu does not formally track them.

Next on Dima's list is production: the same smoke tests, so far blocked by Novu's own client-side security policies. He also wants dynamic runs scoped to what a change touches, the blast radius as he calls it, so a big suite never has to run whole. That second wish is already on TesterArmy's roadmap.

"As an engineering industry, we are moving an abstraction layer up. With testing it didn't happen yet, and TesterArmy is doing right that: moving one layer of abstraction up and focusing on user flows versus dealing with selectors."

Dima Grossman
Dima GrossmanCofounder & CTO, Novu
[06] Key takeaways

What Novu's switch says about QA services

  • 01A service can hide the system.Outsourcing test maintenance worked, and it was never the complaint. Novu switched to regain visibility into what runs and the ability to change the tests without a round-trip.
  • 02Auth is the real setup wall.The wow moment was watching the agent sign up as a real user with almost no guidance, because setting up users, credentials, and login has always been the hardest part of end-to-end testing.
  • 03The expensive flakiness is the rewrite kind.A flake you can rerun costs a click, and a flake caused by a changed UI used to cost a suite rewrite. Adaptive tests removed the second kind, and the halving came from there.
  • 04Testing is moving an abstraction layer up.Engineering left bits and bytes for higher-level abstractions years ago. Describing user flows in plain language instead of maintaining selectors is the same move, finally applied to QA.
[07] Contact us

Want a QA engineer working beside you?

TesterArmy signs into your product like a real user, runs plain-language user flows against your live environments, and tests every pull request before it merges. If your QA runs through a service you cannot see into, do what Novu did and give TesterArmy a spin.

Book a demoStart a free trial
XLinkedInDiscord
TesterArmyTesterArmy

AI-powered QA testing for modern teams. Ship faster with confidence.

SOC 2 Type 2 badge
GDPR badge

© 2026 TesterArmy, Inc.

Solutions
  • AI app testingAI app testing
  • EcommerceEcommerce
  • Expo app testingExpo app testing
  • MobileMobile
  • Production monitoringProduction monitoring
  • React Native testingReact Native testing
  • WebWeb
  • WordPress testingWordPress testing
Quick links
  • HomeHome
  • DemoDemo
  • FeaturesFeatures
  • How it worksHow it works
  • FAQFAQ
  • PricingPricing
  • Get a demoGet a demo
  • About usAbout us
  • Contact usContact us
Resources
  • DocumentationDocumentation
  • Migrate to TesterArmyMigrate to TesterArmy
  • BlogBlog
  • Customer storiesCustomer stories
  • Novu case studyNovu case study
  • API referenceAPI reference
  • Getting startedGetting started
Legal
  • Privacy policyPrivacy policy
  • Terms of serviceTerms of service
TesterArmyTesterArmy
  • Customers
  • Pricing
Sign inGet started
Quick links
  • HomeHome
  • DemoDemo
  • FeaturesFeatures
  • How it worksHow it works
  • FAQFAQ
  • PricingPricing
  • Get a demoGet a demo
  • About usAbout us
  • Contact usContact us