在功能测试中,被测软件的输入域和输出域往往是无限域,因此穷举测试通常是不可行的。必须以某种策略分析软件规格说明,从而得出测试用例集,尽可能全面而又高效地对软件进行测试。下面就说明几种功能测试的方法:
a. 等价类划分
所谓等价类,就是指某个输入域的集合,集合中的每个输入对揭露程序错误来说是等效的,把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据作为测试用例,这就是等价类划分方法。它是功能测试的基本方法。
b. 因果图法
因果图是一种形式语言,由自然语言写成的规范转换而成,这种形式语言实际上是一种使用简化记号表示数字逻辑图。因果图法是帮助人们系统地选择一组高效测试用例的方法,此外,它还能指出程序规范中的不完全性和二义性。
c. 边值分析
实践证明,软件在输入、输出域的边界附近容易出现差错,边值分析是考虑边界条件而选取测试用例的一种功能测试方法。所谓边界条件,是相对于输入和输出等价类直接在其边缘上,稍高于和稍低于其边界的这些状态条件。边值分析是对等价类划分的有效补充。
(2) 结构测试
结构测试是根据被测程序的内部结构设计测试用例的一类测试,又称为白盒测试。白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。其主要方法有逻辑驱动、基路测试等,主要用于软件验证。白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。但即使每条路径都测试了仍然可能有错误。第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身错误的程序。第二,穷举路径测试不可能查出程序中因遗漏路径而出错。第三,穷举路径测试可能发现不了一些与数据相关的错误。
与功能测试不同的是,结构测试涉及程序内部结构。尽管用户更倾向于基于程序规格说明的功能测试,但是结构测试能发现潜在的逻辑错误,而这种错误往往是功能测试发现不了的。它们各有利弊,常常结合使用。
第三部分 测试策略文档范例
● 测试目的:
(1) 测试的范围,哪些功能要包括在内,哪些要排除在外
(2) 谁是客户和最终用户,谁就是测试结果的验收者
(3) 测试的次序和日程安排
(4) 验收的条件,成功因素,限制
● 资源需求:
(1) 制定计划和运行测试需要哪些技术和经验
(2) 相关人员的角色和责任
(3) 谁将对测试工作进行全盘协调
(4) 谁负责测试资料管理,版本控制,错误跟踪
● 测试环境:
(1) 用于测试的系统配置怎样
(2) 需要什么自动化工具
(3) 需要哪些测试数据(数据库和输入交易),如何安装
(4) 您如何前调系统时钟
● 测试过程:
(1) 运行测试时要遵循哪些过程(设置、执行、记录)
(2) 测试案例如何制定,其标准格式是什么
(3) 测试案例定义的覆盖要求是什么
(4) 遇到问题如何决定其严重程度,对问题如何处理