




已阅读5页,还剩62页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第一章测试技术 测试定义及测试方法 2 本章目标 定义软件测试明确软件测试的准则明确测试的方法描述软件测试的各个阶段描述各种测试阶段的测试内容 3 简介 软件测试是软件工程过程中的关键组件 软件测试是软件质量保证的要素 可以将其描述为一个运行程序以检测错误 如果有 的过程 4 测试的常识与道理2 2 如果不懂得有效地进行测试 你不仅得不到功劳 也没人欣赏你的苦劳 你拥有最多的将只是疲劳 职业软件工程师应当掌握需求开发 系统设计 编程 测试 维护所有技能 5 测试的目的是什么 测试的目的是为了发现尽可能多的缺陷 不是为了说明软件中没有缺陷 推论 成功的测试在于发现了迄今尚未发现的缺陷 所以测试人员的职责是设计这样的测试用例 它能有效地揭示潜伏在软件里的缺陷 如果测试一直是在发现旧问题 那是一种折磨千万不要将 测试 与 演示 混为一谈 例如产品展示会 如果产品通过了严格的测试 大家不要不吭气 应当好好地宣传一把 6 软件测试原则2 1 完全测试程序是不可能的 输入量太大 输出结果太多 软件实现途径太多 软件说明书没有客观标准 从不同角度看 软件缺陷的标准不同 7 软件测试原则2 2 软件测试是有风险的行为测试无法显示潜伏的软件缺陷找到的软件缺陷越多 就说明软件缺陷越多并非所有软件缺陷都能修复越早介入测试 风险越小软件测试一项讲究条理的技术专业 8 软件测试方法 黑盒和白盒 白盒测试中 有时候称为开盒测试 软件测试员可以访问程序员的代码 并通过检查代码来协助测试 可以看到盒子里面 一般在单元测试中采用白盒测试 用于测试模块中所有可能的路径 执行所有循环并测试所有逻辑表达式 黑盒测试则侧重于软件的整体功能 它不基于程序的内部结构而基于系统功能 犹如一个人站在黑盒子外面 只知道系统输入一定数据 得到一定的输出 而不必清楚这个黑盒子中进行了哪些操作和运算 9 软件测试方法 静态和动态 静态检查确保系统按照组织的标准和过程运行 主要依赖于评审和非运行的手段来检查 通常包括需求评审 设计评审 代码走查和代码检查 动态检查在生命周期中进行测试 运行 通常包括单元测试 集成测试 系统测试 用户的验收测试 10 静态测试 审查 Inspection 软件的一种基本测试方法 它以一系列典型问题为依据进行检测 走查 Walkthrough 一对一的审查 比审查更加仔细 回顾 Review 以发现软件中存在的错误和缺陷为目的的一种软件测试方法 它是在软件证实执行之前完成 11 静态和动态测试进行结构和功能测试 12 测试技术 13 测试产品说明书 对于产品说明书的制定是个很重要的设计阶段 产品说明书的质量会直接影响到整个产品开发 测试产品说明书属于静态黑盒子测试 14 常用测试用语 测试用例 测试用例 编写用于输入输入的实际数制和预期结果 测试用例还明确指出使用具体测试用例产生的测试程序的任何限制 使用目的 测试用例应该设计为能够快速容易地发现尽可能多的错误 应该通过使用和产生正确和错误的输入和输出来 检验 程序 其目标是要使用合理范围内的条件 尽可能全面地测试所有模块乃至整个系统 15 测试与调试 什么是缺陷 缺陷 最终产品同用户的期望不一致缺陷的分类错误遗漏超出需求的部分缺陷 未触发 VS 错误 应首先解决 测试之后调试 调试之后回归测试 16 测试与调试 调试的准则 调试的方法 归纳法 演绎法和回溯法 常用调试技术使用诊断输出语句 diagnosticoutputstatement 快照转储 snapshotdump 以及跟踪指令的断点 instruction dependentbreakpoint 17 测试的分类与比较 开发与测试的V型关系 测试阶段区别于测试流程 如果软件开发过程采用严格的瀑布模型 那么开发与测试有 V 型的对应关系 需求开发 高层设计 详细设计 编程 单元测试 集成测试 系统测试 验收测试 18 测试阶段2 1 单元测试 集成测试 系统测试 验收测试 是 从小到大 由内至外 循序渐进 的测试过程 体现了 分而治之 的思想 单元测试的粒度最小 一般由开发小组采用白盒方式来测试 主要测试单元是否符合 设计 集成测试界于单元测试和系统测试之间 起到 桥梁作用 一般由开发小组采用白盒加黑盒的方式来测试 既要验证 设计 又要验证 需求 19 测试阶段2 2 系统测试的粒度最大 一般由独立测试小组采用黑盒方式来测试 主要测试系统是否符合 需求规格说明书 验收测试与系统测试非常相似 主要区别是测试人员不同 验收测试由用户执行 20 测试内容 测试内容一般包含接口与路径测试 功能测试 健壮性测试 性能测试 用户界面测试 安全性测试 压力测试 可靠性测试 安装 反安装测试 21 测试阶段对应表 22 接口与路径测试3 1 接口测试 数据一般通过接口输入和输出 接口测试一般是白盒测试的第一步 输入参数有 典型值 边界值 异常值 输出包括函数的返回值和输出参数 实际输出与期望的输出不一致 那么说明程序有错误 一个函数体内的语句可能只有十几条 但逻辑路径可能有成千上万条 所以应该根据经验选择关键的路径测试 23 接口与路径测试3 2 路径测试的检查表 数据类型 变量值 逻辑判断 循环 内存管理 文件I O 错误处理预防一些重要的路径没有被测试的措施有 观察是否有程序语句从来没有被执行过 要特别留意函数体内的错误处理程序块 24 接口与路径测试3 3 接口与路径测试用例的参考模板 25 功能测试3 1 功能测试的基本方法是构造一些合理输入 在需求范围之内 检查输出是否与期望的相同 如果两者不一致 即表明功能有误 难点在于如何构造有效的输入 26 功能测试3 2 功能测试的测试方法 等价划分法和边界值分析法 等价划分是指把输入空间划分为几个 等价区间 在每个 等价区间 中只需要测试一个典型值就可以了 等价划分法来源于人们的直觉与经验 可令测试事半功倍 缺陷遗漏在角落里 聚集在边界上 边界值测试法是对等价划分法的补充 如果A和B是输入空间的边界值 那么除了典型值外还要用A和B作为测试用例 27 功能测试3 3 功能测试用例的参考模板 28 性能测试3 1 性能测试即测试软件处理事务的速度 一是为了检验性能是否符合需求 二是为了得到某些性能数据供人们参考 绝对值考虑 如数据送输速率是每秒多少比特 相对值 考虑 如某个软件比另一个软件快多少倍 性能测试中考虑运行环境的影响 例如网络环境 计算机主频 总线结构和外部设备都可能影响软件的运行速度 29 性能测试3 2 性能测试的一些注意事项 应当编写一段程序用于计算时间以及相关数据 应当测试软件在标准配置和最低配置下的性能 应当关闭那些消耗内存 占用CPU的其它应用软件 如杀毒软件 应当分档记录 例如传输文件的容量从100K到1M可以分成若干等级 同一种输入情况在不同的时间可能得到不同的性能数据 可以取其平均值 30 性能测试3 3 性能测试用例的参考模板 31 压力测试2 1 压力测试也叫负荷测试 即获取系统能正常运行的极限状态 压力测试的主要任务是 构造正确的输入 使劲折腾系统却让它刚好不瘫痪 压力测试的一个变种是敏感测试 在某种情况下 微小的输入变动会导致系统的表现 如性能 发生急剧的变化 32 压力测试2 2 压力测试用例的参考模板 33 其他测试内容 健壮性测试用户界面测试信息安全测试可靠性测试安装和反安装测试 34 测试常见问题2 1 问题1 有了 黑盒 测试为什么还要 白盒 测试 问题2 由于单元测试要写测试驱动程序 非常麻烦 能否等到整个系统全部开发完后 再集中精力进行一次性地单元测试呢 问题3 如果每个单元都通过了测试 把它们集成一起难道会有什么不妥吗 集成测试是否多此一举 35 测试常见问题2 2 问题4 在集成测试的时候 已经对一些子系统进行了功能测试 性能测试等等 那么在系统测试时能否跳过相同内容的测试 问题5 既然系统测试与验收测试的内容几乎是相同的 为什么还要验收测试 问题6 能否将系统测试和验收测试 合二为一 36 总结2 1 测试可以将测试描述为一个运行程序以发现错误的过程 软件测试的准则 不完全测试 风险测试 无法显示潜伏错误 发现错误成线性增长 缺陷不能完全修复 测试有条理规程测试的方法 黑盒 白盒 静态 动态软件测试的各个阶段 单元测试 集成测试 系统测试 验收测试 37 总结2 2 测试的内容包括 接口 路径测试 功能测试 性能测试 压力测试 可靠性测试 安全性测试 用户界面测试 安装 反安装测试 38 第二章 测试计划和单元测试 39 本章目标 计划测试过程制定单元测试说明书明确测试用例设计技术单元测试的测试手段 40 基本测试过程 基本测试过程原则 尽早测试 经常测试 充分测试 开发过程与测试过程 分析 测试 设计 测试 编码 测试 测试计划应该是按照开发者的要求并用具体例子来描述一个测试计划的层次结构以及各个测试计划相联系的标准模版 41 测试的五个问题 谁执行了测试 测试什么 什么时候测试 怎样测试 测试应进行到何种程度 42 测试方案设计 良好的测试设计由以下的若干个方面组成 测试策略测试计划测试说明书测试规范这些方案适用于从单元测试到系统测试等各个级别的测试 测试设计需要根据软件说明书来进行 43 单元测试2 1 概况定义 检验程序最小单位有无错误 一般在编码之后 由开发人员完成 单元 软件开发中的最小的独立部分C语言中的单元 函数或者是子过程C 语言中的单元 类JAVA NET中的单元 对象 44 单元测试2 2 单元测试目前状况 实施效果非常好 但是实施阻力比较大 主要是人员和管理因素 一般只在关键的程序单元中实施有比较系统的理论和方法 但也依赖于系统的特殊性和开发人员的经验有大量的辅助工具 开发人员也经常自己开发测试代码和测试工具主要使用白盒测试和静态分析 也使用黑盒测试 45 测试流程 管理流程主要指动态测试应用流程 针对测试目标 规定测试任务 资源分配 人员角色 进度安排等 根据测试计划 设计测试用例 包括 测试步骤 测试场景 测试代码 测试数据 包括预期结果 根据测试计划 配置测试环境 并手动或者自动执行测试设计 根据测试计划 忠实地记录测试执行的过程和结果 分析测试记录 如果发现与预期结果不同 确定并重现缺陷 检查测试设计是否全部执行完毕 缺陷是否全部关闭 记录 分发 评估 关闭缺陷报告 分析测试过程和缺陷报告 评估测试质量和测试效果 给出是否通过测试的建议 46 测试用例2 1 测试用例是数据输入和期望结果组成的对 47 测试用例2 2 ANSI IEEE829标准列出了测试用例应该包含在内的重要信息 标识符测试项输入说明输出说明环境要求特殊要求用例依赖性 48 单元测试说明书的组成 单元测试说明书由一系列单元测试用例组成 每个单元测试用例都应该包括四个基本要素 对照ANSI IEEE标准 单元的初始状态说明单元的输入测试用例实际要测试的内容测试用例的预期结果 49 单元测试说明书 例 测试计划 编号如 stb tp0013标题如 文字排版功能 字间距 MayCourse版本号如 V1 0执行状态如 未执行修改记录如 2003年7月28日 编制 修改 原因测试目标如 语句覆盖测试人员如 1负责执行测试用例xxx 2负责执行测试用例xxx测试用例编号 多个 如 stb fg00021 stb fg00031 stb fg00035 被测试单元代码位置如 tag1 layout MayCourse cpp 50 单元测试说明书 例 测试用例 编号如 stb tp00014标题如 测试 文字排版功能 字间距 MayCourse 版本号如 V1 3执行状态如 已经执行修改记录如 2003年7月29日 编制 修改 原因测试步骤如 配置运行环境 输入测试数据 执行X功能 测试代码 观察 记录XX测试场景如 在联网的环境下测试代码如 stb tp00021 位置 stb tp00035 位置 测试数据如 输入数据 输入文件 文字描述 预期结果 性能 图片 文字描述 51 单元测试说明书 例 测试记录 编号如 stb tp00015标题如 记录测试 文字排版功能 字间距 MayCourse 结果填写记录如 2003年7月30日 填写 原因测试用例编号如 stb tp0015输出结果如 图片 文字描述测试观察符合 不符合期望结果 52 单元测试说明书 例 缺陷跟踪报告 编号如 stb tp00016标题如 文字排版功能 字间距 MayCourse计算错误版本号如 V1 3执行状态如 空白 草稿 提交 审批 分发 正在修改 修改完毕 正在确认 关闭 修改记录如 2003年7月31日 编制 修改 原因测试环境和版本号码 程序编写人员错误严重程度和优先级别错误详细描述重现步骤和方式 对应的测试记录编码附件建议修改方式修改内容 结果及修改人员签字 日期确认内容 结果及确认人员签字 日期 53 单元测试说明书 例 总结报告 编号如 stb tp00017标题如 文字排版功能 字间距 MayCourse单元测试总结报告版本号如 V1 5执行状态如 已经提交修改记录如 2003年8月1日 编制 修改 原因测试计划编号计划执行情况缺陷统计 缺陷总数 未解决数目 及为解决缺陷列表后续处理措施是否通过单元测试 54 制定单元测试说明书步骤 包含一组单独的单元测试用例的单元测试说明书的设计过程 步骤1 运行简单测试用例步骤2 正面测试步骤3 负面测试步骤4 考虑特殊事项步骤5 覆盖完成率测试步骤6 完善说明书 进行相对完整测试 55 测试用例设计技术 测试用例设计技术可以大体分成两个主要类别 黑盒技术使用的是单元的接口和对功能的描述 而无需知道单元内部是如何构建的 白盒技术使用的是有关单元内部如何工作的信息 此外还有其他的技术 它们都不能归入上面的类别中 例如错误猜测 56 黑盒测试测试手段2 1 根据说明书进行的测试测试用例是通过通读相关的说明书而设计得到的 每个测试用例都应该测试说明书的一条或多条陈述 等价划分基本做法是将要测试的软件的输入和输出分成若干部分 对于特定部分中的任意值 软件行为都是等价的 57 黑盒测试测试手段2 2 边界值分析它使用与等价划分相同的方法分析各个部分 但是 它假定错误最可能出现在各部分之间的边界处 状态变换测试当软件被设计成状态机或者软件实现的是以状态机为模型的需求的时候 状态变换测试特别有用 测试用例通过生成导致转变的事件来测试状态之间的转换 58 白盒测试测试手段2 1 分支测试测试用例被设计为检验对单元中的流分支或判定点的控制 通常来说它的目的是要达到目标级别的判定覆盖率 条件测试条件测试的目标是设计测试用例以表明逻辑条件的单个组件和单个组件的组合是正确的 59 白盒测试测试手段2 2 数据定义 使用测试它将测试用例设计为对成对的数据定义和使用进行测试 设置数据项的值的地方就是数据定义 读取或使用数据的地方就是数据使用 次边界值测试很多情况下 各部分和它们的边界可以通过单元功能说明书来识别 但是 单元可能会有内部边界值 它只能通过结构说明书来识别 60 错误猜测 错误猜测主要是凭经验 同时还需要诸如边界值分析等其他技术的一些辅助 凭借经验 测试设计者猜测特定类型的软件中可能出现的错误类型 并设计测试用例来找到它们 由有经验的工程师来进行错误猜测可能是最有效地设计能发现错误的测试的唯一方法 相反 任用不合适的人来进行错误猜测可能会浪费时间 61 总结 良好的测试设计由若干个防范组成 在单元测试中 测试应设计为检验各个单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030年儿童牙刷行业市场发展分析与发展前景及投资战略研究报告
- 2025-2030年中国鲸蜡硬脂基辛酸酯行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国非处方药和膳食补充剂行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国钢铁贸易行业市场发展分析及前景趋势与投资前景研究报告
- 2025-2030年中国醋酸纤维素A行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国轻型商用车行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国车载冷暖箱行业市场前景分析及发展趋势与投资战略研究报告
- 2025-2030年中国超声波探测管行业市场深度调研及投资策略与投资前景预测研究报告
- 2025-2030年中国苛性除漆剂行业市场现状供需分析及投资评估规划分析研究报告
- 改进房地产投资结构与投资者多元化
- 医疗器械经营质量管理规范试题
- 绘本故事:睡睡镇
- 钢丝绳计算书
- 工资条(标准模版)
- 装配式电缆沟施工方案
- 山东省省直机关公开遴选公务员笔试模拟真题及答案解析
- J22J262 被动式超低能耗建筑节能构造(九)(钢丝网架珍珠岩复合保温板)DBJT02-215-2022
- 常用英语趣味习惯用语
- 新编建筑施工扣件式钢管脚手架安全技术规范
- html5设计论文参考文献(范例50个),参考文献
- 俄罗斯文学导论智慧树知到答案章节测试2023年黑龙江大学
评论
0/150
提交评论