软工概论:利用软件测试的策略

上传人:ap****ve 文档编号:118753439 上传时间:2019-12-24 格式:PPT 页数:51 大小:1.44MB
返回 下载 相关 举报
软工概论:利用软件测试的策略_第1页
第1页 / 共51页
软工概论:利用软件测试的策略_第2页
第2页 / 共51页
软工概论:利用软件测试的策略_第3页
第3页 / 共51页
软工概论:利用软件测试的策略_第4页
第4页 / 共51页
软工概论:利用软件测试的策略_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《软工概论:利用软件测试的策略》由会员分享,可在线阅读,更多相关《软工概论:利用软件测试的策略(51页珍藏版)》请在金锄头文库上搜索。

1、1 第14章 软件测试策略 什么是软件质量? n软件质量的定义不明确,就谈不上软件测试。 n高质量的软件是一个重要目标,在一般意义上, 软件质量可以这样定义:在一定程度上,应用有 效的软件过程,创造有用的产品,为生产者和使 用者提供明显的价值。 These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 2 软件质量保证 n延伸前述的质量定义,软件质量保

2、证就是为了保 证软件高质量而必需的“有计划、系统化的行动 模式”。 n软件质量保证(质量管理)是适用于整个软件过 程的一种普适性活动,而不仅仅是在编码完成之 后才开始进行。 These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 3 软件质量保证 n软件质量保证是由两个不同人群相联系的多种任 务组成分别是做技术工作的软件工程师和负 有质量策划、监督、

3、记录、分析和报告责任的软 件质量保证组。 n其中,软件工程师通过采用可靠的技术方法和措 施,进行技术评审,并进行周密计划的软件测试 来获得质量。 n可见,软件测试是软件质量保证活动中的一部分 。 These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 4 5 软件测试 测试是在交付产品给最终用户之前,带 着特定的目的在运行程序的过程中发现 错误。 测

4、试的目的是为了发现测试对象的问题 ,而不是证明测试对象没有问题。 测试可以提高软件的质量吗? 软件公司一般都有自己的测试中心或测试部 门,他们的职责和作用是什么呢?读者可能会不 加思索地回答:“测试可以提高软件产品的质量 !” 我们说:“回答错了”,为什么?因为测试只 能发现软件产品的“不符合项”或错误(Bug),不 能改正软件产品的错误,所以不能直接提高软件 产品的质量。这个问题就是软件测试的作用。 优秀的测试团队可在早期发现错误,使软件 维护的费用降到最低点。 These slides are designed to accompany Software Engineering: A Pr

5、actitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 6 7 测试显示了什么 错误错误 需求符合性需求符合性 性能性能 质量迹象质量迹象 errorserrors requirements conformancerequirements conformance performanceperformance an indicationan indication of qualityof quality 8 策略性方法 n测试策略为软件开发人员提供了测试模板,且具备下述一 般特征

6、: n为完成有效的测试,应该进行有效的技术评审。通过评审 ,许多错误可以在测试开始之前排除。 n测试开始于构件层,然后向外“延伸”到整个基于计算机系 统的集成。 n不同的测试技术适用于不同的软件工程的方法和不同的时 间点。 n测试由软件开发人员和(对大型项目而言)独立的测试组 执行。 n测试和调试是不同的活动,但任何测试策略都必须包括调 试。 9 V & V(验证与确认 Verification and Validation) n软件测试是通常所讲的更为广泛的主题验证 与确认的一部分。 n验证是指确保软件正确地实现某一特定功能的一 系列活动。 n确认指的是确保开发的软件可追溯到客户需求的 另外

7、一系列活动。Boehm Boe81 用另一种方式说 明了这两者的区别: n验证:我们在正确地构造产品吗? n确认:我们在构造正确的产品吗? 10 谁测试软件? 开发者开发者 独立测试者独立测试者 理解系统,但是测试很理解系统,但是测试很“ “温和温和” ”,由,由“ “交付交付” ” 驱动。驱动。 开发者的软件分析与设计连同编码是建设开发者的软件分析与设计连同编码是建设 性的任务。其精心地设计和执行测试,试性的任务。其精心地设计和执行测试,试 图证明其程序的正确性,而不是发现错误图证明其程序的正确性,而不是发现错误 。 必须了解系统,但试图打破它,由质量驱必须了解系统,但试图打破它,由质量驱

8、动。动。 以开发者的观点,可以认为测试是破坏性以开发者的观点,可以认为测试是破坏性 的。由一种微妙但确实存在的企图,试图的。由一种微妙但确实存在的企图,试图 摧毁软件工程师所建造的大厦。摧毁软件工程师所建造的大厦。 developerdeveloper independent testerindependent tester 11 测试策略 系统工程 需求分析模型 设计模型 代码生成 单元测试 集成测试 确认测试 系统测试 System engineering Analysis modeling Design modeling Code generation Unit test Integra

9、tion test Validation test System test 12 测试策略 n我们首先以小的测试开始,随后转向大的测试 n对于传统的软件 n我们最初关注模块(构件) n随后关注集成模块 n对于面向对象软件 n我们的关注点从单独模块“小的测试”(传统的观点) 变化到一个包含属性和操作以及暗含沟通和协作的面 向对象类。 13 策略问题 n早在测试之前,就要以量化的方式规定产品需求。 n明确地陈述测试目标。 n了解软件的用户并为每类用户建立用户描述。 n指定强调“快速周期测试”的测试计划。 n建立能够测试自身的“健壮”软件。 n测试之前,利用有效的正式技术评审作为过滤器。 n实施正式

10、技术评审以评估测试策略和测试用例本身。 n为测试过程建立一种持续的改进方法。 单元测试 n单元测试是对软件的基本组成单元进行测试。 n单元可以是:函数、子过程 类或类的方法 独立的过程和函数 一个菜单或显示界面 These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 14 15 单元测试 被测试的模块被测试的模块 测试用例测试用例 结果结果 软件工程

11、师软件工程师 modulemodule to beto be testedtested test casestest cases resultsresults softwaresoftware engineerengineer 16 单元测试 接口接口 局部数据结构局部数据结构 边界条件边界条件 独立路径独立路径 错误处理路径错误处理路径 测试用例测试用例 被测试的模块被测试的模块 interface interface local data structureslocal data structures boundary conditionsboundary conditions indep

12、endent pathsindependent paths error handling pathserror handling paths modulemodule to beto be testedtested test casestest cases 单元测试的主要任务 These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 17 模块块 模块

13、块接口 局部数据结结构 独立路径测试测试 出错处错处理 边边界条件 模块接口 n这是对模块接口进行的测试,检查进出程序单元 的数据流是否正确。模块接口测试必须在任何其 它测试之前进行。若数据不能正确的输入输出, 那么其他测试都是没有意义的。 These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 18 局部数据结构 n在模块工作过程中,必须测试模块内

14、部的数据能 否保持完整性,包括内部数据的内容、形式及相 互关系不发生错误。 n对于局部数据结构,应该在单元测试中注意发现 以下几类错误: (1)不正确的或不一致的类型说明。 (2)错误的初始化或默认值。 (3)错误的变量名,如拼写错误或书写错误。 (4)下溢、上溢或者地址错误。 These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 19 独立路径测

15、试 n在单元测试中,最主要的测试是针对路径的测试 。测试用例必须能够发现由于计算错误、不正确 的判定或不正常的控制流而产生的错误。执行控 制结构中的所有独立路径以确保模块中的所有语 句至少能执行一次。 These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 20 出错处理 n测试出错处理的重点是模块在工作中发生了错误 ,其中的出错处理设施是否有效。好

16、的设计要求 能够预置出错条件并设置异常处理路径,以便当 错误确实出现时重新确定路径或彻底中断处理。 n检验程序中的出错处理可能面对的情况有: (1)对运行发生的错误描述难以理解。 (2)所报告的错误与实际遇到的错误不一致。 (3)出错后,在错误处理之前就引起系统的干预 。 (4)例外条件的处理不正确。 (5)提供的错误信息不足,以至于无法找到错误 的原因。 These slides are designed to accompany Software Engineering: A Practitioners Approach, 7/e (McGraw-Hill 2009). Slides copyright 2009 by Roger Pressman. 21 边界条件 n边界测试是单元测试的最后一步,必须采用边界 值分析方法来设计测试用例,测试

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号