想快速又简单地编写测试用例?看这里!

如题所述

第1个回答  2022-07-13

本文适用对象

初级软件测试人员,或想开拓思路拓展测试范围、提高测试覆盖率的所有测试人员等等。

本文目的

讲述如何快速、简单、有效、有条理地编写一条测试用例,并帮助测试人员从测试用例角度拓展测试思路。

如何简单、快速地

描述(编写)一个测试用例

测试用例的目的在于指导、帮助测试人员按照既定的计划步骤执行测试,并比对测试结果与预期结果是否一致。

对于中大型软件公司而言,测试用例的管理都有既定的规范和工具,如表格管理用例、测试管理软件管理用例(如下图1所示为MeterSphere测试管理软件用例编写页面)等。

但总而言之,测试用例的内容主要不外乎3个部分:前置条件、步骤、预期结果。

那么,对于没有明确地测试管理软件的小型软件公司,或者对于测试人员而言,需要暂时快速地编写一个测试用例或记录测试过程的时候,可以怎么做呢?

推荐一个临时性的用例编写模板:GIVEN...WHEN…THEN。

让我们套用GIVEN…WHEN…THEN的模式来描述下编写用例的大致步骤:

有没有觉得很简单?

让我们再用实际案例,描述下如何用GIVEN…WHEN…THEN模板编写真实用例。以测试访问 http://www.baidu.com 链接这个用例为例1:

使用GIVEN…WHEN…THEN能够简单呈现用例前置条件、执行步骤和预期结果间的逻辑关系,并能清晰地表述一个用例。

那么,什么地方可以用GIVEN…WHEN..THEN这个模板呢?这个模板较之文档用例更为简洁,如下图2所示,对于测试用例提交故障,阐述引发故障的操作方法或故障复现方法,以及故障修复后的验证时都可以使用。

如何使用探索式场景联想法

衍生测试用例

探索式测试更多的是一种测试风格和测试思想,要求测试人员在测试过程中不断思考、发散思维,记录、修改和更新测试方法和测试用例。

场景法则是要求测试人员认真分析测试需求,了解用户使用场景,根据不同的场景进行测试。

而本文讨论的 探索式场景联想法,则是将探索式测试方法、场景法和联想法相结合,在已有测试用例的基础上衍生更多的测试用例。

那么,如何使用探索式场景联想法衍生测试用例呢?

由上一节可知,测试用例是指导测试人员在xx预知条件(场景)下,执行xx步骤,预期得到xx结论。

显而可见,通过改变测试用例的预知条件和操作步骤,则可以衍生出不同的测试用例。而这些测试用例包含不同的测试场景和不同的测试步骤。

如下图3所示,为探索式场景联想法衍生测试用例的结构脑图。

改变前置条件

测试用例的前置条件基本包括:硬件资源和软件系统两个部分。

改变前置条件可以从这几方面入手。

以上节的访问 http://www.baidu.com 链接用例1为例,改变前置条件衍生新的测试用例。由于该用例的前置条件较简单,改变前置条件只需改变浏览器类型和版本即可。

由此,衍生的部分测试用例可如下所示:

改变操作步骤

改变用例操作步骤可以从以下几方面入手:插入步骤、删除步骤、改变步骤和重复步骤。

插入步骤

如图3所示,插入步骤又可以分为插入相关联步骤和不相关联步骤。并在插入步骤中增加用户输入。

同样以用例1为例,插入步骤衍生的测试用例可如下:

删除步骤

删除步骤可以分为删除部分步骤或者删除部分步骤中的部分操作。删除部分步骤,又可以分为删除关键步骤和非关键步骤。

例如,以例1为例,删除关键步骤“点击键盘回车键“衍生新的测试用例如下所示:

改变步骤

改变步骤主要涉及步骤顺序的改变和步骤内容的改变。当测试用例具有多个步骤,且步骤间具有关联性和顺序性的时候,改变步骤顺序则会变得很有意义。改变步骤内容主要是改变步骤中用户的输入(包括数据输入、用户操作等)。

以用例1为例,改变步骤内容衍生的用例如下所示:

重复步骤

对于大多测试人员来说,衍生测试用例时更多关注点在于操作步骤的变化。

但是,对于不同的测试场景,重复相同的测试步骤,仍然具有很大的测试意义。重复步骤进行测试能够挖掘不同前置条件(场景)下的故障,亦能挖掘软件在多个重复步骤操作下潜藏的故障。

以用例1为例,重复步骤衍生的用例如下所示:

测试结论衍生测试用例

除了通过改变前置条件和操作步骤衍生测试用例外,还可以根据测试结论中的异常信息,逆推测试场景,衍生新的测试用例。

这个部分更多的需要测试人员掌握探索式测试方法,对测试过程中的软件资源监控信息、错误日志等保持警惕性,挖掘错误信息中的内容,逆推产生错误信息的原因,构建新的测试用例。

小结

本文阐述了一种可以在提交测试故障信息和验证测试故障时使用的快速测试用例编写模板,快速记录测试场景、测试步骤等关键信息。

并在此基础上,简单讲解了基于探索式场景联想法的测试用例衍生方法,可以帮助测试人员借助已有的测试用例拓展新的测试用例,扩大测试范围,提高覆盖率,挖掘更多场景下的软件故障。

转自公众号投稿: https://mp.weixin.qq.com/s/tPB9qhbaKoJX9LhcJDP3eg

相似回答