功能测试与结构测试的区别(功能测试和结构测试)
导语:功能测试与结构测试
(1)功能测试
功能测试是指在对程序进行的功能抽象的基础上,将程序划分成功能单元,然后在数据抽象的基础上,对每个功能单元生成测试数据进行测试。用这种方法进行测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为黑盒测试。
黑盒测试也称功能测试或数据驱动测 试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内 部特性的情况下,测试者在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息,并 且保持外部信息的完整性。
在功能测试中,被测软件的输入域和输出域往往是无限域,因此穷举测试通常是不可行的。必须以某种策略分析软件规格说明,从而得出测试用例集,尽可能全面而又高效地对软件进行测试。下面就说明几种功能测试的方法:
a. 等价类划分
所谓等价类,就是指某个输入域的集合,集合中的每个输入对揭露程序错误来说是等效的,把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例,这就是等价类划分方法。它是功能测试的基本方法。
b. 因果图法
因果图是一种形式语言,由自然语言写成的规范转换而成,这种形式语言实际上是一种使用简化记号表示数字逻辑图。因果图法是帮助人们系统地选择一组高效测试用例的方法,此外,它还能指出程序规范中的不完全性和二义性。
c. 边值分析
实践证明,软件在输入、输出域的边界附近容易出现差错,边值分析是考虑边界条件而选取测试用例的一种功能测试方法。所谓边界条件,是相对于输入和输出等价类直接在其边缘上,稍高于和稍低于其边界的这些状态条件。边值分析是对等价类划分的有效补充。
(2) 结构测试
结构测试是根据被测程序的内部结构设计测试用例的一类测试,又称为白盒测试。白盒测试也称结构测试 试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中 的每条通路是否都能按预定要求正确工作,而不顾它的功能。其主要方法有逻辑驱动、基路测试等,主要用于软件验证。
白盒法全面了解程序内部逻辑结构、对所 有逻辑路径进行测试。白盒法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径 数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身错误的程序。第二,穷举路径测试不可 能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。
与功能测试不同的是,结构测试涉及程序内部结构。尽管用户更倾向于基于程序规格说明的功能测试,但是结构测试能发现潜在的逻辑错误,而这种错误往往是功能测试发现不了的。它们各有利弊,常常结合使用。
本文内容由小德整理编辑!