APP下载

逻辑覆盖在软件白盒测试中的应用

2018-11-26朱立一

商情 2018年45期

朱立一

【摘要】软件测试作为软件质量保证的重要手段备受关注。逻辑覆盖测试技术成为了白盒测试的主要方法,本文详细阐述了各种逻辑覆盖方法,通过案例分析说明了各目的优缺点。

【关键词】白盒测试 逻辑覆盖 测试原则

1.引言

随着软件产业的蓬勃发展,软件质量成为了计算机软件备受关注的焦点。软件测试成为了保证软件质量的重要手段,为软件的正确性、健壮性、可维护性等提供了技术支持。软件测试是利用测试工具,选择测试方法,按照测试计计划,通过执行测试用例,对软件功能和性能进行检测。软件测试从软件的透明性上分为白盒测试和黑盒测试。白盒测试,以程序内部结构为基础,在程序流程图的框架下,检测程序源代码的执行情况和正确性。[1]

白盒测试的主要方法有程序结构分析、程序逻辑覆盖、基本路径测试等。其中逻辑覆盖在白盒测试起到了重要作用。

2.逻辑覆盖技术

根据覆盖测试的目标不同,逻辑覆盖分为语句覆盖、判定覆盖、判定一条件覆盖、条件组台覆盖和路径覆盖。

(1)语句覆盖:设计多个测试用例,执行被测程序,使得每一条执行语句至少执行一次。又称为点覆盖,只针对每一条语句,忽略了程序的逻辑性,其逻辑覆盖性最低。

(2)判定覆盖:设计多个测试用例,执行被测程序,使得程序中每个判断的真假都至少执行一次。又称为分支覆盖,只保证每条分支都执行了。逻辑覆盖性强与语句覆盖。

(3)条件覆盖:设计多个测试用例,执行被测程序,使得程序中判断的组成条件的真假都至少执行一次。只针对每个条件的结果的真假均出现,其不一定能够满足判断覆盖的准则。

(4)判定一条件覆盖:设计多个测试用例,执行被测程序,使得程序中判断的每个条件的真假都至少执行一次,每个判断的真假也至少执行一次,要求每个判断的所有条件真假出现的组合均执行一次。

(5)条件组合覆盖:设计多个测试用例,使得被测程序中每个判断的所有条件取值至少执行一次。相当于对所有条件取值进行笛卡尔积,只针对每个判断,不存在交叉组合。

(6)路径覆盖:构造从源节点到汇节点的路径集合,设计多个测试用例,使得每一条路径至少执行一次。[2]

3.案例分析

本文构造程序数据流程图,如图I所示。有两个判断语句,判断1:条件1&&条件2,判断2:條件3!!条件4,通过设计测试案例来说明各种逻辑覆盖的优缺点。测试用例如图2所示:

从上述测试用例中,可以看出语句覆盖只从源代码角度考虑每条语句的执行,而判定覆盖关注每个判断结果的真假,而不去关心语句的执行;条件覆盖关注每个条件的真假情况是否都出现,而忽视了判断结果的真假以及语句是否执行;判断一条件覆盖关心每个判定和条件的真假情况,但是忽视条件的所有组合;条件组台覆盖将所有的条件组合情况全部融合,但是随着条件的增加,需要的测试用例数量会出现几何增加。[3]

4.结语

白盒测试关心程序的内部结构,强调程序的逻辑结构,逻辑覆盖成为了白盒测试的重点。本文利用多个测试用例来说明各种逻辑覆盖的特点,为程序员进行测试提供一定的指导价值。

参考文献:

[1]赵翀,孙宁.软件测试技术一基于案例的测试[M],机械工业出版社,2011

[2]古乐,史九林.软件测试技术概论[M],清华大学出版社,2004

[3]赵斌.软件测试技术经典教程[M],科学出版社,2007