1、软件质量保证与测试,主要内容说明,质量保证与测试 核心测试技术 常用的测试策略、方法 面向对象的软件测试 基于开发过程的软件测试 软件自动化测试工具介绍,概论,软件的质量 软件质量的度量标准 软件质量与测试 软件测试的基本知识,1.1 软件及软件质量,软件 软件=程序+数据+文档+服务 软件质量保证的困难 软件的变的更大 软件的功能更复杂 软件的相关软件或硬件增多 软件开发中的人员更多,分工更细 软件的相关开发技术更多、可选性更强 其他因素,1.2 软件质量的含义,产品质量 开发过程质量 如CMM模型、ISO9000等 强调可追溯性、可控制性 应用质量 性价比 版本兼容性 其他,1.3 软件质
2、量的主要特征,功能性 安全性 可靠性 可用性 效率 可维护性 可移植性 其他,1.4 软件缺陷的存在,软件错误与缺陷 缺陷的产生原因 技术原因 分析设计不合理 编码错误 团队协作 需求获取或分析不完整 团队成员沟通不一致 软件原因 第三方硬件、软件存在缺陷 实际应用环境与规范有差别,发现缺陷! 定位缺陷!,1.5 软件测试,测试的含义 测试的目的和原则 测试的成本 测试的方法 测试的任务 测试的流程 测试中的机构和人员 自动化测试及工具 测试的管理,1.5.1 软件测试,软件测试:就是为发现缺陷并纠正缺陷,而做的工作。 测试的对象 可以是软件开发过程中的每个产品 最通常的是软件本身 测试行为
3、严格意义上:静态测试与动态测试 Myers:“为发现错误而执行程序的过程”,1.5.2 测试的目的(Myers),发现错误而执行程序的过程 测试是为了证明有错,而不能证明无错 一个好的测试用例:能发现未发现错误 一个成功的测试:发现未发现的错误,1.5.3 测试的成本,工作量占整个开发的比例-一般25-50% 测试人员与开发人员的比例 根据风险决定测试的深度与广度 选择正确的测试技术 每种技术在寻找不同类型的缺陷时,有不同的优缺点 测试用例爆炸 测试资源的限定,1.5.4 测试的方法,静态测试 人工:走查、审查、评审 工具辅助 动态测试-基于用例执行的测试 执行并发现缺陷 可以使用自动化测试工
4、具 新旧系统的平行处理测试 自动化工具测试,1.5.5 测试的任务,制定测试计划 设计测试用例 执行单元测试 执行功能测试 执行集成测试 执行系统测试 执行性能测试 执行验收测试 撰写测试报告 进一步的工作计划,测试计划的主要内容,定义测试的任务和目的 决定测试的人员、时间 决定测试的环境软件、硬件 最重要:决定测试策略 划定各待测部分的优先级 为各部分定义测试强度 选定测试工具 其他,设计用例、数据,执行,评估,设计测试用例 依据不同的测试策略,设计测试用例 根据测试用例,设计测试数据测试用例与测试数据是一对多的关系 使用测试数据执行测试并做完整记录 测试的可重现性是绝对必要的 评估测试结果
5、,并给出测试总结报告,1.5.6 测试的基本原则,测试可以证明缺陷存在,但不能证明缺陷不存在 穷尽测试时不可能的 测试活动应尽早开始 缺陷有集群性 完整的用例 重复使用同一个测试用例,效能减低 纠正了缺陷不能保证整个系统满足用户的预期和要求 严格测试过程,排除随意性 管理好测试计划、用例、统计和分析报告,1.5.7 测试的过程模型,开发流程对测试的影响 测试总体流程图 测试活动分布图 测试流程关系图,开发流程对测试的影响 -瀑布模型,特点 自顶向下,逐步细化 主要问题 完整需求的获取困难 修改困难 测试量大 开发过程、开发进度不易控制,开发模型对测试的影响 -原型模型,特点 用户需求不准确或难
6、确定 短时间内给出产品框架及主要功能说明 问题 分析和设计考虑不充分 需求改变,后期难度激增 需求改变后,测试难度也大增,开发模型对测试的影响 -增量模型,特点 要有良好的设计(复用、可扩充) 这对设计人员的要求较高 测试 可使用回归测试 对测试人员的要求较高,开发模型对测试的影响 -迭代模型,当前应用广泛 好处 用户的角度 开发者的角度 测试人员的角度 维护人员的角度 从质量管理者的角度,测试总体流程图,立项阶段,需求阶段,设计阶段,编码和单元测试阶段,集成测试阶段,系统测试阶段,验收测试阶段,总结阶段,需求阶段测试工作流程,需求工作培训,编写需求(业务、用户、功能),主测试计划,需求评审,
7、需求规格说明书,需求变更,需求变更记录,需求报警,下一步工作,系统测试方案,需求报警信号,设计与编码阶段测试工作流程,上一阶段,单元测试报告,集成测试方案,评审,需求文档,概要设计,详细设计,单元测试方案,编码,单元测试,测试抽检,验证标准,下一阶段,集成测试与系统测试工作流程,集成测试方案,上一阶段,集成测试,系统测试申请,系统测试方案,系统测试,系统测试报告,评估,验收测试,质量合格,工作总结,软件测试活动分布图,测试规范,制定测试计划,测试设计,测试实施,测试执行,评估测试,测试流程关系图,通过评审,立项申请,计划制定及提交审核,需求分析,产品测试计划,审核后的需求规格说明书,概要设计,
8、详细设计,概要设计说明书,详细设计说明书,测试流程关系图,编码单元测试,集成测试,系统测试,验收测试,单元测试记录,系统测试、 缺陷测试,产品工作报告/产品化测试,测试流程关系图,任务 定义测试策略说明书 测试覆盖粒度分析 完成功能测试矩阵 需求的变更测试 产生的文档 测试策略说明书 测试覆盖粒度直方图 功能测试矩阵 需求变更趋势图,审核后的需求规格说明书,测试流程关系图,任务 检验需求完成率 产生的文档 设计完成率说明书 加注实现率的需求规格说明书,概要设计说明书,测试流程关系图,任务 缺陷走势分析 产生的文档 缺陷走势图 缺陷分类走势图,单元测试记录,测试流程关系图,任务 缺陷走势分析 性
9、能测试 遗留问题分析 产生的文档 缺陷走势图 缺陷分类走势图 性能指标 遗留问题说明,系统测试、 缺陷测试,测试流程关系图,任务 代码完整率检验 包装清单检验 产品外观检查 产生的文档 产品质量合格证书 产品化阶段工作报告,产品化测试,1.5.8 参与测试工作的人员,上机测试人员 测试结果检查核对人员 测试数据制作人员 测试经理 测试文档审核师 测试工程师,1.5.9 自动化测试,优势 频繁、高效 人工不能,而自动可以的。 时间充足 节省人工的重复劳动 可重复性好 不足 不能完全取代人 初期投入大 覆盖不完整 时间长,自动化测试工具,分类 找错工具(如JTest/ WinRunner) 测试支持工具(如TestManager) 选择工具 测试流程管理自动化工具应优先 性能测试自动化产品优先于功能测试自动化工具 主流产品优先 扩展性要求,