测试设计

避免写出不稳定的测试

不稳定的测试会让你的生活更加困难。您会收到失败通知,便也没什么帮助。你甚至可能因对失败已麻木而错过了一个真实的失败条件。你对代码的修改可能会

继续阅读

墨菲定律:两个功能交互,引发的一个Bug!

我经常被问到,“在你的测试生涯中,你遇到的最难忘的bug是什么?”对我来说,下面的事情是在几年前发生的一个错误。我曾领导一个支持谷歌应用引擎

继续阅读

制定测试计划需要考虑哪些方面!

创建测试计划通常是一项复杂的任务。理想的测试计划是通过应用成本效益分析和风险分析的基本原则,以最佳方式平衡这些软件开发因素来实现的: 实施成本

继续阅读

变异测试!

History 我的团队长期以来的传统是每年组织两次黑客大会( hackathons )。在黑客大会( hackathons )之前的几周,团队会收集和集思广益项目的想法,从改进测试基础设施或现有流

继续阅读

如何写好端到端的自动化测试

端到端测试就是用来测试整个系统的,即:从给这个系统输入信息开始,到获取返回的输出信息,将被测系统看作一个黑盒。 端到端测试可以捕获整个系统中出

继续阅读

仅验证与其被测行为相关的方法参数!

每个测试只应该验证一个行为,这可以使测试用例更可读,更能适应变化。 下面这段测试代码为 MockUserPrompter 的所有参数指定了精确值。一旦被测试的代码发生更改,这些

继续阅读

测试用例太 DRY 了? 应该让它们 DAMP!

下面的测试用例遵循了 DRY 原则 (“Don’t Repeat Yourself”), 它是鼓励重用,消除重复的一个最佳实践,例如, 通过抽取 helper 函数 或 通过使用循环的方

继续阅读

单元测试一定要聚焦

写测试时,应该是每个场景都应该在独自的测试用例中进行验证,它的好处在于: 逻辑更容易理解,因为在每个测试方法中需要理解的代码更少。 每个测试中的

继续阅读

要测试行为(Behaviors),不要测试方法(Methods)

在编写一个method()之后,只需编写一个测试,就可以轻松地验证方法的所有功能。但是如果你认为,测试用例与 公开方法(public metho

继续阅读

要测试 Public APIs,而不是实现细节

public API 可能被任何调用者所使用,而调用者可能会将从任意组合的参数引入到该方法中。 我们当然希望,所有的可能性都能被测试用例覆盖。 这样的话,我们就会

继续阅读