动态软件测试中的白盒测试和黑盒测试探讨
2018-05-17余慧敏徐白周楷林李芳芳
余慧敏,徐白,周楷林,李芳芳
(上海航天电子技术研究所,上海,201109)
1 黑盒测试方法简介
黑盒测试又被称为功能测试、数据驱动测试或基于软件需求规格说明的测试,是通过使用整个软件或某种软件功能来严格的测试,而并没有通过检查程序的源代码或者很清楚的了解该软件的源代码程序具体是怎么设计的[1]。在黑盒测试时,软件测试员只需知道软件要做什么而无法看到盒子里面的软件是如何运行的。只要进行一些输入,就能得到某种输出结果[2]。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。黑盒测试方法主要有等价类划分法、边界值分析法、因果图、错误推测法等。
2 白盒测试方法简介
白盒测试也称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是通过程序的源代码进行测试而不使用用户界面。它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定去正常进行,按照程序内部的结构测试程序,来检验程序中的每条通路是否都能按预定要求正确工作,动态白盒测试的测试方法主要有逻辑驱动、基路测试等。
3 黑盒测试方法与白盒测试方法的区别
软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试。
软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序的所有逻辑路径进行测试,通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试。白盒测试主要是想对程序模块进行检查[3]。
4 黑盒测试方法与白盒测试方法的应用
黑盒测试:设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年12月,并规定日期由6位数字字符组成,前面4位表示年后面2位表示月。首先划分有效等价类和无效等价类(如表1所示),然后根据等价类设计测试用例(如表2所示)。
表1 等价类表
表2 测试用例表
白盒测试:如有如下C语言程序段,可以使用基本路径法保证每条路径至少执行一次。
if(a>b)
{c=1;}
else if(a==b)
{c=0;}
else
{c=-1;}
printf(“%d ”,c);
该程序段有3条独立路径,根据独立路径设计的3个测试用例如下表3所示。
表3 测试用例表
5 黑盒测试方法与白盒测试方法在航天型号测试中的应用
黑盒测试:某型号火力控制软件要求最多接收指控系统8批精跟目指和8批粗跟目指给跟踪制导雷达,超过额度则不响应;通过指控系统发送如下表4中的跟踪制导雷达粗跟数和精跟数查看软件是否正常响应。
表4 等价雷表
表5 测试用例表
白盒测试:某型号抗干扰软件速度欺骗干扰判决功能,要求当航迹数大于1时将速度欺骗干扰标志置1,当航迹数为1或0时速度欺骗干扰标志置0。该功能有2条独立路径,根据独立路径设计的2个测试用例如下表6所示。
图1 流程图
表6 测试用例表
6 结论
白盒测试和黑盒测试是软件测试中两种不同的测试方法。黑、白盒测试有着本质区别,又是互相联系、相辅相成的。它们从不同的角度进行分析设计,各有重点。在现代测试理念中常将这两种方法交叉使用,以达到更好的测试效果,使应用系统更加完善,产品的质量更高。
参考文献
[1]杨海成.航天型号软件工程[M].中国宇航出版社,2011:100-102.
[2]张小松,王钰,曹跃.软件测试[M].机械工业出版社,2014:35-37.
[3]龚昌.浅谈白盒测试与黑盒测试在软件测试中的应用[J].信息与电脑.2011(1).