自动化测试

向更多的端到端测试说:“No”

在你生命中的某个时刻,你可能会想起一部你和你的朋友都想看,但后来又都后悔看了的电影。或者你还记得某次你的团队以为已经为你们的产品找到了下一个

继续阅读

测试金字塔及三种反模式

作为一名顾问,你会看到大多数人认为并不存在的一个世界。我接待的客户中,有一些客户他们构建软件产品,但从未将 QA (Quality Assurenc

继续阅读

谷歌眼中的持续交付

谷歌说: 开发速度是一项团队运动,最佳的工作流程需要模块化的架构和持续集成。 通过功能开关的方式才能尽早做特性隔离。 使用灰度部署来解决设备多样性

继续阅读

不要模拟( Mock )不属于你负责的组件!

本文将讨论如何以及在什么地方应该使用 Mock 技术来模拟第三方库或外部组件。 虽然对外部组件的模拟( Mocks )让你能够验证系统的边界,而不必真正使用外部系统

继续阅读

不要过度依赖于 Mocks!

在为代码编写测试时,通过对代码的依赖关系进行 Mock ,让测试写起来似乎更容易。 然而,过度使用 Mocks 可能带来几个问题: 让测试代码更难以理解。与直接使用代

继续阅读

lib 文件最好少使用硬编码值!

你可能会遇到这样一种情况:你的某个函数总是使用相同的一个值,那么你此时可能会定义一个常量。这是一种好的做法,因为它避免了“魔数”,并改善了代

继续阅读

测试 UI 逻辑,请使用“正门优先原则”!

针对 UI 逻辑的自动化单元测试,当然是使用“正门优先原则” ,即:尽可能使用 Public 的真实实现代码。 一个对象( Object )会有几种接口。例如,它会有一个为大多数

继续阅读

谷歌的测试工程师是如何工作,帮助开发工程师提升生产效率的

现在,越来越多的软件系统采用了「微服务架构」。尽管这种架构对于多人参与的大系统,为多个功能特性的并行开发与无停机部署提供了便利,但对整个系统

继续阅读

使用自描述性的测试方法名

在测试用例名字中可以包含测试场景和期望的结果,这有以下几个好处: 你一眼就可以看出测试意图。 如果你想了解某个类所有可能的行为,你所需要做的只是

继续阅读

自动化测试中,不得不知的替身对象

一个测试替身,是一种可以在一个测试用例中用来代替真实对象的对象,类似于特技替身代替电影中的真实演员。这些测试有时通常被称为“「Mock」(模

继续阅读