软件工程与软件测试

上传人:aa****6 文档编号:57187475 上传时间:2018-10-19 格式:PPT 页数:51 大小:633KB
返回 下载 相关 举报
软件工程与软件测试_第1页
第1页 / 共51页
软件工程与软件测试_第2页
第2页 / 共51页
软件工程与软件测试_第3页
第3页 / 共51页
软件工程与软件测试_第4页
第4页 / 共51页
软件工程与软件测试_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《软件工程与软件测试》由会员分享,可在线阅读,更多相关《软件工程与软件测试(51页珍藏版)》请在金锄头文库上搜索。

1、软件测试技术,1.2 软件缺陷与软件故障,指存在于软件(文档、数据、程序)之中的那些 不希望或不可接受的偏差。导致软件在某个特定 条件下出现故障,这时称软件缺陷被激活。,指软件运行过程中出现的一种不希望或不可接受 的内部状态。此时若无适当措施(容错)加以及 时处理,便产生软件失效。,指在软件生命周期内的不希望或不可接受的人为 错误,其结果是导致软件缺陷的产生。,指软件运行时产生的一种不希望或不可接受的 外部行为结果。,1.2 软件缺陷与软件故障,软件缺陷和软件故障案例: 案例1 美国迪斯尼公司的狮子王游戏软件bug 兼容性问题 案例2 美国航天局火星登陆事故系统测试 衔接问题 案例3 跨世纪“

2、千年虫”问题 案例4 “冲击波”计算机病毒 案例5 Windows 2000 中文输入法漏洞 案例6 金山词霸bug,1.2 软件缺陷与软件故障,软件产生错误的原因:(1)软件复杂性 (2)交流不够、交流上有误解或者根本不进行交流 (3)程序设计错误 (4)需求变化 (5)时间压力 (6)代码文档贫乏 (7)软件开发工具自身的错误,一个混沌的过程,输 入,可接受的产品,返 工,顾 客,质量?“一切取决于进度”,1.3 软件质量与质量模型,1.3 软件质量与质量模型,软件质量是软件的生命,它直接影响软件的使 用与维护。 那什么是软件质量?,ISO/IEC9126-1991(GB/T6260-19

3、96)定义:软件质量是与软件产品满足明确或隐含需求的能力有关的特征和特性的总和。能满足给定需求的特性 具有所期望的各种属性组合的程度 能满足用户综合期望的程度 软件的组合特性,1.3 软件质量与质量模型,是否文档齐备?,界面是否友好?,结构是否良好?,是否符合需求?,面对众多的质量因素如何取折衷,这实际上就是区分质量因素对软件质量影响程度轻重的问题,即软件质量模型。 常见的软件质量模型,1.3 软件质量与质量模型,分层模型 “量化”!,Boehm质量模型和McCall质量模型,图1.4 McCall软件质量模型(1979),图1.5所示为ISO/IEC 9126-1991标准规定的软件质量度量

4、模型。它由3层组成,其中第1层称为质量特性,第2层称为质量子特性,第3层称为度量。,1.3 软件质量与质量模型,图1.5 ISO软件质量评价模型(1991),用户满意度,新的ISO/IEC9126软件质量模型(2001),内部质量 在软件开发过程中可维护性、灵活性、可移植性、可重用性、可读性、可测试性、可理解性 外部质量 在预定的系统环境中正确性、可用性、效率、可靠性、完整性、适应性、准确性、坚固性 使用质量 从用户的观点出发有效性、生产率、安全性、满意程度等,软件能力成熟度模型-CMM,美国卡内基-梅隆大学软件工程研究所(SEI)研制的CMM(Capability Maturity Mode

5、l)是用于衡量软件过程能力的事实标准,同时也是目前软件过程改进最好的参考标准。 CMM 1.0于1991年制定。 到2000年,CMM演化成为CMMI(Capability Maturity Model Integration) CMMI-SE/SW 1.1(CMMI for System Engineering and Software Engineering)于2002年1月正式推出。,成熟度的五个等级,“过程决定质量”,过程域(PA),CMM 在中国,国内通过CMM等级评估的企业(2002年统计数据)公司名称 CMM级别 通过时间 摩托罗拉 L5 2000-09 华为印度所 L4 200

6、1-12 东大阿尔派 L3 2001-06 托普软件 L3 2001-11 联想软件事业部 L3 2002-01 鼎新公司 L2 1999-07 博通公司 L2 2001-04 用友软件 L2 2001-06 浪潮通软 L2 2001-11 东方通科技 L2 2001-12 新太科技 L2 2001-12 神州数码 L2 2002-01,1.4 软 件 测 试,对软件测试的误解:如果发布出去的软件有质量问题,那是软件测试人员的错。 软件测试技术要求不高,至少比编程容易多了,随便找一个人就能做。 有时间就多测试一些,来不及就少测试一些。 软件测试是测试人员的事,与开发人员无关。 设计-实现-测试

7、,软件测试是开发后期的一个阶段。,软件产品开发完毕,再进行测试的观念有悖于生命周期理论。软件产品质量问题越晚发现,修复的代价越大。,需求,设计,编程,内部测试,外部测试,发布,修正BUG的代价,对软件测试的误解:,1.4 软 件 测 试,1.4.1 软件测试的定义 测试是一个程序的执行过程,其目的在于发现错误? 测试是为了证明程序是没有错误的?,在IEEE提出的软件工程标准术语中,软件测试被定义为:“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。”软件测试是与软件质量密切联系在一起的,归根结底,软件测试是为了保证软件质量。

8、,1.4.1 软件测试的定义,测试手段:验证(verification)和确认(validation) 验证是指如何决定软件开发的每个阶段、每个步骤的产品是否正确无误并与其前面的开发阶段和开发步骤的产品相一致。验证工作意味着在软件开发过程中开展一系列活动,旨在确保软件能够正确无误地实现软件的需求。“是否在正确地建造一个产品?” 确认是指如何决定最后的软件产品是否正确无误。其目的是证实在一个给定的外部环境中软件的逻辑正确性。 “是否建成一个正确的产品?”,1.4.1 软件测试的定义,软件生存周期各个阶段间的确认和验证,1质量保证质量保证(QA)工作通过预防、检查与改进来保证软件质量。QA采用“全

9、面质量管理”和“过程改进”的原理开展质量保证工作。软件的质量保证的措施主要有检查、评审和测试。2软件测试测试虽然也与开发过程紧密相关,但关心的不是过程的活动,而是对过程的产物以及开发出的软件进行剖析。,软件测试与质量保证的区别,软件质量保证工程师,流程引导和培训 项目问题预警、问题协助解决 项目审计和监督 过程咨询和指导,软件测试与质量保证的区别,对测试中发现的问题的分析、追踪与回归测试也是软件测试中的重要工作,因此软件测试是保证软件质量的一个重要环节。 软件质量保证活动与软件测试的关系可用下表说明:,软件测试与质量保证的区别,软件测试与质量保证的区别,1.4.2 软件测试贯穿于整个开发周期,

10、软件生命周期中的主要测试活动,1.4.3 软件测试的目的,为了保证软件产品的最终质量; 对软件产品进行质量控制; 对软件质量进行度量和评估; 帮助软件过程改进; 为软件可靠性提供依据。,1.4.3 软件测试的目的,Glen Myers The Art of Software Testing 测试是一个程序的执行过程,目的在于发现错误; 一个好的测试用例在于发现了还未曾发现的错误; 一个成功的测试是发现至今尚未察觉的错误的测试。注意:测试是为了证明程序有错,而不能保证程序没有错误。,1.4.4 软件测试的原则,所有的测试都应追溯到用户需求。 应当把“尽早地和不断地进行软件测试”作为软件测试者的座

11、右铭。 程序员应该避免检查自己的程序,测试工作应该由独立的第三方来完成。 pareto原则:测试发现的错误中80%很可能起源于20%的模块中。应孤立这些疑点模块,进行重点测试。 设计测试用例时,应该考虑各种情况。(合法的、不合法的、异常的、极端的),对测试错误结果要有一个确认的过程。 制定严格的测试计划。 完全测试是不可能的,测试需要终止。 程序修改后要回归测试 妥善保存一切测试过程文档。,1.4.4 软件测试的原则,1.4.5 软件测试模型,软件测试模型是对软件测试过程的一种抽象,用于定义软件测定的流程和方法。 常用的软件测试模型,1.4.5 软件测试模型,V模型是最具有代表性的测试模型。V

12、模型最早是由Paul Rook在20世纪80年代后期提出的。,V模型,局限性: 把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现,忽视了对需求分析、系统设计等活动的验证和确认。,基于“尽早地和不断地进行软件测试”的原则,在软件的需求和设计阶段的测试活动应遵循IEEE1012-1998软件验证与确认(V&V)的原则。,W模型,W模型,局限性: W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。,H模型,H模型中, 软件测试是一个完全独立的流程,贯穿于整个产品的周期,与其他流程并发地进行。“尽早准备,尽早执行”

13、,任意开发过程,X模型,X模型是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行的程序。,图1.11 软件测试信息流,1.4.6 软件测试信息流,1.4.7 软件测试的分类,1按测试方式划分:静态测试和动态测试 2按照测试实施组织划分: 开发方测试(测试) 用户测试(测试) 第三方测试 3. 按照测试方法划分:白盒测试和黑盒测试 4按照测试过程划分: 单元测试 集成测试 系统测试 验收测试,按照测试目的划分:,1.4.8 软件测试流程,软件测试工作必须要通过制定测试计划、设计 测试、实施测试、执行测试、评估测试几个阶段来 完成。

14、其流程如图1.12所示。,图1.12 软件测试流程,项目负责人,(1)软件测试背景 (2)软件测试依据 (3)测试范围(即测试活动需要覆盖的范围)界定 (4)风险的确定 (5)资源的规划 (6)测试策略 (7)时间表的制定 (8)其他,1 制定测试计划,软件测试计划,设计测试阶段要设计测试用例和测试过 程,要保证测试用例完全覆盖测试需求。如何设计测试用例?,2 设计测试,软件测试工作的重点和难点,一个好的测试用例 是否可以发现尚未发现的软件缺陷? 是否可以覆盖全部的测试需求?,实施测试是指准备测试环境、获得测试 数据、开发测试规程,以及为该过程挑选和 准备辅助测试工具的过程。,3 实施测试,4

15、 执行测试,执行测试是执行所有的或选定的一些测试用 例,并观察其测试结果的过程。,执行测试的过程由以下4个部分组成: 输入。要完成工作所必须的入口标准或可交付的结果。 执行过程。从输入到输出的过程或工作任务。 检查过程。确定输出是否满足标准的处理过程。 输出。推出标准或工作流程产生的可交付的结果。,4 执行测试,主要评测方法:测试覆盖和质量评测 测试覆盖是对测试完全程度的评测,它是由测试需求和测试用例的覆盖或已执行代码的覆盖表示的。质量评测是对测试对象(系统或测试的应用程序)的可靠性、稳定性以及性能的评测,它建立在对测试结果的评估和对测试过程中确定的缺陷分析的基础上。,5 评估测试,测试的完全程度如何?,软件测试是伴随着软件的产生而产生 的,有了软件的生成和运行就必然有软件 测试。,1.5 软件测试的发展历程及趋势,1.6 软件测试人员的基本素质,1技术能力,具有良好的计算机编程基础 2创新能力,具有创新精神和超前意识 3不懈努力,追求完美,耐心 4洞察力,怀疑精神,具有整体观念,对细节敏感 5沟通能力,团队合作精神,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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