Skip to main content
Software Engineering Daily

The State of Browser Testing

52 min episode · 2 min read
·
David Burns

Episode

52 min

Read time

2 min

Topics

Productivity, Startups, Design & UX

AI-Generated Summary

Key Takeaways

  • ✓Critical Path Testing: Maintain exactly one browser test per critical path rather than building large overlapping test suites. Multiple tests covering the same flow add compute time without proportional safety gains — browsers function as full operating systems, making each startup expensive. One focused test per path keeps suites fast, maintainable, and cognitively manageable for engineering teams.
  • ✓Test Pyramid Shape: Avoid the "testing hourglass" pattern where unit tests and end-to-end tests are abundant but integration tests are sparse. Component-level testing in frameworks like React and Vue has pushed teams toward this anti-pattern. Push coverage as low in the stack as possible, reserving browser tests strictly for paths that cannot be validated elsewhere.
  • ✓Observability Integration: Inject OpenTelemetry trace headers into browser and mobile tests at the network layer to follow a single request from UI interaction through the entire backend stack. This approach, already achievable without spec changes, lets engineers replay exact failure conditions by resubmitting the same form data with the original trace context rather than reconstructing failures from logs.
  • ✓AI and Vibe Coding Risk: AI-generated code reaching production without security review creates compounding risk, particularly around authentication checks, exposed API keys, and unguarded database access. Junior engineers using AI heavily before internalizing security fundamentals are most vulnerable. Burns recommends treating AI as a review tool for junior developers rather than a primary code generation engine.
  • ✓Open Source Supply Chain Risk: Companies relying on open source tooling without contributing financially or technically expose themselves to maintainer burnout and deliberate sabotage — a real pattern seen when a Node.js package maintainer poisoned and deleted widely-used packages after requests for financial support went unanswered. Dedicated open source roles reduce this risk while also providing direct access to browser vendor engineering teams for bug prioritization.

What It Covers

David Burns, head of developer advocacy at BrowserStack and longtime Selenium/WebDriver contributor, covers how browser automation standards emerge through W3C collaboration, practical philosophies for structuring test suites, the risks AI-generated code introduces to production systems, and connecting observability tools like OpenTelemetry directly to browser test traces.

Key Questions Answered

  • •Critical Path Testing: Maintain exactly one browser test per critical path rather than building large overlapping test suites. Multiple tests covering the same flow add compute time without proportional safety gains — browsers function as full operating systems, making each startup expensive. One focused test per path keeps suites fast, maintainable, and cognitively manageable for engineering teams.
  • •Test Pyramid Shape: Avoid the "testing hourglass" pattern where unit tests and end-to-end tests are abundant but integration tests are sparse. Component-level testing in frameworks like React and Vue has pushed teams toward this anti-pattern. Push coverage as low in the stack as possible, reserving browser tests strictly for paths that cannot be validated elsewhere.
  • •Observability Integration: Inject OpenTelemetry trace headers into browser and mobile tests at the network layer to follow a single request from UI interaction through the entire backend stack. This approach, already achievable without spec changes, lets engineers replay exact failure conditions by resubmitting the same form data with the original trace context rather than reconstructing failures from logs.
  • •AI and Vibe Coding Risk: AI-generated code reaching production without security review creates compounding risk, particularly around authentication checks, exposed API keys, and unguarded database access. Junior engineers using AI heavily before internalizing security fundamentals are most vulnerable. Burns recommends treating AI as a review tool for junior developers rather than a primary code generation engine.
  • •Open Source Supply Chain Risk: Companies relying on open source tooling without contributing financially or technically expose themselves to maintainer burnout and deliberate sabotage — a real pattern seen when a Node.js package maintainer poisoned and deleted widely-used packages after requests for financial support went unanswered. Dedicated open source roles reduce this risk while also providing direct access to browser vendor engineering teams for bug prioritization.

Notable Moment

Burns describes how the WebDriver specification team nearly failed to solve a deceptively simple problem: defining what "visible" means when a user clicks an element. CSS z-index, DOM layering, and overlays make pixel-by-pixel checks unreliable, and resolving this without accidentally attempting to solve the halting problem consumed significant standardization effort.

Know someone who'd find this useful?

Episode Transcript

Are you passionate about software development and the tech industry? Software Engineering Daily is looking for a new podcast host to grow its hosting team. In this role, you'll help shape the show's editorial direction and interview engineers, founders, hackers, and tech leaders. Podcasting experience is a plus, but not required. Curiosity, great communication skills, and a genuine interest in the craft of building software are what matter most. If this sounds like you, reach out at editor@softwareengineeringdaily.com. Automated browser testing is a foundational technology that many web developers rely on. Modern tooling lets a single test drive Chrome, Firefox, and Safari the same way, a triumph of software engineering built on years of standardization work. That standardization emerged from the interplay between open source projects, browser vendors, and standards bodies like the W3C. David Burns is a longtime Selenium and WebDriver contributor, a veteran of Mozilla, and is currently the head of developer advocacy and open source at BrowserStack. In this episode, David joins Josh Goldberg to discuss how open source projects, browser vendors, and standards bodies fit together, a practical philosophy of testing built around one solid test per critical path and the risks that AI and vibe coding introduce to web development. This episode is hosted by Josh Goldberg, front end developer at Sentry and open source maintainer. Josh works on projects in the TypeScript ecosystem, most notably TypeScript ESLint, a powerful static analysis toolset for JavaScript and TypeScript. Josh is also the author of the O'Reilly Learning TypeScript book, a Microsoft MVP for developer technologies, and a cofounder of SquiggleConf, a conference for excellent web developer tooling. Find Josh on Blue Sky, Fostadon, and .com as Joshua k Goldberg. With me today is David Burns, head of developer advocacy and open source at BrowserStack. David, welcome to Software Engineering Daily. Thanks for having me, Josh. I'm really excited to be here. Yeah. We're excited to talk with you. You've got a lot of cool stuff to talk about, developer advocacy and Selenium and WPC and open source. But before we get into all of that, tell us, how did you get into tech? So I was born and raised in South Africa. I went to university there. Then when I was at university I was studying computer science and industrial psychology, which I know is kind of slightly weird and wonderful. But my idea then is because I couldn't make up my mind if I wanted to be in tech or a psychologist. And then moved to The UK to kind of just do a bit of traveling. Got a really cool job at a bank which was doing kind of process reengineering. And then I was like, oh this is kind of cool. Learned about process automation and then started at a startup in Southampton which is on the South Coast. I was their QA hire, they'd never had QA before and they were like we need to fix our things and we need automation …

Get the full transcript (9,404 words) + summary by email — free

One-time email with the complete transcript and AI summary of this episode. No account needed.

One email, no spam. We’ll also show you what SignalCast does.

Browse all Software Engineering Daily transcripts →

You just read a 3-minute summary of a 49-minute episode.

Get Software Engineering Daily summarized like this every Monday — plus up to 2 more podcasts, free.

Pick Your Podcasts — Free

Keep Reading

Books, tools, and gear mentioned in this episode

SignalCast may earn commission on purchases via these links.

Tools

  • “Component-level testing in frameworks like React and Vue has pushed teams toward this anti-pattern”
  • “SPONSORS [Fingerprint]”
  • “David Burns, head of developer advocacy at BrowserStack and longtime Selenium/WebDriver contributor”
  • “SPONSORS [GuardSquare]”
  • OpenTelemetryRecommended
    “connecting observability tools like OpenTelemetry directly to browser test traces. Inject OpenTelemetry trace headers into browser and mobile tests at the network layer”
  • “Component-level testing in frameworks like React and Vue has pushed teams toward this anti-pattern”
  • “SPONSORS [Deepgram]”

company

  • “how browser automation standards emerge through W3C collaboration”
  • “David Burns, head of developer advocacy at BrowserStack”

More from Software Engineering Daily

We summarize every new episode. Want them in your inbox?

Similar Episodes

Related episodes from other podcasts

Explore Related Topics

This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.

Read this week's Startups & Product Podcast Insights — cross-podcast analysis updated weekly.

You're clearly into Software Engineering Daily.

Every Monday, we deliver AI summaries of the latest episodes from Software Engineering Daily and 192+ other podcasts. Free for one show.

Start My Monday Digest

No credit card · Unsubscribe anytime