iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0

Currently, there is no universally accepted definition of Test Infrastructure.

From my perspective as an SDET, I usually think about testing engineering in terms of several related areas: Test Tools, Test Frameworks, Test Infrastructure, and Test Platforms.

For example, I use tools such as Playwright and API testing libraries to write automated test cases in my daily work.

On top of these tools, we use test frameworks to make test development more structured, reusable, and efficient.

In my previous experience, I spent a lot of time creating E2E tests for different Jira tickets and test scenarios. But this made me start thinking about a bigger question:

What is Test Infrastructure?

There is a classic article from the Google Testing Blog:

What Test Engineers Do at Google: Building Test Infrastructure

After reading this article and doing some additional research, my current understanding is:

Test Infrastructure is the engineering foundation that makes software easier to test reliably and efficiently.

It includes the tools, environments, abstractions, test dependencies, and execution mechanisms that support testing.

A good test infrastructure doesn't simply run tests — it makes software easier to test.

The Google article gives a good example of this problem. Tight coupling and insufficient abstraction made unit testing difficult, so many E2E tests had to be used as functional tests. The existing infrastructure also lacked an effective way to create and inject fakes or mocks, resulting in large, brittle tests with many external dependencies.

Instead of simply creating more E2E tests, the engineers improved the test infrastructure so that smaller tests could become more powerful, reliable, and easier to debug.

Based on this idea, I would design Test Infrastructure around several questions:

  • How can we improve debuggability?
  • How can we make test components more reusable?
  • How can we easily create and inject fakes and mocks?
  • How can we better manage and isolate test dependencies?
  • How can we reduce flakiness and improve reliability?
  • How can we reduce maintenance cost?
  • How can we reduce test execution time?
  • How can we reduce unnecessary dependency on large E2E tests?

The goal is not simply to run more automated tests.

The goal is to build an engineering foundation that makes testing faster, more reliable, maintainable, reusable, and easier to debug.


上一篇
Building an AI-Powered Test Infrastructure Platform
下一篇
Choose the SUT: Restful Booker
系列文
不只會測試:30 天用 Side Project 打造 T 型技能樹5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言