软件测试中的白盒测试分析

2018-03-17 06:05淡海英
时代农机 2018年11期
关键词:白盒源代码测试用例

淡海英

(陕西国防工业职业技术学院,陕西 西安 710300)

1 白盒测试概述

白盒测试是软件测试的一种。白盒测试把测试对象看做一个透明的盒子,测试人员必须了解程序的内部结构和处理过程,相比于功能测试的黑盒测试而言,白盒测试是结构测试,被测对象是源代码,以程序的内部逻辑为基础设计测试用例。但是对于程序本身的逻辑错误白盒测试却无能为力,尤其是需求规格说明书里要求但未实现的部分白盒测试更是无法进行测试。

2 白盒测试的方法和实施步骤

白盒测试的方法有三种,一是程序结构分析,根据源代码可以首先绘制程序的流程图,然后根据流程图分析程序的结构。二是逻辑覆盖方测试,根据程序的内部结构,对所有的路径进行测试,是一种穷举路径的测试方法。三是基本路径测试,根据程序的逻辑判断,分析程序中的路径,再进行用例的设计。白盒测试是软件测试中比较重要的一种测试方法,可以分为四个步骤实施,第一步,撰写测试计划。根据需求说明书,制定软件测试的进度,确定人员、范围、技术、风险等,形成测试计划或测试方案。第二步,撰写测试用例。根据源代码及其分析,按照一定规范化的方法进行软件结构划分,并进行测试用例的设计,形成测试用例表。第三步,执行测试用例。按照之前写好的测试用例,进行系统测试的执行,并且记录测试结果,形成缺陷表和缺陷报告。第四步,撰写测试总结。将前期的测试工作做总结,分析用例的数量、发现的高、中、低缺陷数,评价本系统,形成完整的总结报告。

3 白盒测试中的逻辑覆盖测试

白盒测试总体上分为两大类,分别是静态方法和动态方法。静态分析是指按一定的步骤直接检查源代码的方法,包括代码的分析、代码审查、代码走查,最主要的特点是不实际运行程序。动态分析是指按一定的步骤生成测试用例并运行程序来发现错误,包括逻辑覆盖测试。逻辑覆盖测试是程序内在逻辑结构为基础的测试。包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖六种测试。语句覆盖是指设计足够多的测试用例,使得所有的语句都被至少执行一次。判定覆盖是设计足够多的测试用例使程序中的每个判定为真和为假的值都执行一次,判定覆盖的覆盖标准比语句覆盖稍微强一些。判定覆盖不仅满足了判定覆盖,还满足了语句覆盖,所以它比语句覆盖率高。但它的缺点仍然是无法发现程序段中存在的逻辑性判定错误,判定/条件覆盖是指设计足够多的测试用例,使得判定中的每个条件为“真值”和“假值”至少执行一次,也使得每个判定为“真值”和“假值”时至少执行一次。条件组合覆盖是指设计足够多的测试用例,使得每个判定中条件的各种可能组合都至少执行一次。路径覆盖是指设计足够多的测试用例,使程序的每条可能路径都至少执行一次,如果程序图中有循环,则要求每个循环至少执行一次。路径覆盖是覆盖度最高的,可以覆盖程序中所有可能的路径。

4 结语

白盒测试是软件测试中常用的测试方法,需要测试人员熟悉程序的内部和代码,通过掌握六种不同的测试方法对测试对象进行测试,从而发现程序中的缺陷,六种覆盖方法各有利弊,实际测试时可以采用多种方法对程序进行测试。

猜你喜欢
白盒源代码测试用例
面向未来网络的白盒交换机体系综述
基于TXL的源代码插桩技术研究
DWB-AES:基于AES 的动态白盒实现方法
基于SmartUnit的安全通信系统单元测试用例自动生成
破解室内覆盖难题 中国电信首秀5G白盒小基站
网络“黑”“白”之争
软件源代码非公知性司法鉴定方法探析
基于语法和语义结合的源代码精确搜索方法
基于需求模型的航天软件测试用例生成方法
揭秘龙湖产品“源代码”