关于测试用例的粒度,虽然没有统一的标准,需要根据具体的业务及自己的经验来把握,但是还是有一些原则可以参考的,以下整理出一些参考知识点(整理自互联网),希望对大家测试工作有帮助
软件测试架构师在测试设计中除了为整个团队在测试设计的方法上提供指导外,还有一项十分重要的工作,就是控制用例粒度。
控制用例粒度
用例粒度是对测试用例是精细还是笼统地描述测试点的通俗说法。测试用例越聚焦到一个功能点上,这个功能点越小越细,用例粒度就越细;
反之,如果一个测试用例包含了比较多的功能点,这个测试用例的用例粒度就会比较粗。
一般说来,用例粒度细的测试用例,更容易发现产品在设计上的问题,但是如果整个测试团队的用例粒度都很细,那么需要测试的测试用例就会比较多,给测试进度、测试投入和测试用例的编写与维护等带来不少问题。
而用例粒度粗的测试用例,更容易发现产品在系统上、设计上、功能交互上和需求方面的问题,但是如果整个测试团队的用例粒度都很粗,虽然测试用例的数目可能会少很多,但我们又有可能漏掉很多功能设计上的细节问题,影响产品质量。
所以对软件测试架构师来说,控制用例粒度,绝对是在测试设计中非常重要的一项工作。
控制用例粒度,意味着我们要做以下两件事。
第一,我们希望整个团队的测试用例的总数维持在一个比较合理的范围内,同时很好地达到测试验证产品的效果,这就需要我们控制测试用例的源头——测试点:让测试点不要过粗或者过细。
如果测试点过粗或过细,我们就要去拆分或者组合它,保证设计岀来的测试用例粒度比较统一。
这时我们使用四步测试设计法的优势就淋漓尽致地展现出来了:对这些拆分或组合后的测试点,我们还可以找到适合的测试点类型,还能够找到合适的测试设计方法,如图4-64所示。
这也使得我们的测试设计变得更为灵活、更有技巧性。
第二,不同的用例粒度,可能会发现产品不同层次的问题(细粒度的用例可能更容易发现产品功能的设计和实现方面的问题,而粗粒度的用例可能更容易从系统的角度去发现一些功能交互或是需求方面的问题),
所以我们需要在不同的测试阶段,对测试点进行一些拆分或组合,以求可以从不同的层次去测试产品,发现问题,见表4-53。
策略覆盖
还有一种控制测试用例粒度的方法,就是策略覆盖。
在测试设计时,我们经常会遇到这样的情况:
□有些因子,如操作系统、平台等,除了那些可以分析到的对系统有影响的地方之外,对系统的其他功能可能没有影响、影响很弱或者影响未知,没有必要使用Pairwise来进行正交。
□有些数据类的测试点,比如就是测试一个名称,测试点比较细,但是它和其他的测试点可能没有关系或者关系很弱,也没有必要使用Pairwise来做正交。
这时我们就可以考虑使用策略覆盖的方式,将这些因子或数据的取值,分配到其他测试用例中,作为其他测试用例的测试数据输入或者是测试条件(或预置条件)。
例如,对第一种情况,假设“因子A”有4个因子值,见表4-54。
我们已经通过流程、参数、数据或组合的测试设计方法,得到了6个测试用例,见表4-55。
我们将“因子A”作为预置条件,分配到这6个测试用例中,见表4-56。
对第二种情况,假设“数据B”使用等价类和边界值分析后,得到4个测试数据,见表4-57。
我们将“数据B”作为测试输入数据,分配到这6个测试用例中,见表4-58。
需要特别说明的是,上面在“分配”因子或数据的时候,使用的是“轮询”的方式,即按照“Al”“A2”“A3”“A4”“A1”……的顺序进行。在实际项目中,“轮询”方式不一定适合,我们还需要考虑:
□内容的重要性:不同的因子或数据值,它们的重要性可能不同。对重要的、优先级高的因子,我们可以加大分配量。例如,“因子A”中的“A1”重要性相对“A2”〜“A4”都要高一些,我们就可以在测试用例中多分配一些“A1”,见表4-59。
□测试执行的便利性:我们可以尽量将和这个测试用例有关的“因子”或“数据”值分配到一起,达到测试用例的时候可以“顺便”测试这个“因子”或“数据”值的效果。
最后我们来看一个实际的例子:我们还是以“PC连接WiFi”为例。
这时我们考虑“PC会使用不同的操作系统”来连接WiFi,即考虑“操作系统”这个因子,并将这个因子在“PC连接WiFi”的测试用例中进行“策略覆盖”。
举例:对“PC连接WiFi”这个功能,考虑“操作系统”后,进行策略覆盖
假设PC可以通过下述操作系统来连接WiFi:
我们要将这个因子策略覆盖到表4-60所示的测试用例中(关于这些测试用例的生成,参见4.4.7节)
我们首先来分析“操作系统”这个因子,看看不同的操作系统是否具有不同的优先级。
作为举例,我们假设“Windows7”和“Windows8”的优先级比较高。
接下来我们来考虑测试执行的便利性。
从测试时的配置顺序来看,我们会先选择是使用“首选WiFi”还是“备选WiFi”,再选择“是否要加密”,如果要“加密”,我们还要选择“加密算法”。我们可以将上述配置过程绘成一棵“树”的形式,
如图4-65所示。
然后我们选择让每种“操作系统”覆盖一个“树杈”,如图4-66所示。
其中(1)和(3)中还包含了3种加密的情况,包含的“测试用例”比(2)和(4)要多一些,我们可以将(1)和(3)
分别分配给我们分析出来的重要的操作系统:Windows7和Windows8;将(2)和(4)分别分配给相对不那么重要的操作系统:WindowsXP和MacOSX。
这样,按照上述分配策略,我们将“操作系统”这个因子在测试用例中分配,见表4-61。
END
今天的分享就到此结束了,如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!
最后基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等配套学习资源在下方公众号免费获取~