软件测试方法和技术(第三版)总复习

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在程序控制流图的基础上,通过分析控制构造的环路复杂性, 导出基本可执行路径集合,从而设计测试用例。包括以下4个 步骤和一个工具方法: 1. 程序的控制流图:描述程序控制流的一种图示方法。 2. 程序圈复杂度:从程序的环路复杂性可导出程序基本路径 集合中的独立路径条数,这是确定程序中每个可执行语句 至少执行一次所必须的测试用例数目的上界。 3. 导出测试用例:根据圈复杂度和程序结构设计用例数据输 入和预期结果。 4. 准备测试用例:确保基本路径集中的每一条路径的执行。 工具方法: 图形矩阵
– 与容量测试十分相近的概念是压力测试。二者都是检 测系统在特定情况下,能够承担的极限值。 – 然而两者的侧重点有所不同,压力测试主要是使系统 承受速度方面的超额负载,例如一个短时间之内的吞 吐量。 – 容量测试关注的是数据方面的承受能力,并且它的目 的是显示系统可以处理的数据容量。
CH6软件测试自动化基础
软件测试
总复习
主要内容
• • • • • • CH1 软件测试概述 CH2 黑盒测试 CH3 白盒测试 CH4 集成测试 CH5系统测试 CH6软件测试自动化基础
CH1 软件测试概述
• 软件测试的目的和意义 • 软件测试的过程 • 软件测试与软件开发的关系
CH1 软件测试概述 软件测试的定义:
CH3 白盒测试
条件组合覆盖准则
分支—条件覆盖准则
分支覆盖准则
条件覆盖准则
语句覆盖准则
CH3 白盒测试
入口 a No (x >3)&&(z<10) b Y es 执行语句块 1 e c
(x = =4)| | (y >5) d Y es 执行语句块 2
No
执行语句块 3
出口
CH3 白盒测试


(2)基本路径测试
• 压力测试与性能测试的联系与区别:
– 压力测试是用来保证产品发布后系统能否满 足用户需求,关注的重点是系统整体; – 性能测试可以发生在各个测试阶段,即使是 在单元层,一个单独模块的性能也可以进行 评估。
– 压力测试是通过确定一个系统的瓶颈,来获 得系统能提供的最大服务级别的测试。 – 性能测试是检测系统在一定负荷下的表现, 是正常能力的表现;而压力测试是极端情况 下的系统能力的表现。
划分等价类+测试用例设计
完备性
CH2 黑盒测试 第
三 步
1.设计一新测试用例,使其 只覆盖一个无效等价类 2.重复这一步骤直到所有无 效等价类均被覆盖;
第 二 步
第 一 步
1.设计一测试用例,使其尽可能多 地覆盖尚未覆盖的有效等价类; 2.重复这一步骤,直到所有有效等 价类均被测试用例所覆盖 1.形成等价类表 2.每一等价类规定一个唯一的编号
CH6软件测试自动化基础
• 自动化测试优点
–提高测试效率 –降低对软件新版本进行回归测试的开销 –完成手工测试不能或难以完成的测试 –具有一致性和可重复性 –更好地利用资源 –降低风险,增加软件信任度
CH6软件测试自动化基础
• 自动化测试的局限性
–不能完全取代手工测试和手工测试工程师 –软件自动化测试可能降低测试的效率 –测试人员期望自动测试发现大量的新错误 –如果缺乏测试经验,测试的组织差、文档少或不 一致,则自动测试的效果比较差 –软件自动化测试工具本身的问题
输出值都罗列出来而形成的表格。 • 它能够将复杂的问题按照各种可能的情况全部列举出来, 简明并避免遗漏。因此,利用判定表能够设计出完整的测 试用例集合。
CH2 黑盒测试
条件桩
条件项
动作桩
动作项 规则
任何一个条件组合的 特定取值及其相应要 执行的操作称为一条 规则
CH2 黑盒测试
构造判定表可采用以下5个步骤: (1)列出所有的条件桩和动作桩。 (2)确定规则的个数。 (3)填入条件项。 (4)填入动作项,得到初始判定表。 (5)简化判定表,合并相似规则。
CH2 黑盒测试
• 黑盒测试是从一种从软件外部对软件实施的测试, 也称功能测试或基于规格说明的测试。 • 基本观点: – 任何程序都可以看作是从输入定义域到输出值 域的映射,这种观点将被测程序看作一个打不 开的黑盒,黑盒里面的内容(实现)是完全不知 道的,只知道软件要做什么。 – 只关心软件的输入数据和输出结果。
• 自动化测试的定义
– 自动化测试就是使用软件工具来代替手工进行的一系列动作。它具 有良好的可操作性、可重复性和高效率等特点。 – 自动化测试的目的是减轻手工测试的工作量,以达到节约资源(包 括人力、物力等),保证软件质量,缩短测试周期的效果。 – 通常是使用脚本或者其他代码驱动应用程序。这一切可以通过可视 用户界面(如浏览器)完成,也可以通过直接命令(从客户端发向 服务器,以模仿浏览器发送的命令)完成自动化测试。 – 自动化测试大都属于回归测试的范畴。
CH5 系统测试
• 性能测试:检验软件是否达到需求规格说 明书中规定的各类性能指标,并满足一些 性能相关的约束和限制条件。
– 评估系统的能力。 – 识别系统中的弱点。 – 系统调优。
• 压力测试:是指模拟巨大的工作负荷,以 查看系统在峰值使用情况下是否可以正常 运行
– 通过增加系统负载来测试系统性能的变化,并 最终确定在什么负载条件下系统性能处于失效 状态 – 反常的方式,找出性能瓶颈, – 本质:破坏程序
• 软件测试的目的和意义
– 以最少的时间和人力,系统地找出软件中潜在的各种错误 和缺陷。如果我们成功地实施了测试,我们就能够发现软件 中的错误。 – 测试的附带收获是,它能够证明软件的功能和性能与需求 说明相符合。
– 实施测试收集到的测试结果数据为可靠性分析提供了依据。
模块中 有无故 障
CH1 软件测试概述
CH4 集成测试
• 自底向上
• 优点:由于驱动模块模拟了所有调用参数,测试模块返回结 果不影响驱动模块,生成测试数据也没有困难。如果关键 模块是在结构图的底部,自底向上的测试是有优越性的。 另外自底向上的组装测试不必开发桩模块。 • 缺点:当最后一个模块尚未测试时,还没有呈现出被测软件 系统的雏形
CH1 软件测试概述
2.
软件测试过程W模型
系统安装
需求分析
需求测试
验收测试
概要设计
概要设计测试
系统构建
系统测试
详细设计
详细设计测试
模块集成
集成测试
编码
单元测试
图1.4 软件测试过程W模型
CH1 软件测试概述
• 软件测试环境的搭建 测试环境是指用来运行软件的环境。 测试环境=硬件+软件+网络+数据准备+测试 工具 搭建软件测试环境还应注意以下几点: • 尽量模拟用户的真实使用环境; • 测试环境中尽量不要安装其它与被测软件无关的 软件,但最好安装杀毒软件,以确保系统没有病 毒; • 测试环境应与开发环境独立
发现与接 口有关的 模块之间 的问题
设 计 信 息
已测 已集成的 集成测试 软件 确认测试
• 软件测试的过程
模块 单元测试
是否满足 软件需求
证明系 统性能
其 它 系 统 元 素
系统测试 已检验的 软件
向用户表明 系统可以像 用户预的那 样工作
用 户 需 求 规 范
验收测试
模块 单元测试 模块
软 件 需 求


如果判断中的条件表达式是由一个或多个逻辑 运算符 (OR, AND) 连接的复合条件表达式,则 需要改为一系列只有单条件的嵌套的判断。

独立路径:至少沿一条新的边移动的路 径
CH3 白盒测试
• • • • • • • • • • • • • • • void Sort(int iRecordNum,int iType) 1{ 2 int x=0; 3 int y=0; 4 while (iRecordNum-- > 0) 5 { 6 if(iType= =0) 7 x=y+2; 8 else 9 if(iType= =1) 10 x=y+10; 11 else 12 x=y+20; 13 } 14 }
• 容量测试:采用特定的手段测试系 统能够承载处理任务的极限值所从 事的测试工作。 • 容量测试往往应用于数据库方面的 测试
– 数据库容量测试使测试对象处理大量的数 据,以确定是否达到了将使软件发生故障 的极限。 – 容量测试还将确定测试对象在给定时间内 能够持续处理的最大负载或工作量。
• 容量测试与压力测试的区别
CH3 白盒测试
• 白盒测试也称结构测试或逻辑驱动测试, 是一种测试用例设计方法,它从程序的控 制结构导出测试用例。
CH3 白盒测试
• (1)逻辑驱动测试 • 为了衡量测试的覆盖程度,需要建立一些标准,目前常用的 一些覆盖标准从低到高分别是:
– – – – 语句覆盖:每个语句至少都能被执行一次. 判定覆盖(分支覆盖):每一个分支至少都通过一次。 条件覆盖:每个判断的每个条件的每个可能取值至少执行一次; 判定/条件覆盖:每个条件取到各种可能的值,并使每个判定取到 各种可能的结果。 – 条件组合覆盖:每个判定中条件的各种可能组合都至少出现一次。
CH3 白盒测试


流图只有二种图形符号
图中的每一个圆称为流图的结点,代表一条或多条 语句。 – 流图中的箭头称为边或连接,代表控制流。 在将程序流程图简化成控制流图时,应注意: – 在选择或多分支结构中,分支的汇聚处应有一个汇 聚结点。 – 边和结点圈定的区域叫做区域,当对区域计数时, 图形外的区域也应记为一个区域。
Βιβλιοθήκη BaiduH2 黑盒测试
CH2 黑盒测试
CH2 黑盒测试
CH2 黑盒测试
• (2)边界值分析法
在等价类划分基础上进行边界值分析测试的基本 思想是,选取正好等于、刚刚大于或刚刚小于 等价类边界的值作为测试数据,而不是选取等 价类中的典型值或任意值做为测试数据。
CH2 黑盒测试
• (3)判定表法 • 判定表是把作为条件的所有输入的各种组合值以及对应
软件测试是为了发现错误而执行程序的过程。或 者说,软件测试是根据软件开发各阶段的规格说 明和程序的内部结构而精心设计一批测试用例 (即输入数据及其预期的输出结果),并利用这 些测试用例去运行程序,以发现程序错误的过程。 • 简单地说,软件测试是“探测”,在“探测”中 发现软件的毛病。
CH1 软件测试概述
已确认的 软件
单元测试
模块

模块 单元测试
增量式集 成测试法
结论 性评 价
图1.1 软件测试过程
独立 的测 试机 构
(1)可以发现很多软件故障 (2)修改成本较低
CH1 软件测试概述

1.
软件测试与软件开发的关系
软件测试过程V模型
系统测试 需求分析
概要设计
集成测试
详细设计
单元测试
编码
图1.3 软件测试过程V模型
程序流程图和对应的控制流图如下:
CH4 集成测试
• 集成测试:假定各个软件单元已经通过了 单元测试的前提下,检查各个软件单元之 间的相互接口是否正确。
CH4 集成测试
• 集成策略 • 非渐增式集成 • 渐增式集成
– 自顶向下、自底向上、三明治
CH4 集成测试
• 自顶向下
• 优点:在测试过程早期,对主要的控制点或判决点 进行检验。如果主要控制点有问题,早点认识到 这个问题就变得很重要。如果选用按深度方向组 装的方式,可以首先实现和验证一个完整的软件 功能,功能可行性较早得到证实,能够给开发者 和用户带来成功的信心。 • 缺点:在测试较高层模块时,低层处理采用桩模块 替代,不能反映真实情况,重要数据不能及时回 送到上层模块,因此测试并不充分
CH2 黑盒测试
• 黑盒测试两个显著的优点:
– ① 黑盒测试与软件具体实现无关,所以如果软件实现 发生了变化,测试用例仍然可以使用; – ② 设计黑盒测试用例可以和软件实现同时进行,因此 可以压缩项目总的开发时间。
CH2 黑盒测试
• (1)等价类划分方法
无冗余性
输入域的某个互不相交的子集合, 所有等价类的并便是整个输入域。
相关文档
最新文档