软件测试简介教材

上传人:我** 文档编号:116003776 上传时间:2019-11-15 格式:PPT 页数:34 大小:1.20MB
返回 下载 相关 举报
软件测试简介教材_第1页
第1页 / 共34页
软件测试简介教材_第2页
第2页 / 共34页
软件测试简介教材_第3页
第3页 / 共34页
软件测试简介教材_第4页
第4页 / 共34页
软件测试简介教材_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《软件测试简介教材》由会员分享,可在线阅读,更多相关《软件测试简介教材(34页珍藏版)》请在金锄头文库上搜索。

1、软件测试简介 什么是软件测试 定义(供参考):利用测试工具按照测试方案和流程对产品进 行功能和性能测试,甚至根据需要编写不同的测试工具,设 计和维护测试系统,对测试方案可能出现的问题进行分析和 评估。执行测试用例后,需要跟踪故障,以确保开发的产品 适合需求。 提供客观独立的软件评价,帮助相关人员掌握软件信息、 认识软件开发风险 测试技术包括但不限于通过执行特点代码或应用程序来发 现软件bugs 局限性&必要性 测试永远无法检测出软件中的所有缺陷。 测试永远无法证明在所有情况下软件功能是正确的,而只 能证明在某些特定情况下的正确性。 NIST在2002年的一项研究指出,由于软件bug而对美国造

2、成的经济损失高达$59.5 billion 越早越好。 观点PK 测试是为了发现程序中的 错误而执行程序的过程; 好的测试方案是极可能发 现迄今为止尚未发现的错误 的测试方案; 成功的测试是发现了至今 为止尚未发现的错误的测试 u测试并不仅仅是为了找出错误.通过分 析错误产生的原因和错误的发生趋势,可 以帮助项目管理者发现当前软件开发过 程中的缺陷,以便及时改进; u这种分析也能帮助测试人员设计出有 针对性的测试方法,改善测试的效率和有 效性; u没有发现错误的测试也是有价值的,完 整的测试是评定软件质量的一种方法 测试方法 白盒测试 基于产品的内部结构进行测试,检查内部操作是否按 规定执行,

3、软件各个部分功能是否得到充分使用。又称为 结构测试、逻辑驱动测试或基于程序的测试。 黑盒测试 基于产品的功能,目的是检查程序各个功能是否能够 实现,并检查其中的功能错误。又称为功能测试、数据驱 动测试和基于规格说明的测试。 灰盒测试 介于二者之间。关注输出对于输入的正确性,同时也 关注内部表现,但这种关注不象白盒那样详细、完整,只 是通过一些表征性的现象、事件、标志来判断内部的运行 状态。 测试方法 之 白盒测试 白盒测试将被测程序看作一个打开的盒子,测试者能够 看到被测源程序,可以分析被测程序的内部结构,此时测 试的焦点集中在根据其内部结构设计测试用例。 白盒测试要求是对某些程序的结构特性做

4、到一定程度的 覆盖,或者说这种测试是“基于覆盖率的测试”。 测试方法 之 白盒测试 白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本 路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件 覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。 语句覆盖:每条语句至少执行一次 判定覆盖:每个判定的每个分支至少执行一次 条件覆盖:每个判定的每个条件应取到各种可能的值 判定/条件覆盖:同时满足判定覆盖、条件覆盖 条件组合覆盖:每个判定中各条件的每一种组合至少出 现一次 路径覆盖:程序中每一条可能的路径至少执行一次 弱 强 测试方法 之 白盒测试 语句覆盖:每条语句至少执行一次 判定覆盖:每个判定的每个分支至少执

5、行一次 条件覆盖:每个判定的每个条件应取到各种可能的值 判定/条件覆盖:同时满足判定覆盖、条件覆盖 条件组合覆盖:每个判定中各条件的每一种组合至少出 现一次 1.a | b = T 2. a | b = T,a | b = F 3.a=T, b=F, a=F, b=T 4.a=T, b=F, a=F, b=T, a=F, b=F, 5.a=T, b=T, a=T, b=F, a=F, b=T, a=F, b=F, 测试方法 之 白盒测试 路径覆盖:程序中每一条可能的路径至少执行一次 1.a|b=T, c|d=T, a|b=T, c|d=F, a|b=F, c|d=T, a|b=F, c|d=F

6、 所有路径: 1-2-3-4-5; 1-2-3-5; 1-3-4-5; 1-3-5; 测试方法 之 黑盒测试 黑盒测试将被测程序看作一个打不开的黑盒子,是从输 入定义域映射到输出值域的函数过程。 黑盒测试主要根据规格说明书设计测试用例,并不涉及 程序内部构造和内部特性,只依靠被测程序输入和输出之 间的关系或程序的功能设计测试用例。 测试方法 之 黑盒测试 黑盒测试的测试用例设计方法包括等价类划分法、边 界值分析法、错误推测法、因果图法、判定表驱动法、正 交试验设计法、功能图法等。 等价类划分:把程序的输入域划分成若干部分(子集) ,然后从每个部分中选取少数代表性数据作为测试用例。 每一类的代表

7、性数据在测试中的作用等价于这一类中的其 他值。 边界值分析是通过选择等价类边界的测试用例。边界值 分析法不仅重视输入条件边界,而且也必须考虑输出域边 界。它是对等价类划分方法的补充. 测试方法 之 黑盒测试 等价类划分的原则: l在输入条件规定了取值范围或值的个数的情况下,则可以确立一 个有效等价类和两个无效等价类. l在输入条件规定了输入值的集合或者规定了“必须如何”的条件 的情况下,可确立一个有效等价类和一个无效等价类. l在输入条件是一个布尔量的情况下,可确定一个有效等价类和一 个无效等价类. l在规定了输入数据的一组值(假定n个),并且程序要对每一个 输入值分别处理的情况下,可确立n个

8、有效等价类和一个无效等价 类. l在规定了输入数据必须遵守的规则的情况下,可确立一个有效等 价类(符合规则)和若干个无效等价类(从不同角度违反规则) . l在确知已划分的等价类中各元素在程序处理中的方式不同的情 况下,则应再将该等价类进一步的划分为更小的等价类. 测试方法 之 黑盒测试 边界值分析的原则: l如果输入条件规定了值的范围,则应取刚达到这个范围的边界的 值,以及刚刚超越这个范围边界的值作为测试输入数据. l如果输入条件规定了值的个数,则用最大个数,最小个数,比最小 个数少一,比最大个数多一的数作为测试数据. l根据规格说明的每个输出条件,使用前面的原则1). l根据规格说明的每个输

9、出条件,应用前面的原则2). l如果程序的规格说明给出的输入域或输出域是有序集合,则应选 取集合的第一个元素和最后一个元素作为测试用例. l如果程序中使用了一个内部数据结构,则应当选择这个内部数据 结构的边界上的值作为测试用例. l分析规格说明,找出其它可能的边界条件. 测试方法 之 黑vs白 项目黑盒测试法白盒测试法 规划 方面 功能的测试结构的测试 优点 方面 能确保从用户的角度 出发进行测试 能对程序内部的特定部位进 行覆盖测试 缺点 方面 无法测试程序内部特 定部位;当规格说明有 误,则不能发现问题 无法检查程序的外部特性; 无法对未实现规格说明的程 序内部欠缺部分进行测试 应用 范围

10、 边界值分析 等价类划分 决策表测试 语句覆盖,判定覆盖, 条件覆盖,判定/条件覆盖, 路径覆盖,循环覆盖, 模块接口测试 测试方法 之 黑vs白 白盒测试白盒测试黑盒测试黑盒测试 两种测试方法从完全不同的角度出发,两种测试方法从完全不同的角度出发, 反映了测试思路的两方面情况,适用于反映了测试思路的两方面情况,适用于 不同的测试阶段。不同的测试阶段。 测试阶段 测试阶段 单元测试:是针对软件设计的最小单位 程序模块,进行正确性 检验的测试工作。其目的在于发现各模块内部可能存在的各种差错 。 集成测试:在单元测试的基础上,将所有模块按照设计要求(如 根据结构图组装成为子系统或系统,进行集成。

11、确认测试:又称有效性测试。任务是验证软件的功能和性能及其 它特性是否与用户的要求一致。 (对软件的功能和性能要求在软 件需求规格说明书中已经明确规定。它包含的信息就是软件确认测 试的基础)。 系统测试:将通过确认测试的软件,作为整个基于计算机系统的 一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其 它系统元素结合在一起,在实际运行环境下,对计算机系统进行一 系列的组装测试和确认测试。 测试阶段之 单元测试 驱动模块(driver) 模拟 主程序功能,用于向被测模块 传递数据,接收、打印从被测 模块返回的数据。 桩模块(stub) 又称为假 模块,用于模拟那些由被测模 块所调用的下属模

12、块功能。 被测模块 驱动模块 桩模块桩模块桩模块 测试阶段之 集成测试 自顶向下增量式集成 逐步集成和逐步测试是按照结构图自上而下进行的,即模 块集成的顺序是首先集成主控模块(主程序),然后依照控制 层次结构向下进行集成。从属于主控模块的按深度优先方式( 纵向)或者广度优先方式(横向)集成到结构中去。 深度优先 首先集成在结构中的一个主控路径下的所有模块,主控路 径的选择是任意的。 广度优先 首先沿着水平方向,把每一层中所有直接隶属于上一层的 模块集成起来,直到底层。 测试阶段之 集成测试 M1 M4M3M2 M6 M5 程序模块示意图 S5 M1 S1S1S1S2S2S2S3S3S3 第一步

13、,测试主控模块M1设计桩模 块S1、S2、S3,模拟被M1调用的 M2、M3、M4。 M2M3M4 第二步,依次用M2、M3、M4替代 桩模块S1、S2、S3,每替代一次进 行一次测试。 S4S4S4S5S5 第三步,对由主控模块M1和模块 M2、M3、M4构成的子系统进行测 试,设计桩模块S4、S5。 M5M6 第四步,依次用模块M5和M6替代 桩模块S4、S5,并同时进行新的测 试。组装测试完毕。 测试阶段之 集成测试 深度优先策略先组装 在软件结构的一条主控制 通路上的所有模块。 主控路径的选择决定 于软件的应用特性。如, 选取最左边的路径,先结 合模块M1、M2和M5,接 着是M8,如

14、果M2的某个功 能需要,可结合M6,然后 再构造中央和右侧的控制 通路。 测试阶段之 集成测试 广度优先策略是沿软 件结构水平地移动,把处 于同一个控制层次上的所 有模块组装起来。 对于左图来说,先结 合模块M2、M3和M4(代替 桩程序S4),接着是M5、 M6和M7(代替桩程序S7)这 一层,如此继续进行下去 ,直到所有模块都被结合 进来为止。 测试阶段之 集成测试 自顶向下集成的优点:能尽早地对程序的主要控制和决策机制进 行检验,因而能较早发现错误。 自顶向下集成的缺点:测试较高层模块时,低层处理采用桩模块 替代,这并不能够反映实际情况,重要数据不能及时回送到上层模 块,因而测试并不充分

15、和完善。 可选择以下几种方法改善: (1) 把某些测试推迟到用真实模块替代桩模块之后进行。这将使我 们对一些特定的测试和特定模块的装配之间的对应关系失去某些控 制,在确定错误原因时会比较困难。 (2) 开发能模拟真实模块的桩模块。此法无疑要大大增加开销。 测试阶段之 集成测试 自底向上增量式集成 从软件结构最低层的模块开始组装和测试,当测试到较高 层模块时,所需的下层模块均已具备,因而不再需要桩模块。 测试阶段之 集成测试 M3 M6M5 D1 D2 D3D1D1 D2D2 D3D3M2M4 M1 第四步,把已测试的子系统按程 序结构连接起来完成程序整体的 组装测试。 D4 D4D4D5 D5

16、 D5M1 M4M3M2 M6 M5 程序模块示意图 第一步,对最底层的模块M3、M5、 M6进行测试,设计驱动模块D1、D2、 D3来模拟调用。 第三步,设计驱动模块D4、D5 和D6 模拟调用,分别对新子系统进行测试 。 第二步,用实际模块M2、M1和 M4替换驱动模块D1、D2、D3。 D6 自底向上结合 测试阶段之 集成测试 自底向上测试可归纳为以下 四个步骤: (1) 把低层模块组合成实现一 个特定软件子功能的族,见 图中模块族1、2、3。 (2) 为每个族设计一个驱动软 件,作为测试的控制程序, 以协调测试用例的输入和输 出。左图中,虚线接的框D1 、D2、D3是各个族的驱动程 序。 测试阶段之 集成测试 (3) 对模块族进行测试

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号