640 likes | 840 Views
第 五 章. 软件测试管理 及自动化. 1. 软件测试报告. 主要内容. 2. 软件测试管理. 3. 软件测试自动化. 4. 软件测试工具. 第 5 章 软件测试管理及自动化. IEEE 软件缺陷报告模板. 软件缺陷报告文档. 软件缺陷的概念. 简单说,缺陷就是存在于软件(文档、数据、程序)之中的那些不希望,或不可接受的偏差,而导致软件产生的质量问题。. 软件缺陷的种类. 软件未达到软件规格说明书中规定的功能; 软件超出软件规格说明书中指明的范围; 软件未达到软件规格说明书中指出的应达到 的目标; 软件运行出现错误;
E N D
第 五 章 软件测试管理 及自动化
1 软件测试报告 主要内容 2 软件测试管理 3 软件测试自动化 4 软件测试工具 第5章 软件测试管理及自动化
软件缺陷的概念 简单说,缺陷就是存在于软件(文档、数据、程序)之中的那些不希望,或不可接受的偏差,而导致软件产生的质量问题。
软件缺陷的种类 • 软件未达到软件规格说明书中规定的功能; • 软件超出软件规格说明书中指明的范围; • 软件未达到软件规格说明书中指出的应达到 的目标; • 软件运行出现错误; • 软件测试人员认为软件难于理解,不易使用,运行速度慢,或者最终用户认为软件使用效果不好。
(1)功能不正常 (2)软件在使用上不方便 (3)软件的结构未做良好规划 (4)功能不充分 (5)与软件操作者的互动不良 (6)使用性能不佳 (7)未做好错误处理 (8)边界错误 (9)计算错误 (10)使用一段时间所产生的错误 (11)控制流程的错误 (12)在大数据量压力之下所产生的错误 (13)在不同硬件环境下产生的错误 (14)版本控制不良所产生的错误 (15)软件文档的错误
不论测试计划多么完善,测试执行多么努力,仍不能保证所有软件缺陷都被发现,也不能保证发现了的缺陷都被修复。有些软件缺陷可能会完全被忽略,还有一些可能推迟到软件后续版本中修复。 软件缺陷的修复
(1)没有足够的时间 (2)不算真正的软件缺陷 (3)修复的风险太大 (4)不值得修复 软件缺陷未被修复的原因
1.尽快报告软件缺陷 2.有效地描述软件缺陷 3.在报告软件缺陷时不做任何评价 4.补充和完善软件缺陷报告 报告软件缺陷的基本原则
有效的软件缺陷的描述 • (1)简单与短小 • (2)明确指明错误类型 • (3)单一 • (4)使用IT业界惯用的表达术语 • 和表达方法
软件缺陷分析 • 缺陷发现率 • 缺陷潜伏期 • 缺陷密度
缺陷潜伏期又称阶段潜伏期,是一种特殊类型的缺陷分布度量。在实际测试工作中,发现缺陷的时间越晚,这个缺陷所带来的损害就越大,修复这个缺陷所耗费的成本就越多。 缺陷潜伏期
软件缺陷密度是一种以平均值估算法来计算出软件缺陷分布的密度值: 缺陷密度 例如:某个项目有20万行代码,在测试工作中共找出900个软件缺陷,其缺陷密度为:900/200=4.5,也就是说,每千行程序代码内会产生4.5个缺陷。
1 软件测试报告 主要内容 2 软件测试管理 3 软件测试自动化 4 软件测试工具 第5章 软件测试管理及自动化
测试文档 • 测试文档是对要执行的软件测试及测试的结果进行描述、定义、规定和报告的任何书面或图示信息,对测试阶段工作的指导与评价具有重要作用。 • 根据测试文档所起的不同作用,通常把它分成两类,即前置作业文档和后置作业文档。前者包括测试计划及测试用例的文档;后者是在测试完成后提交的,主要包括软件缺陷报告和分析总结报告。
测 试 日 志 IEEE 829-1998软件测试文档编制标准 测试日志模板 目录 测试日志的标识符 描述 活动和时间目录
IEEE 829-1998软件测试文档编制标准 • 测试总结报告模板 • 目录 • 测试总结报告标识符 • 总结 • 差异 • 综合评估 • 结果总结 • 5.1 已解决的意外事件 • 5.2 未解决的意外事件 • 6. 评价 • 7. 建议 • 8. 活动总结 • 9. 审批 测试总结报告
软件测试计划 测试计划就是描述所有要完成的测试工作,包括被测试项目的背景、目标、范围、方式、资源、进度安排、测试组织,以及与测试有关的风险等方面。
1.制定测试计划应尽早开始 2.保持测试计划的灵活性 3.保持测试计划简洁和易读 4.尽量争取多渠道评审测试计划 5.计算测试计划的投入 制定测试计划的原则
1.与开发者意见不一致 2.缺乏测试工具 3.培训不够 4.管理部门缺乏对测试工作的理解和支持 5.缺乏用户的参与 6.测试时间不足 7.过分依赖测试人员 8.测试人员处于进退两难的状态 9.不得不说“不” 制定测试计划时可能出现的问题
1 软件测试报告 主要内容 2 软件测试管理 3 软件测试自动化 4 软件测试工具 第5章 软件测试管理及自动化
自动化测试就是使用软件工具来代替手工进行的一系列动作。它具有良好的可操作性、可重复性和高效率等特点。自动化测试就是使用软件工具来代替手工进行的一系列动作。它具有良好的可操作性、可重复性和高效率等特点。 自动化测试的目的是减轻手工测试的工作量,以达到节约资源(包括人力、物力等),保证软件质量,缩短测试周期的效果。 通常是使用脚本或者其他代码驱动应用程序。这一切可以通过可视用户界面(如浏览器)完成,也可以通过直接命令(从客户端发向服务器,以模仿浏览器发送的命令)完成自动化测试。 自动化测试大都属于回归测试的范畴。 自动化测试的定义
提高测试效率 降低对软件新版本进行回归测试的开销 完成手工测试不能或难以完成的测试 具有一致性和可重复性 更好地利用资源 降低风险,增加软件信任度 自动化测试优点
不能完全取代手工测试和手工测试工程师 软件自动化测试可能降低测试的效率 测试人员期望自动测试发现大量的新错误 如果缺乏测试经验,测试的组织差、文档少或不一致,则自动测试的效果比较差 软件自动化测试工具本身的问题 自动化测试的局限性
自动化测试的作用和优势 • 产生可靠的系统 • 改进测试工作质量 • 减少测试工作量并加快测试进度
需求定义的改进 性能测试的改进 负载/压力测试的改进 高质量测量与测试最佳化 改进与开发组人员之间的关系 改进系统开发生存周期 产生可靠的系统
改进多平台兼容性测试 改进软件兼容性测试 改进普通测试执行 使测试集中于高级测试问题 执行手工测试无法完成的测试 重现软件缺陷的能力 测试无需用户干预 改进测试工作质量
善于使用测试工具来进行测试,其节省时间并加快测试工作进度是毋庸置疑的,这也是自动化测试的主要优点。 尽管测试工作量一开始可能增多,但在自动化测试工具实施的第一次重复之后,测试工具投资回报就将显现出来,因为测试人员的生产率提高了。 减少测试工作量并加快测试进度
下表7-1列出了采用手工和自动化测试方式完成各测试步骤所需工作量的基准对比结果。该测试涉及1750个测试程序和700个错误。表7-1中的数字反映出通过测试自动化,测试工作总量减少75%。
1 软件测试报告 主要内容 2 软件测试管理 3 软件测试自动化 4 软件测试工具 第5章 软件测试管理及自动化
软件测试工具的分类 • 捕获错误用途工具 • 一般用途工具 • GUI自动化用途工具 • 软件产品功能、性能测试用途工具 • 测试管理工具 • 测试辅助工具
捕获错误用途的工具 • 开发人员自行编写的测试工具 • 利用所使用的开发工具的调试功能或工具 • 购买专业的调试软件
GUI自动化用途测试工具 • Robot(Rational公司) • WinRunner(Mercury Interactive公司) • QA Wizard(Seaoine Software公司)
专用代码测试工具 • BoundsCheck (Visual C++) • CodeReview (Visual Basic) • JCheck (Java) • Junit (Java) • CppUnit (C++)
白盒静态测试工具 • 静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。 • 静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。 • 静态测试工具的代表有Telelogic公司的Logiscope软件、PR公司的PRQA软件。
白盒动态测试工具 • 动态测试工具与静态测试工具不同,动态测试工具的一般采用“插桩”的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。 • 与静态测试工具最大的不同就是动态测试工具要求被测系统实际运行。 • 动态测试工具的代表有Compuware公司的DevPartner软件、Rational公司的Purify系列 、开源测试框架 JUnit