第六章软件测试内容摘要:

时按下两个按钮 设置时间 3. 等 2分钟 测量时间 …… …… …… 失败状态测试 找到测试软件失败的案例。 •竞争条件和时序错乱 •重复 •压迫 •重负 应联合使用,同时进行 有效等价类和用来测试 getNumDaysInMonth()方法所选的有效输入 有效 等价类 一个月有 31天 ,非闰年 1901 7(七月 ) 一个月有 31天 , 闰年 1904 7(七月 ) 一个月有 30天 ,非闰年 1901 6(六月 ) 一个月有 30天 , 闰年 1904 6(六月 ) 一个月为 28或 29天 ,非闰年 1901 2(二月 ) 月份 输入值 年份 输入值 一个月为 28或 29天 , 闰年 2(二月 ) 1904 用来测试 getNumDaysInMonth()方法的附加边界值 等价类 可以被 400整除的闰年 2020 2(二月 ) 可以被 100整除的非闰年 1900 2(二月 ) 非正数无效月份 1291 0 正数无效月份 1315 13 月份 输入值 年份 输入值 因果图法 因果图适合于描述对于多种输入条件的组合,相应产生多个动作的形式来设计测试用例。 因果图方法最终生成的是判定表。 因果图方法实例 某电力公司有 A、 B、 C、 D四类收费标准 , 并规定: 居民用电 100度 /月 按 A类收费 ≥ 100度 /月按 B类收费 动力用电 10000度 /月 ,非高峰 ,B类收费 ≥ 10000度 /月 ,非高峰 ,C类收费 10000度 /月 , 高峰 ,C类收费 ≥ 10000度 /月 , 高峰 ,D类收费 用因果图表明输入和输出间的逻辑关系 1 I1 2 B ∨ ∧ 4 A C 3 5 ∧ D I4 I3 I2 ∨ ∧ ∧ ∧ ∧ 把因果图转换为判定表 组合条件 条件 (原因 ) 动作 (结果 ) A B C 1 2 3 1 2 3 4 5 6 1 0 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 0 1 0 0 0 0 1 1 0 4 1 0 1 0 5 0 0 1 1 D 0 0 0 1 1 0 0 1 0 0 0 0 测试用例 为判定表每一列设计一个测试用例 : 1列 居民电 ,90度 /月 A 2列 居民电 ,110度 /月 B 3列 动力电 ,非高峰 ,8000度 /月 B 4列 动力电 ,非高峰 , /月 C 5列 动力电 , 高峰 , /月 C 6列 动力电 , 高峰 , /月 D 条件 测试用例 预期结果 组合 (输入数据 ) (输出动作 ) 167。 针对专门环境和应用的测试 GUI测试 常见 GUI测试指南: •对于窗口 •对于菜单和鼠标操作 •对于数据项 C/S体系结构的 测试 整体 C/S测试策略 (三个不同层次 ) •客户端应以 “ 分离的 ” 模式被测试 (不考虑服务器和底层网络的运行 ) •客户端软件和关联的服务器端应用被一起测试 (网络运行不被明显考虑 ) •完整的 C/S体系结构 (包括网络运行和性能 )被测试 C/S常用测试方法 •客户端应用功能测试 •服务器测试 ( 协调和数据管理功能 、性能 ) •数据库测试 •事务测试 •网络通信测试 实时系统测试 可采用以下四步策略: (1) 任务测试 (2) 行为测试 (3) 任务间测试 (4) 系统测试 (1) 任务测试 (task testing) 对每一个任务进行单独测试 (白盒、黑盒测试 ),发现 逻辑和功 能上错误 ,不能发现定时上和行为 上错误。 (2)行为 测试 (behavioral testing) 用 CASE工具创建应用系统模型, 模拟实时系统行为。 按类测试各种事件 (如中断、控制 信号、数据 )。 测试过的事件以随机次序、随机频 率送给系统 ,检查软件 行为方面的错误 . (3)任务间测试 (intertask testing) 检查 与时间有关错误。 如用不同数据速率、处理负载 测试相互通信的异步任务。 通过消息队列或数据存储测试 任务间的通信来找出数据存储区错 误的范围。 (4) 系统测试 (system testing) 软件、硬件组装后,找出 软、 硬件接口错误。 软件测试的过程 被测 模块 单元 测试 设计 信息 集成 测试 被测 模块 单元 测试 被测 模块 单元 测试 测试过 的模块 确认 测试 系统 测试 软件 需求 其它系 统元素 装配好的软件 确认 的软件 可运 行的 软件 167。 软件测试策略 单元测试 U C D R S I V ST 集成测试 确认测试 系统测试 系统工程 软件需求分析 软件设计 代码编写 单元测试 一 .单元测试的内容 主要对模块的 五个基本特性 进行评价 模块 错误处理 模块接口 局部数 据结构 重要的 执行路径 边界条件 •接口错误 •I/O错误 •数据结构错误 •算法错误 •比较及控制逻辑错误 •错误处理错误 2. 模块测试基本原则 •至少一次测试所有语句 •测试所有可能的执行或逻辑路径的组合 •测试每个模块的所有入口和出口 3. 确定单元测试数据集 •值域 •值类 •离散值 •值的次序集 (测试顺序文件和 表 ) 二 . 单元测试的方法 单元测试一般为编码步骤的附属部分 . 模块不是独立的程序 ,自己不能运行 , 要靠其它部分来调用和驱动 ,要为每个 单元测试开发两个软件 : (1)驱动模块 (驱动程序 ):相当于主模块 (2)桩模块 (测试存根、连接程序 ) : 代替所测模块调用的子模块 单元测试的测试环境举例 : B A C D E 待测试模块 单元测试的测试环境举例 : 被测模块 B 驱动模块 (模拟模块 A) 桩模块 (测试存根 ) (模拟模块 E) 测试用例 测试结果 许多模块不能用简单的软件进行充分的单元测试 , 此时 , 完全的测试可放到集成测试阶段再进行 . 单元测试的测试环境举例 : 实际软件 华氏到慑氏 转换模块 温度数据 实际配置 测试用例数据 结果 测试驱动软件 华氏到慑氏 转换模块 结果 测试驱动际配置 单元测试的测试环境举例 温度显示模块 温度接口 模块 实际配置 测试驱动际配置 温度显示模块 程序员编写的桩模块 (测试存根 ) 温度值的测试文件 结构性模式 (structural patterns) •适配器模式 (Adapter)—打包器 (Wrapper) •桥模式 (Bridge)—句柄 (Handle) •组合模式 (Composite) •修饰模式 (Decorator)—包装器 (Wrapper) •外观模式 (Facade) •轻量模式 (Flyweight) •代理模式 —(Proxy) 集成测试 (组装测试 ) 集成测试需考虑的问题 : 数据穿越接口可能丢失 . 一模块可能破坏另一模块功能 . 子功能组装可能未产生所要求的 主功能 . 全程数据结构可能出问题 . 误差累积问题 . 集成测试方法 通常采用黑盒测试技术 实施策略 : 非渐增式测试 渐增式测试 深度优先 广度优先 自顶向下结合 自底向上结合 一 . 非渐增式集成方式 一次就把所有通过了单元测试 的模块组合在一起进行全程序的测 试 . 缺点 :发现错误难以诊断定位 . 又称 “ 莽撞测试 ” . 二 . 渐增式集成方式 从一个模块开始 ,测一次添加一个模块 , 边组装边测试 , 以发现与接口相联系的问题。 自顶向下结合方式举例 : A D B E 模块测试 结合顺序 C F 深度优先 :A、 B、 E、 C、 D、 F 广度优先 :A、 B、 C、 D、 E、 F 自顶向下结合方式举例 :(深度优先 ) A 测试 A S2 S1 S3 A 加入 B S2 B S3 S4 A 加入 E S2 B S3 E A 加入 C C B S3 E 加入 D C B D E 加入 F C B D E A A F S5 自底向上结合方式举例 : A C B D F E E d1 C d3 F d4 B d2 E D d5 F 自底向上结合方式举例 : Mc D1 Ma Mb D2 D3 簇 1 簇 2 簇 3 自顶向下 自底向上 优点 可在测试早期 设计测试用例容易 实现并验证系 统主要功能 不需驱动模块 不需桩模块 缺点 需桩模块 只有到最后程序才 能作为一个整体 3. 混合集成测试方法 一般对软件结构的上层使用自顶向下 结合的方法。 对下层使用自底向上结合的方法。 确认测试 (有效性测试 ) 有效 性 测试 软件 配置 审查 管理 机构 裁决 选择测试人员 软件计划 用户文档 开发文档 源程序文本 支持环境 交用户 运行 维护 测试 报告 软件 配置 构造测试用例 (验收测试 ) 实际运行测试 专家 鉴定 会 一 .有效性测试 通过 黑盒测试 ,证实软件功能与 用户需求是否一致 . 二 .软件配置审查与验收 确认 测试 软件配 置审查 主管部 门批准 集成的软件 软件需求 用户文档 设计文档 源程序 测试文档 交付的 软 件 确认的 软 件 确认的 配 置 三 . 人工测试 静态分析 对源程序进行静态分析。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。