




已阅读5页,还剩52页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单元测试 Outline 软件测试概述单元测试单元测试工具 Junit Eclipse 软件测试概述 内容 软件测试定义 目的和作用衡量标准软件测试要素测试技术测试过程 软件测试 概况定义 为了发现程序的错误而执行程序的过程软件测试是SQA的重要手段 属于软件工程领域目前状况软件测试的实践性大于理论性软件测试理论体系尚不成熟软件测试工具尚不成熟软件测试效果对于个人的依赖性比较大 软件测试 目的为了寻找错误 并尽可能地为修正错误提供更多的信息为了证明软件有错误 而不证明软件没有错误作用发现并管理缺陷度量质量评价工作效率和效果预期项目风险 内容 软件测试定义 目的和作用衡量标准软件测试要素测试技术测试过程 软件测试 衡量标准多能够找到尽可能多的 以至于所有的BUG快能够尽可能早地发现最严重的BUG好找到的BUG是关键的 用户最关心的找到BUG后能够重现找到的BUG 并为修正BUG提供尽可能多的信息省能够用最少的时间 人力和资源发现BUG测试的过程和数据可以重用 内容 软件测试定义 目的和作用衡量标准软件测试要素测试技术测试过程 测试技术 不实际运行程序 而是通过检查和阅读等手段来发现错误并评估代码质量的软件测试技术 也称为静态分析技术 实际运行程序 并通过观察程序运行的实际结果来发现错误的软件测试技术 在不知道程序内部结构 只知道程序规格的情况下采用的测试技术或策略 在知道程序内部结构的情况下采用的测试技术或策略 开发组内部进行的 采用讲解 讨论和模拟运行的方式进行的查找错误的活动 开发组内部进行的 采用讲解 提问并使用Checklist方式进行的查找错误的活动 一般有正式的计划 流程和结果报告 开发组 测试组和相关人员 QA 产品经理等 联合进行的 采用讲解 提问并使用Checklist方式进行的查找错误的活动 一般有正式的计划 流程和结果报告 针对要求的程序功能 按照规范的流程进行的测试 针对要求的程序功能以外的其他要求 包括性能 安全 配置 负载等指标 按照规范的流程进行的测试 针对要求的程序功能 性能 安全 配置 负载等指标 基于破坏目的 按照经验进行的随机测试 程序修改或者版本更新以后 为了确保以前正确的功能和其他指标仍旧正确 而重新进行的测试 在测试过程中 选择足够的测试用例 使得每一个可执行语句至少被执行一次 在测试过程中 选择足够的测试用例 使得程序中的每一个分支判断的每一种可能结果都至少被执行一次 在测试过程中 选择足够的测试用例 使得程序中的每一条可能执行的路径都至少执行一次 内容 软件测试定义 目的和作用衡量标准软件测试要素测试技术测试过程 测试过程 规格定义 设计 编码 系统测试 集成测试 单元测试 用户需求 验收测试 回归测试 配置管理 缺陷跟踪 测试过程 单元测试 UnitTesting目标 检验程序最小单元有无错误接口 数据结构 边界 覆盖 逻辑检验单元编码与设计是否吻合时机 编码完成后 首先要实施的测试方法 静态测试白盒测试责任 开发工程师 测试过程 集成测试 IntegrationTesting目标 检验组成系统的模块接口有无错误代码实现的系统设计与需求定义是否吻合时机 主要的单元测试完成后 经常与单元测试同步进行方法 黑盒测试责任 开发工程师测试工程师 测试过程 系统测试 SystemTesting目标 检验组成整个系统的代码 以及系统的软硬件配合有无错误代码实现的系统与用户需求是否吻合检验系统的文档等各种是否完整 有效模拟验收测试的要求 检查系统是否符合用户的验收标准时机 多数集成测试完成后方法 黑盒测试责任 测试工程师 测试过程 系统测试 SystemTesting稳定期测试目标 度量是否可以结束测试时机 传统的系统测试完成后方法 黑盒测试责任 测试工程师 测试过程 验收测试 AcceptanceTesting目标 使客户验收签字系统是否符合事先约定的验收标准时机 系统测试完成后 在项目组看来开发和测试工作已经全部完成 可以交付使用方法 黑盒测试责任 产品经理或其他高级经理开发工程师测试工程师用户 测试过程 回归测试 RegressionTesting目标 验证程序修改或者版本更新以后 以前正确的功能和其他指标仍旧正确 时机 每次错误修改之后 或者版本更新之后方法 白盒测试 黑盒测试责任 开发工程师测试工程师 测试过程 缺陷跟踪 DefectTracing目标 确保所有发现的错误被正确记录 分发 评估 关闭 统计时机 从错误发现开始到错误关闭为止 每次错误状态修改之后方法 缺陷跟踪系统责任 开发工程师测试工程师测试经理用户 单元测试 内容 单元测试目标任务单元测试技术静态分析测试设计单元测试流程管理流程测试文档 单元测试 概况定义 检验程序最小单位有无错误 一般在编码之后 由开发人员完成 单元 软件开发中的最小的独立部分C语言中的单元 函数或者是子过程C 语言中的单元 类目前状况 实施效果非常好 但是实施阻力比较大 主要是人员和管理因素 一般只在关键的程序单元中实施有比较系统的理论和方法 但也依赖于系统的特殊性和开发人员的经验有大量的辅助工具 开发人员也经常自己开发测试代码和测试工具主要使用白盒测试和静态分析 也使用黑盒测试 单元测试 目标1 检查代码实现是否符合设计不能检查设计是否正确2 尽早发现错误Microsoftapplications10 20defects KLOCduringunittesting0 5defects KLOCafterrelease性价比最好 内容 单元测试目标任务单元测试技术静态分析测试设计单元测试流程管理流程测试文档 单元测试 任务1 模块接口测试检查进出模块的数据是否正确Checklist 模块的实际输入与定义的输入是否一致个数 类型 顺序模块中对于非内部 局部变量是否合理使用使用其他模块时 是否检查可用性和处理结果使用外部资源时 是否检查可用性并及时释放资源内存 文件 硬盘 端口等其他 单元测试 任务2 模块局部数据结构测试检查局部数据结构能否保持完整性Checklist 变量从来没有被使用可能别的地方使用了错误的变量名变量没有初始化错误的类型转换数组越界非法指针变量或函数名称拼写错误使用了外部变量或函数其他 单元测试 任务3 模块边界条件测试检查临界数据是否正确处理Checklist 普通合法数据是否正确处理普通非法数据是否正确处理边界内最接近边界的 合法 数据是否正确处理边界外最接近边界的 非法 数据是否正确处理其他 单元测试 任务4 模块独立执行通路 路径 测试检查由于计算错误 判定错误 控制流错误导致的程序错误Checklist 死代码错误的计算优先级精度错误比较运算错误赋值错误表达式的不正确符号 循环变量的使用错误错误赋值其他 单元测试 任务5 模块内部错误处理测试检查内部错误处理设施是否有效Checklist 是否检查错误出现资源使用前后其他模块使用前后出现错误 是否进行错误处理抛出错误通知用户进行记录错误处理是否有效在系统干预前处理报告和记录的错误真实详细其他 内容 单元测试目标任务单元测试技术静态分析测试设计单元测试流程管理流程测试文档 单元测试技术 静态分析定义 不实际运行程序 而是通过检查和阅读等手段来发现错误并评估代码质量的软件测试技术 也称为静态测试技术 方法 走查 WalkThrough审查 Inspection评审 Review MichaelFaganIBM 1976 单元测试技术 静态分析 走查定义 开发组内部进行的 采用讲解 讨论和模拟运行的方式进行的查找错误的活动 经验 限时避免跑题参加人员经验丰富的开发人员和本模块相关的开发人员本项目组的新人由本模块的开发者进行讲解 回答问题并记录不要现场修改检查要点逻辑错误代码标准 规范 风格 单元测试技术 静态分析 审查定义 开发组内部进行的 采用讲解 提问并使用Checklist方式进行的查找错误的活动 一般有正式的计划 流程和结果报告 经验 以会议的形式 制定会议目标 流程和规则 结束后要编写报告参加人员经验丰富的开发人员和本模块相关的开发人员本项目组的新人由另外一名开发者进行讲解 其他开发者主要按照Checklist进行提问并填表 本模块开发者回答问题并记录不要现场修改检查要点设计需求代码标准 规范 风格 单元测试技术 静态分析 评审定义 开发组 测试组和相关人员 QA 产品经理等 联合进行的 采用讲解 提问并使用Checklist方式进行的查找错误的活动 一般有正式的计划 流程和结果报告 经验 以会议的形式 制定会议目标 流程和规则 结束后要编写报告 相关资料要在会议前下发并阅读 参加人员经验丰富的开发人员和本模块相关的开发人员测试组和相关人员由另外一名开发者进行讲解 其他开发者主要按照Checklist进行提问并填表 本模块开发者回答问题并记录不要现场修改检查要点设计需求代码标准 规范 风格文档的完整性和一致性 内容 单元测试目标任务单元测试技术静态分析测试设计单元测试流程管理流程测试文档 单元测试技术 测试设计定义 依据模块的内部结构 设计测试用例的过程 主要采用白盒测试技术 关注逻辑覆盖原则 1 保证没有死代码保证一个模块中的每个独立路径都可能被使用到2 保证对所有的逻辑值都测试true和false3 在上下边界和合法的范围内运行所有的循环4 确保内部数据结构的有效性和完整性 单元测试技术 测试设计逻辑覆盖测试方法 1 语句覆盖选择足够的测试用例 使得程序中每一条可执行语句至少被执行一次 2 判定覆盖选择足够的测试用例 使得程序中每一个分支判断的每一种可能结果 主要指switch case情况 都至少被执行一次 判定覆盖也叫分支覆盖 3 条件覆盖选择足够的测试用例 使得程序中每一个分支判断中的每一个条件的可能结果都至少被执行一次 单元测试技术 测试设计逻辑覆盖测试方法 1 语句覆盖2 判定覆盖3 条件覆盖4 判定 条件覆盖选择足够的测试用例 使得同时满足判定覆盖和条件覆盖 5 条件组合覆盖选择足够的测试用例 使得程序中每一个分支判断中的每一个条件的每一种可能组合结果都至少被执行一次 6 路径覆盖选择足够的测试用例 使得程序中所有的可能路径都至少被执行一次 单元测试技术 测试设计逻辑覆盖测试方法 单元测试流程 管理流程主要指动态测试应用流程 针对测试目标 规定测试任务 资源分配 人员角色 进度安排等 根据测试计划 设计测试用例 包括 测试步骤 测试场景 测试代码 测试数据 包括预期结果 根据测试计划 配置测试环境 并手动或者自动执行测试设计 根据测试计划 忠实地记录测试执行的过程和结果 分析测试记录 如果发现与预期结果不同 确定并重现缺陷 检查测试设计是否全部执行完毕 缺陷是否全部关闭 记录 分发 评估 关闭缺陷报告 分析测试过程和缺陷报告 评估测试质量和测试效果 给出是否通过测试的建议 单元测试流程 测试文档主要指动态测试应用文档 测试计划文档 测试用例文档 测试记录文档 缺陷跟踪报告 测试总结报告 单元测试文档 测试计划编号如 ut tp0016标题如 文字排版功能 字间距 MarchCalculator版本号如 V1 0执行状态如 未执行修改记录如 2003年7月1日 某某编制 修改 原因测试目标如 语句覆盖测试人员如 某某1负责执行测试用例xxx 某某2负责执行测试用例xxx测试用例编号 多个 如 ut tc00021 ut tc00031 ut tc00035 被测试单元代码位置如 tag1 layout marchCal cpp 单元测试文档 测试用例编号如 ut tc00016标题如 测试 文字排版功能 字间距 MarchCalculator 版本号如 V1 3执行状态如 已经执行修改记录如 2003年7月2日 某某编制 修改 原因测试步骤如 配置运行环境 输入测试数据 执行X功能 测试代码 观察 记录XX测试场景如 在联网的环境下测试代码如 ut tcc00021 位置 ut tcc00035 位置 测试数据如 输入数据 输入文件 文字描述 预期结果 性能 图片 文字描述 单元测试文档 测试记录编号如 ut tr00016标题如 记录测试 文字排版功能 字间距 MarchCalculator 结果填写记录如 2003年7月2日 某某填写 原因测试用例编号如 ut tc0016输出结果如 图片 文字描述测试观察符合 不符合期望结果 单元测试文档 缺陷跟踪报告编号如 ut dt00016标题如 文字排版功能 字间距 MarchCalculator计算错误版本号如 V1 3执行状态如 空白 草稿 提交 审批 分发 正在修改 修改完毕 正在确认 关闭 修改记录如 2003年7月2日 某某编制 修改 原因测试环境和版本号码 程序编写人员错误严重程度和优先级别错误详细描述重现步骤和方式 对应的测试记录编码附件建议修改方式修改内容 结果及修改人员签字 日期确认内容 结果及确认人员签字 日期 单元测试文档 测试总结报告编号如 ut tr00016标题如 文字排版功能 字间距 MarchCalculator单元测试总结报告版本号如 V1 5执行状态如 已经提交修改记录如 2003年7月3日 某某编制 修改 原因测试计划编号计划执行情况缺陷统计 缺陷总数 未解决数目 及为解决缺陷列表后续处理措施是否通过单元测试 单元测试工具 Junit WhatisJUnit DefactoJavaunittestingframeworkIntegratednicelywithIDEsandAntEasytolearnSupportmanyIDEsJBuilder VisualAge Eclipse 实例 publicclassCar publicintgetWheels return4 实例 cont publicclassTestCar publicstaticvoidmain String args Carcar newCar if 4 car getWheels System out println Ok elseSystem out println Error importjunit framework TestCase publicclassCarTestextendsTestCase protectedCarcar protectedintexpectedWheels publicstaticvoidmain String args junit swingui TestRunner run CarTest class publicCarTest Stringarg0 super arg0 实例 cont protectedvoidsetUp throwsException car newCar expectedWheels 4 protectedvoidtearDown throwsException super tearDown publicvoidtestGetWheels assertEquals expectedWheels car getWheels JUnitRulesandConventions SubclassTestCasePriortov3 8 String argconstructorrequiredTestmethodspublicvoidtestXXX throws Anynumberofassertionsper
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙教版2024-2025学年七下数学期末模拟练习卷-学生用卷
- 陕西省西安市远东第二中学2024-2025学年八年级下学期5月月考道德与法治试卷(无答案)
- 工业废弃物处理与污染防治
- 工业旅游视角下的现代厂区建设
- 工业机器人系统设计与应用研究
- 工业机器人与数控技术的融合
- 工业机器人技术及其电机控制策略
- 工业污染监测与控制技术
- 工业污染防治的新技术动态
- 工业污染防治措施与标准
- 2025年度智慧城市建设项目委托招标代理服务合同
- 招标代理服务投标方案(技术标)
- 行业周期波动中的政策导向-洞察分析
- 2025年山西云时代技术有限公司招聘笔试参考题库含答案解析
- 河南省驻马店市2023-2024学年高二下学期7月期末考试 英语 含解析
- 2025年中国中煤能源集团限公司招聘10人高频重点提升(共500题)附带答案详解
- 发展性障碍学生就业转衔的家长支持研究
- 《保密意识培训》课件
- 2024年6月英语四级考试真题及答案(第1套)
- 2024中国糖尿病合并慢性肾脏病临床管理共识解读
- 寺院承包合同范例
评论
0/150
提交评论