软件测试技术基础-电子教案-苟英 第十章 软件测试技术前沿

上传人:E**** 文档编号:89545245 上传时间:2019-05-27 格式:PPTX 页数:15 大小:300.58KB
返回 下载 相关 举报
软件测试技术基础-电子教案-苟英 第十章 软件测试技术前沿_第1页
第1页 / 共15页
软件测试技术基础-电子教案-苟英 第十章 软件测试技术前沿_第2页
第2页 / 共15页
软件测试技术基础-电子教案-苟英 第十章 软件测试技术前沿_第3页
第3页 / 共15页
软件测试技术基础-电子教案-苟英 第十章 软件测试技术前沿_第4页
第4页 / 共15页
软件测试技术基础-电子教案-苟英 第十章 软件测试技术前沿_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《软件测试技术基础-电子教案-苟英 第十章 软件测试技术前沿》由会员分享,可在线阅读,更多相关《软件测试技术基础-电子教案-苟英 第十章 软件测试技术前沿(15页珍藏版)》请在金锄头文库上搜索。

1、第十章 软件测试技术前沿,宁华 ,本章重点: 了解软件测试的现状 掌握敏捷的测试方法 掌握测试驱动开发,计算机科学发展至今,最根本的意义是解决人类手工劳动的复杂性,成为替代人类某些重复性行为模式的最佳工具。而在计算机软件工程领域软件测试的工作量很大,一般测试会占用到40%的开发时间;一些可靠性要求非常高的软件测试工作量巨大,测试时间甚至占到60%开发时间。而且测试中的许多操作是重复性的,非智力性的和非创造性的,并要求做准确细致的工作,计算机就最适合于代替人工去完成这样的任务。因而进行自动化测试能够提高软件测试工作效率,提高开发软件的质量,降低开发成本和缩短开发周期。从而有了敏捷测试方法和测试驱

2、动开发方法。,一、软件测试的现状、原因及解决方法,1、软件测试的现状 在软件业较发达的国家, 软件测试不仅早已成为软件开发的一个重要组成部分,而且在整个软件开发的系统工程中占据着相当大的比重。例如,在美国的软件开发中,需求分析和规划确定的比重只有3%,设计占5%,编程占7%,而测试要占到15%,其余67% 是投产和维护。 而在我国,由于总体上,国内软件项目过程不规范,导致重视编码和轻视测试的现象,对于软件测试的重要性、测试方法和流程等还存在很多错误的认识。,2、现状的原因分析 在研究中我们发现,软件测试处于目前这种状态主要有以下几个因素: (1)、国内软件产业本身不强大。 (2)、对软件测试的

3、认识和重视程度不够。 (3)、软件管理者与用户的质量意识不够强。 (4)、软件行业质量监督体系不够好。 (5)、软件从业人员的素质不够高。 (6)、软件测试的经济效益短期内不够明显。,3、测试现状的解决方法 (1)、政府搭台,企业唱戏。 (2)、呼唤客户质量和过程控制意识。 (3)、加大软件测试人才培养和现有人员的技能培训。 (4)、软件测试从事后测试向质量控制上转移。 (5)、加大软件测试产业的开发力度。 (6)、多向国外学习,加大对软件测试理论、测试技术、测试管理的创新和测试工具的开发。,二、什么是敏捷测试,敏捷测试应该是适应敏捷方法而采用的新的测试流程、方法和实践,对传统的测试流程有所剪

4、裁,有不同的侧重,例如减少测试计划、测试用例设计等工作的比重,增加与产品设计人员、开发人员的交流和协作。在敏捷测试流程中,参与单元测试,关注持续迭代的新功能,针对这些新功能进行足够的验收测试,而对原有功能的回归测试则依赖于自动化测试。由于敏捷方法中迭代周期短,测试人员尽早开始测试,包括及时对需求、开发设计的评审,更重要的是能够及时、持续的对软件产品质量进行反馈。简单地说,敏捷测试就是持续地对软件质量问题进行及时地反馈。 需要强调一下,敏捷之思想。这里描述的,只是一种常用的软件开发模式。,敏捷方法中,需求变化比较快、产品开发周期很短,我们目前采用四周时间,也就是每个月发布一个新版本。开发周期短,

5、功能不断累加,给软件测试带来很大的挑战,软件测试流程要做相应的调整。,在敏捷测试流程中,如前所述,测试是一个持续的质量反馈过程,测试中发现的问题要及时反馈给产品经理和开发人员,而且某些关键方面也要得到我们足够的关注,主要有: 1、测试人员不仅要全程参与需求、产品功能设计等讨论,而且要面对面地、充分地讨论(包括带语言、视频的即时通讯),仅仅通过邮件是不够的; 2、参与代码复审(Code Review),并适当辅助开发人员进行单元测试; 3、在流程中增加一个环节“产品走查(Product Walk-through)”测试人员和产品经理、开发人员等在一起,从头到尾将新功能看一遍,可直观、快速地发现问

6、题;,敏捷开发中的测试分为7种类型: 1、自动化回归测试(Automated regression test) 运行自动化测试代码来验证当前的修改没有破坏已有的功能。 2、单元测试(Unit test) 验证单元级别的代码工作是否正常。 3、公共API测试(Public API test) 验证被第三方开发人员调用的API可正常工作,并且得以文档化。 4、私有API测试(Private API test) 验证内部使用的API工作是否正常。 5、命令行测试(Command-line test) 验证在命令行输入的命令工作正常。 6、用户界面测试(User interface test) 验证界

7、面层的功能是否正常。 7、“狗粮”测试(Dog-food test) 这里用了一个有趣的名字“Dog-food test”,自己的“狗粮”自己先尝尝!在企业内部使用自己开发的产品,通过这种实际地使用来确保功能正确,满足使用要求。,敏捷测试与一般测试的区别: 1、项目相当于开发与测试并行,项目整体时间较快。 2、模块提交较快,测试时较有压迫感。 3、工作任务划分清晰,工作效率较高。 4、项目规划要合理,不然测试时会出现复测的现象,加大工作量。 5、发现问题需跟紧,项目中人员都比较忙,问题很容易被遗忘。 6、耗时、或较难解决对项目影响不大的问题一般会遗留到下个阶段解决。 7、发现BUG能够很快的解

8、决,对相关的模块的测试影响比较小。 8、版本更换比较勤,影响到测试的速度。 9、要多与开发沟通。 10、要注意版本的更新情况。 11、测试人员几乎要参加整个项目组的所有会议。,三、什么是测试驱动开发,1、驱动开发概要 测试驱动开发,简称TDD,是一种不同于传统软件开发流程的新型的开发方法。它要求在编写某个功能的代码之前先编写测试代码,然后只编写使测试通过的功能代码,通过测试来推动整个开发的进行。这有助于编写简洁可用和高质量的代码,并加速开发过程。,2、驱动开发基本原理 测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码,然后只编写使测试通过的功能代码,从而以测试来驱动整个开发过程的进

9、行。这有助于编写简洁可用和高质量的代码,有很高的灵活性和健壮性,能快速响应变化,并加速开发过程。 测试驱动开发的基本过程如下: (1)快速新增一个测试; (2)运行所有的测试(有时候只需要运行一个或一部分),发现新增的测试不能通过; (3)做一些小小的改动,尽快地让测试程序可运行,为此可以在程序中使用一些不合情理的方法; (4)运行所有的测试,并且全部通过; (5)重构代码,以消除重复设计,优化设计结构; 简单来说,就是不可运行/可运行/重构这正是测试驱动开发的口号。,测试驱动开发的本质和优势 或许只有了解了测试驱动开发的本质和优势之后,你才会领略到她的无穷魅力。 测试驱动开发不是一种测试技术

10、,它是一种分析技术、设计技术,更是一种组织所有开发活动的技术。相对于传统的结构化开发过程方法,它具有以下优势: 1、TDD根据客户需求编写测试用例,对功能的过程和接口都进行了设计,而且这种从使用者角度对代码进行的设计通常更符合后期开发的需求。因为关注用户反馈,可以及时响应需求变更,同时因为从使用者角度出发的简单设计,也可以更快地适应变化。 2、出于易测试和测试独立性的要求,将促使我们实现松耦合的设计,并更多地依赖于接口而非具体的类,提高系统的可扩展性和抗变性。而且TDD明显地缩短了设计决策的反馈循环,是我们几秒或几分钟之内就能获得反馈。,3、将测试工作提到编码之前,并频繁地运行所有测试,可以尽

11、量地避免和尽早地发现错误,极大地降低了后续测试及修复的成本,提高了代码的质量。在测试的保护下,不断重构代码,以消除重复设计,优化设计结构,提高了代码的重用性,从而提高了软件产品的质量。 4、TDD提供了持续的回归测试,使我们拥有重构的勇气,因为代码的改动导致系统其他部分产生任何异常,测试都会立刻通知我们。完整的测试会帮助我们持续地跟踪整个系统的状态,因此我们就不需要担心会产生什么不可预知的副作用了。 5、TDD所产生的单元测试代码就是最完美的开发者文档,它们展示了所有的API该如何使用以及是如何运作的,而且它们与工作代码保持同步,永远是最新的。 6、TDD可以减轻压力、降低忧虑、提高我们对代码的信心、使我们拥有重构的勇气,这些都是快乐工作的重要前提。,

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

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

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