测试策略和测试方法简介

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1软件测试策略
软件测试的策略、方法和技术是多种多样的。

对于软件测试技术,可以从不同的角度加以分类:
1.从是否需要执行被测软件的角度,可分为静态测试和动态测试。

2.从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑
盒测试。

2静态方法与动态方法
所谓静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。

静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。

静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

动态方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率和健壮性等性能,这种方法由三部分组成:构造测试实例、执行程序、分析程序的输出结果。

3功能测试与结构测试
3.1功能测试/黑盒测试
功能测试是指在对程序进行的功能抽象的基础上,将程序划分成功能单元,然后在数据抽象的基础上,对每个功能单元生成测试数据进行测试。

用这种方法进行测试时,被测程序被当作打不开的黑盒,因而无法了解其内部构造,因此又称为黑盒测试。

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。

在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。

在功能测试中,被测软件的输入域和输出域往往是无限域,因此穷举测试通常是不可行的。

必须以某种策略分析软件规格说明,从而得出测试用例集,尽可能全面而又高效地对软件进行测试。

下面就说明几种功能测试的方法:
1.等价类划分
所谓等价类,就是指某个输入域的集合,集合中的每个输入对揭露程序错误来说是
等效的,把程序的输入域划分成若干部分,然后从每个部分中选取少数代表性数据
作为测试用例,这就是等价类划分方法。

它是功能测试的基本方法。

2.因果图法
因果图是一种形式语言,由自然语言写成的规范转换而成,这种形式语言实际上是
一种使用简化记号表示数字逻辑图。

因果图法是帮助人们系统地选择一组高效测试
用例的方法,此外,它还能指出程序规范中的不完全性和二义性。

3.边值分析
实践证明,软件在输入、输出域的边界附近容易出现差错,边值分析是考虑边界条
件而选取测试用例的一种功能测试方法。

所谓边界条件,是相对于输入和输出等价
类直接在其边缘上,稍高于和稍低于其边界的这些状态条件。

边值分析是对等价类
划分的有效补充。

3.2结构测试/白盒测试
结构测试是根据被测程序的内部结构设计测试用例的一类测试,又称为白盒测试。

白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能。

其主要方法有逻辑驱动、基路测试等,主要用于软件验证。

白盒法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。

白盒法是穷举路径测试。

在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。

贯穿程序的独立路径数是天文数字。

但即使每条路径都测试了仍然可能有错误。

第一,穷举路径测试决不能查出程序违反了设计规范,即程序本身错误的程序。

第二,穷举路径测试不可能查出程序中因遗漏路径而出错。

第三,穷举路径测试可能发现不了一些与数据相关的错误。

与功能测试不同的是,结构测试涉及程序内部结构。

尽管用户更倾向于基于程序规格说明的功能测试,但是结构测试能发现潜在的逻辑错误,而这种错误往往是功能测试发现不了的。

它们各有利弊,常常结合使用。

1.采用逻辑覆盖的结构测试。

逻辑覆盖又包含以下五种:语句覆盖、判定覆盖、
条件覆盖、判定与条件覆盖、路径覆盖。

2.域测试。

这是一种基于程序结构的测试方法。

这里的“域”是指程序的输入空间。

域测试正是在分析输入空间的基础上,选择适当的测试点以后进行测试的。

3.符号测试。

符号测试是基于代数运算的一种结构测试方法。

符号测试方法受分
支问题、二义性问题和大程序问题的困扰,这些问题严重地影响着它的发展前
景。

4.数据流测试。

数据流测试是指一个基于通过程序的控制流,从建立的数据目标
状态的序列中发现异常的结构测试方法。

5.定义域测试。

定义域测试的重点在分类方面,它还要判断出定义域的正确性。

定义域测试与集合理论密切相关。

6.程序变异测试。

这是一种基于程序错误的测试方法,它的目的是要说明程序中
不含有某些特定的错误。

3.3灰盒测试
实际上现在还有一个新的概念,灰盒测试。

灰盒测试介乎于黑盒测试和白盒测试之间,既关注于输出对于输入的正确性,也关注于内部的格式,但不像白盒测试那般详细、完整。

只是通过一些表征性的现象、事件和标志来判定内部的运行状态,有时候输出结果是正确的但是内部已经出现了错误,这种情况很多,如果通过白盒测试来暴露所有问题效率上可能比较低,所以才产生了灰盒测试。

相关文档
最新文档