《软件工程》CH7 测 试

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
退出
8.1.1 软件测试的定义
关于测试目的,G.J.Myers给出了以下的观点:
(1)测试是为了发现程序中的错误而执行程序的 过程;
(2)好的测试方案是极可能发现迄今为止尚未发 现的错误的测试方案;
(3)成功的测试是发现了至今为止尚未发现的错 误的测试。
测试的定义:为了发现程序中的错误而执行程序 的过程。具体地说,软件测试是根据软件开发各阶段 的规格说明和程序的内部结构而精心设计出一批测试 用例,并利用测试用例来运行程序,以发现程序错误 的过程。
第八章 软件测试
8.1 软件测试的基本概念 8.2 软件测试方法 8.3 测试用例的设计 8.4 软件测试的步骤 8.5 调试 8.6 软件可靠性 8.7 测试工具
退出
8.1 软件测试的基本概念
8.1.1 软件测试的定义 8.1.2 软件测试的基本原则 8.1.3 软件测试的步骤 8.1.4 软件测试的信息流计
黑盒测试不可能实现穷尽测试:
假设有一个很简单的小程序,输入量只有两 个:A和B,输出量只有一个:C。如果计算机的 字长为32位,A和B的数据类型都只是整数类型。 利用黑盒法进行测试时,将A和B的可能取值进 行排列组合,输入数据的可能性有:232×232= 264种。假设这个程序执行一次需要1毫秒,要完 成所有的测试,计算机需要连续工作5亿年。显 然,这是不能容忍的,而且,设计测试用例时, 不仅要有合法的输入,而且还应该有非法的输入, 在这个例子中,输入还应该包括实数、字符串等, 这样,输入数据的可能性就更多了。所以说,穷 尽测试是不可能实现的。
为了降低风险,进行试运行
8.1.4 软件测试信息流
软件配置
测试配置
测试
测试结果 预测结果
评价
错误
调试
正确
错误率数据
可靠性 模型
可靠性预测
• (1) 软件配置:包括需求说明书、设计说 明书、源程序清单等开发资料
• (2) 测试配置:包括测试计划和测试方案
• (3) 测试方案:测试数据、要测试的功能、 预期结果等
1.单元测试
又称模块测试。每个程序模块完成一个相对独 立的子功能,所以可以对该模块进行单独的测试。 由于每个模块都有清晰定义的功能,所以通常比较 容易设计相应的测试方案,以检验每个模块的正确 性。
2.集成测试Biblioteka 在单元测试完成后,要考虑将模块集成为系统的过程 中可能出现的问题,例如,模块之间的通信和协调问题, 所以在单元测试结束之后还要进行集成测试。这个步骤 着重测试模块间的接口,子功能的组合是否达到了预期 要求的功能,全程数据结构是否有问题等。
黑盒测试时完全不考虑程序内部的结构和处 理过程,只按照规格说明书的规定来检查程序是 否符合它的功能要求。黑盒测试是在程序接口进 行的测试,又称为功能测试。
黑盒测试检查的主要方面有:
程序的功能是否正确或完善;
数据的输入能否正确接收,输出是否正确;
是否能保证外部信息(如数据文件)的完整性 等。
用黑盒法设计测试用例时,必须用所有可能的 输入数据来检查程序是否都能产生正确的输出。
8.2.2 白盒测试
白盒测试时将程序看作是一个透明的盒子,也就 是说测试人员完全了解程序的内部结构和处理过程。 所以测试时按照程序内部的逻辑测试程序、检验程 序中的每条通路是否都能按预定的要求正确工作。 白盒测试又称为结构测试。
利用白盒测试设计测试用例时,应包括以下三类 测试:
(1)语句测试:要求程序中的每个语句至少测 试一次;
(2)分支测试:要求程序中的每个分支至少测 试一次;
(3)路径测试:要求程序中的每条路径至少测 试一次。
白盒测试也不能实现穷尽测试:
左图所示的一个小程序 的控制流程,其中每个圆圈 代表一段源程序(或语句 块),图中的曲线代表执行 次 数 不 超 过 20 的 循 环 , 循 环 体中共有5条通路。这样,可 能 执 行 的 路 径 有 520 条 , 近 似 为1014条可能的路径。如果完 成一个路径的测试需要1毫秒, 那 么 整 个 测 试 过 程 需 要 3170 年。显然,这也是不能接受 的。
3.有效性测试
集成测试通过后,应在用户的参与下进 行有效性测试。这个时候往往使用实际数据 进行测试,从而验证系统是否能满足用户的 实际需要。
4.系统测试 系统测试是把通过有效性测试的软件,作为基 于计算机系统的一个整体元素,与整个系统的其他 元素结合起来,在实际运行环境下,对计算机系统 进行一系列的集成测试和有效性测试。 5. 平行运行
• 单元测试也叫模块测试 • 编码与单元测试一般编写人进行
• 测试重点是:重要执行通路、接口、局 部数据结构、异常处理路径、边界等
• 方法:人工测试和计算机测试
1、单元测试的内容
(1)模块接口
主要进行的测试项目有以下几方面: 所测模块的形式参数和调用该模块的实际输入参数在参数数 目、属性和顺序上是否匹配; 是否修改了只做输入用的形式参数; 输出给被调用模块的参数在数目、属性和顺序上是否正确; 全程变量的定义和用法在各个模块中是否一致。 若模块中有外部的I/O操作,还应该进行以下的测试项目: 文件属性是否正确; 打开文件语句和关闭语句是否正确; 格式说明书与输入/输出语句是否一致; 缓冲区的大小与记录长度是否匹配; 使用文件之前是否先打开了文件; 文件操作结束后是否关闭了文件; 是否进行了输入/输出错误检查并进行了相应的处理。
8.3 软件测试的步骤
8.3.1 单元测试 8.3.2 集成测试 8.3.3 有效性测试 8.3.4 系统测试
退出
8.3.1 单元测试
单元测试又称模块测试,集中对软件设 计的最小单位——模块进行测试,主要是为 了发现模块内部可能存在的各种错误和不足。
进行单元测试时,根据程序的内部结构 设计测试用例,主要使用白盒测试法。由于 各模块间相对独立,因而对多个模块的测试 可以并行地进行,以提高测试效率。
8.1.2 软件测试的基本原则
(1)尽早地、不断地进行软件测试。 (2)设计测试用例时,要给出测试的预期结果。 (3)开发小组和测试小组分开。 (4)要设计非法输入的测试用例。 (5)在对程序修改之后要进行回归测试。 (6)程序中尚未发现的错误的数量往往与在该 段程序中已发现的错误的数量成正比。
8.1.3 软件测试的步骤
8. 2 软件测试方法
8.2.1 黑盒测试 8.2.2 白盒测试
退出
8.2.1 黑盒测试
任何产品都可以使用以下两种方法进行测试: (1)如果已知产品的功能,则可以对它的每 一个功能进行测试,看是否都达到了预期的要求; (2)如果已知产品的内部工作过程,则可以 对它的每种内部操作进行测试,看是否符合设计 要求。 第一种方法是黑盒测试,第二种方法是白盒 测试。
相关文档
最新文档