“One does not simply automate across platforms.” — every frustrated QA ever

So here’s the deal: you’ve got a web app (App A), a desktop app (App B), and they both sip data from the same API tap. What could go wrong? Oh, only everything.

This kind of architecture sounds elegant. But when QA gets involved, it turns into a spaghetti-fueled test strategy panic.


🤯 The Core Question

Recently a software architect hit me with:

“How do we ensure proper testing coverage between our web and desktop apps?”

Translation:
“How do we test two UIs written in different tech stacks, deployed on different platforms, with the same backend, and no time?”

Answer: very carefully.


🚧 Reality Check

Automating desktop UI is like teaching a toaster to do calculus. Sure, maybe with enough duct tape, pywinauto, and pain, you can – but should you?

Let’s be honest:

  • Desktop automation is brittle.
  • It hates CI/CD pipelines.
  • And good luck debugging Electron when it hangs silently during step 3 of your test.

🔧 The Sanity Stack

Here’s what does work:

  • 🧪 Web App (App A): Automate UI flows.
  • 🔄 API: Test the data contract. Validate state and sync.
  • 🧍 Desktop App (App B): Manual tests + sanity flows + exploratory.

The API is your ally. Treat it like a contract test for both frontends.


✅ API as Source of Truth

If:

  • App A updates data via API,
  • and App B reads the same data correctly,
  • and you validated the payload in between…

Then guess what? 🎉 That’s an end-to-end test. You just skipped the flaky bits.


🧠 Bonus: Work With Devs

Ask devs for:

  • data-testid attributes in UI
  • Dev-only debug endpoints
  • Consistent identifiers

You give them clean bug reports. They give you automation handles. Everyone wins.


TL;DR

Full E2E across web and desktop is the QA equivalent of chasing unicorns with a butterfly net.

Here’s the smart approach:

  • Automate web UI (because you can).
  • Validate API behavior (because it’s shared).
  • Manually test the desktop frontend (because it’s cursed).
  • Sync with devs (because they hold the keys to automation).

No fairy tales. Just practical, risk-based QA.


Stay sharp. Test sharper.
– Karol