简介

对于代码的单元测试,可以笼统的分为黑盒测试和白盒测试两部分。

一、黑盒测试

黑盒测试又称功能测试或者基于需求的测试。

主要的测试方法包括边界值分析法、等价类划分法、错误推断法等

  • 边界值分析法:根据以往经验,大多数问题发生在数据的边界处。使用该方法需要,第一:确定测试单元输入信号的边界值;第二:用正等于边界值、略小于边界值、略大于边界值编写测试用例进行测试。
  • 等价类划分法:把输入信号的范围分为若干子集,在每个子集中选取有少量有代表性的数据编写测试用例
  • 错误推断法:根据经验分析,那些场景或者工况容易产生问题,针对性的设置用例进行测试

黑盒测试过程中边界值分析法是必不可少的,也是查找问题能力最强的。其次可以辅助使用等价类划分法编写一些用例。最后使用错误推断法补充一些用例。

二、白盒测试

白盒测试又称结构测试或者逻辑驱动的测试。

在白盒测试又分为静态分析和动态分析两类。
静态分析是指不运行待测试的程序,通过代码检测、静态结构分析等通过工程师的逻辑思维去检查代码是否存在问题的方法。
动态分析是指运行待测试程序进行测试的方法统称。

白盒测试的目的:

  • 对程序模块的所有独立的执行路径至少测试一次
  • 对所有的逻辑判定,取“真”与取“假”的两种情况都至少测试一次
  • 在循环的边界和运行界限内执行循环体
  • 测试内部数据结构的有效性等

黑盒测试和白盒测试的异同

一、测试方法不同

1、黑盒测试:功能测试,是通过测试来检测每个功能是否能正常使用。
2、白盒测试:称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。

二、测试目的不同

1、黑盒测试:将程序视为无法打开的黑盒。在完全不考虑程序内部结构和内部特征的情况下,在程序界面进行测试,只检查程序功能是否按照要求规范规定正常使用,程序是否能适当接收输入数据,产生正确的输出信息。
2、白盒测试:通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试。在程序的不同部位设置检查点,检查程序的状态,确定实际运行状态是否与预期状态一致。

三、测试原则不同

1、黑盒测试:从用户的角度,从输入数据与输出数据的对应关系进行测试。显然,如果外部特部特征本身的设计有问题或规格规定有误,就找不到黑盒测试。
2、白盒测试:一个模块中的所有独立路径至少测试一次。所有逻辑值都需要测试true和false两种情况。

黑盒测试是通过测试来检测每个功能是否能正常使用。在测试中,程序被认为是一个无法打开的黑盒子,在程序接口中测试,完全不考虑程序的内部结构和内部特征,只检查程序功能是否正常使用,程序是否能适当接收输入数据,产生正确的输出信息。黑盒测试侧重于程序的外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能。

从用户的角度来看,黑盒测试是从输入数据和输出数据之间的相应关系开始的。显然,如果外部特征本身的设计有问题或规格规定错误,则无法找到黑盒测试方法。
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法。盒子是指被测软件。白盒是指盒子是可视的,即知道盒子内部的东西以及它们是如何工作的。
“白盒”;全面了解程序内部逻辑结构,测试所有逻辑路径。”白盒”;方法是穷举路径测试。在使用该方案时,测试人员必须检查程序的内部结构,从检查程序的逻辑入手,得到测试数据。通过程序的独立路径数是天文数字。