软件的黑盒测试方法解析与优化
作者:网络转载 发布时间:[ 2012/11/8 10:16:57 ] 推荐标签:
2.3 基于需求的测试优先化方法
优先化方法一般基于以下四个优先化因子:
(1)用户指派优先权(CP)是一个需求对于用户的重要性的度量,由用户为每项需求指派范围从1~10的值,值越高,优先权越高;
(2)需求易变率(RV)表示基于一项需求在开发周期中被修改的次数,是对需求变更的估计;
(3)执行复杂性(IC)是从开发团队的角度对需求实现难易程度的主观度量。一般按每项需求可接受的实现难易度给出一个1~10之间的值,值越大,所可能包含的缺陷数越多;
(4)需求缺陷倾向(FP)可帮助开发团队从软件以前多个版本收集的数据发现易出错的需求,并找出实现这些需求的代码。缺陷倾向越大的模块,造成域失效的可能性越大。
优先化因子的收集与更新过程是:先由用户指定系统各项需求的优先权以及开发阶段需求的增加和修改;需求分析者记录需求和相关优先权,并记下需求的任何变动;接着由软件维护工程师修复缺陷,并将故障映射回受其影响的需求;开发者再对各项需求执行的复杂程度给出客观评价;测试者为每项需求编写测试用例,同时将需求映射到其测试用例并运行。后记录用例失效,并将其映射到引起该失效的测试用例。
2.4 测试用例的分布策略
一般而言,针对一个软件的测试用例集是不可能穷尽的,只能根据各种原则选择部分典型的用例进行测试。特别是对于一些大型软件,终可能需要数以万计的测试用例来对其进行测试,在测试用例设计之前大量的测试用例该如何进行分布才能达到相对更好的测试效果呢?
(1)基于矩阵的首次分布策略
理论上,程序规模与测试用例的数量并非线性关系,因为程序规模越大,复杂度越高,关联因素也越多,所以,对软件来说,这并不是单纯行数的增长。但是在工程中,为了便于实际操作,大多会简单将它们假设为线性关系。
为了把握好测试用例数目的合理分布,可采用矩阵式首次分布预测法进行分布。表1所示是以软件子功能作为矩阵的行,以功能测试的基础测试观点作为矩阵的列给出的矩阵法示意表。表1中的行列元素仅仅是举例说明。
(2)基于分析结果的再次分布策略
如果是按照上述基于矩阵的首次分布策略单纯地实施完初设计的测试用例认为测试结束,那么测试不能称之为完整的测试。而必须依据第一轮测试发现的bug的分布特征、bug的收敛趋势等分析结果来判断是否需要继续测试。在需要继续增加测试的情况下,可以采用基于分析结果的再次分布策略来确定增加部分测试用例的分布。具体实施方法是:根据功能点和基础测试观点进行bug的分布规律分析,将测试发现的bug数都正确地填写在表1的矩阵中,然后根据数字明确哪些子功能是薄弱点,哪些基础测试观点是bug多的观点,根据软件测试中的80-20规则(80%的bug集中在20%的程序代码内),对于这些交叉点提高测试用例密度,并进行增加部分的测试用例再次分布。
2.5 基于输入输出关系的综合黑盒测试方法
这是针对黑盒测试存在的问题提出的一种测试用例设计方法。根据系统规格说明和系统输入输出之间的关系等附加信息,来确定输入参数之间的覆盖和约束关系,并对参数输入域进行约减;接着对各组进行处理,对各个组合中的输入变量进行两两组合覆盖,再对各相关组的结果进行水平拼接组合。实践结果表明,该方法在不影响测试检错能力的情况下,可以有效地提高测试用例的选择效果。
利用输入输出关系对测试用例集进行约简和优化时,首先对输入输出关系自身进行约简,然后进行关联性分析,并将其划分成若干个彼此独立的相关组;接着对各相关组分别进行,可仅对每个输出涉及到的输入变量进行组合覆盖,进而利用组内元素的关联性通过公共元素进行水平拼接,后再把各个相关组的结果进行水平拼接。结果表明,改进后的方法可以产生数量少的用例集。
利用测试用例集的约简技术和优化,可以大大地缩减测试计划,降低测试成本。利用已知的输入输出关系,通过对输入输出关系自身的特点(包含和关联)进行分析来对输入输出关系进行约简和分组,然后把每个相关组视为独立的输入输出关系分别进行处理,再对每个输出所涉及的输入变量进行组合覆盖,进而利用关联性把这些组合覆盖的测试数据进行水平拼接,后再把各个相关组的结果进行水平拼接所样产生的结果不仅接近优解,而且时间复杂度也指数级下降,从而得到了较大的优化。
3、结语
为了提高软件测试的质量和效率,本文针对黑盒测试中的软件测试方法进行了分析,并根据实际操作总结出了针对黑盒测试的改进方法。实践证明,通过测试方法的优化,可使软件测试更加系统化、灵活化,其测试效率和质量都会得到明显提升。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11