受软件测试练习的启发

我们可以学习编写自动化测试,也可以学习做tdd和bdd,但是有哪些工具/资源/指南可以告诉我们我们正在编写的实际测试是否是高质量?
存在编写高质量测试的特定标准或指南吗?
(tdd / bdd内)有哪些特定方法导致更高质量的测试?
相反,通常哪些测试是质量水平较低?

评论

当您要测试的应用程序在现场运行良好时。没有其他真实证据。

#1 楼

目的是在发现错误的同时还要花时间和金钱去做其他事情。因此,高质量的测试是发现错误的测试,但不需要花费不成比例的编写,维护或操作费用。

有时,您可以通过查看一下来判断测试是否为低质量在它。例如,如果测试是错误的或用易碎的方式编写的,因此对系统的每次更改都需要对测试进行更改,那么这就是低质量的测试。

您无法确定测试是高质量的,没有衡量测试的影响,即衡量是否发现错误。测试可以写得很好,但是如果没有发现错误,那就不是对资源的充分利用。

当然,很难事先知道测试是否将是高质量的,因为很难知道错误将在哪里。

#2 楼


低质量的测试


当我想到低质量的测试时,我想到团队错误地应用或过度应用了一种测试技术足够的信息。

我在下面提供了高质量测试的示例。


高质量测试


我不知道尽管我可以从中看到很多有价值的信息,但我不知道任何汇总的指南。

我试图通过找到有关个别测试技术的材料(阅读书籍,出版物等)并试图找出最重要的属性,来学习如何编写更高质量的测试。

由于使用了领域测试工作簿,我现在知道领域测试的最重要属性之一(也称为边界分析+等价类划分)是Power。在这种情况下,功效(也就是统计功效)是选择少量的测试(值),它们很可能导致或揭示失败。所有域测试都应该功能强大。如果不是,它们的质量就会低下并且浪费。

#3 楼

这取决于测试的种类。

高质量的单元测试具有以下特征


它们模拟和存根数据库等外部依赖项
它们运行速度快
他们测试单个功能

高质量的UI功能测试具有以下特征


它们反映了真实的用户使用情况,操作和工作流
它们不要间歇性地失败
故障代表真实的用户问题
真实的用户问题破坏了测试
它们在使用HTML元素选择器时非常可靠
它们对选择器使用Page Object方法,行为和服务

所有高质量的测试均具有以下特征


它们既可读又可作为系统文档
用于以下目的对软件的每次更改
都是可靠的
它们没有错误的肯定或否定
它们用普通的英语编写并且通常避免使用晦涩难懂的术语和缩写
它们不会测试过时的ete或已删除的功能


评论


什么被视为“一项功能”?例如。填写网络表单还是填写该表单中的单个字段?

–伴侣Mrše
18年7月4日在11:15

@MateMrše“一项功能”最适用于列表中指示的单元测试。 UI测试具有不同的优先级,尽管它们通常应该仍在测试特定的东西。在这种情况下,快乐的UI测试正在测试一件事-整个表单流程都有效。但是,悲伤的UI测试要更加具体,经常测试某个特定字段或特定形式是否按预期工作。因此,对于UI测试来说,分类有点严重地崩溃了。

–迈克尔·杜兰特(Michael Durrant)
18年7月4日在11:20