软件工程——理论与实践教学课件 ppt 作者 吕云翔 王昕鹏 邱玉龙 第五章 软件测试

上传人:E**** 文档编号:89499672 上传时间:2019-05-25 格式:PPTX 页数:216 大小:3.93MB
返回 下载 相关 举报
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第五章 软件测试_第1页
第1页 / 共216页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第五章 软件测试_第2页
第2页 / 共216页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第五章 软件测试_第3页
第3页 / 共216页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第五章 软件测试_第4页
第4页 / 共216页
软件工程——理论与实践教学课件 ppt 作者  吕云翔 王昕鹏 邱玉龙 第五章 软件测试_第5页
第5页 / 共216页
点击查看更多>>
资源描述

《软件工程——理论与实践教学课件 ppt 作者 吕云翔 王昕鹏 邱玉龙 第五章 软件测试》由会员分享,可在线阅读,更多相关《软件工程——理论与实践教学课件 ppt 作者 吕云翔 王昕鹏 邱玉龙 第五章 软件测试(216页珍藏版)》请在金锄头文库上搜索。

1、第五章 软件测试,软件测试的基本概念,软件测试的分类,软件测试的方法,软件测试的一般步骤,单元测试,5.1,5.2,5.3,5.4,5.5,软件测试-1/2,5.6,集成测试,系统测试,5.7,面向对象的软件测试,利用Visual Studio中的工具进行单元测试,其他单元测试工具,利用Visual Studio中的工具进行界面测试,利用Visual Studio对网上书店系统的用户登录模块进行单元测试,5.8,5.9,5.10,5.11,5.12,软件测试-2/2,5.13,测试分析报告编写指南,网上书店系统的测试分析报告,5.14,5.1 软件测试的 基本概念,软件测试的原则 软件测试模型

2、,5.1 软件测试的基本概念,软件测试是发现软件中错误和缺陷的主要手段。为了保证软件产品的质量,软件开发人员通过软件测试发现产品中存在的问题,并对其进行及时的修改。可以说,软件测试的过程就是发现并改正软件缺陷的过程。 软件缺陷是指软件产品中存在的问题,具体表现为用户所需的功能没有实现,无法满足用户的需求。由于软件开发是以人为中心的活动,开发人员之间交流的不畅、开发人员对需求理解的偏差、开发过程中的失误、所使用工具的误差、开发环境的限制等因素都可能造成软件缺陷,所以缺陷的产生是不可避免的,软件测试的工作是必需的。,5.1 软件测试的基本概念,在软件开发过程的任何阶段都可能引入缺陷。 缺陷被引入的

3、阶段越早,在软件开发的后期修复这些缺陷带来的成本损失就越大。 尽早地揭示并修复软件缺陷有利于减小已有缺陷对后续软件开发工作的影响,从而节约软件开发的时间和成本,提高软件开发的质量。 软件测试是软件开发过程中的一个重要阶段。 在软件产品正式投入使用之前,软件开发人员需要保证软件产品正确地实现了用户的需求,并满足稳定性、安全性、一致性、完全性等各个方面的要求,通过软件测试对产品的质量加以保证。实际上,软件测试过程与整个软件开发过程是同步的,也就是说,软件测试工作应该贯穿于整个开发过程。,软件测试的原则,软件测试是为了发现错误而执行程序的过程,它并不可能找出所有的错误,但是却可以减少潜在的错误或缺陷

4、。 (1) 完全测试是不可能的。 测试并不能找出所有的错误。 基于时间、人员、资金或设备等方面的限制,不可能对软件产品进行完全的测试。 在设计测试用例时,也不可能考虑到软件产品所有的执行情况或路径。,软件测试的原则,(2) 测试中存在风险。 每个软件测试人员都有自己独特的思维习惯或思考问题的方式,在设计测试用例或者进行产品测试时,难免考虑问题不全面。 此外,并不存在十全十美的测试方法,不论是黑盒测试还是白盒测试,不论采用自动测试还是进行手工测试,被测试的软件产品中都会有被忽略的环节。 而且,测试人员所使用的测试工具本身也是一种软件产品,即测试工具本身也是存在缺陷的,所以利用测试工具来查找软件缺

5、陷时,也会出现异常情况。 综合各种因素,软件测试中是存在风险的,测试的结果不一定是准确无误的。,软件测试的原则,例如,对一段判定变量a是否大于0的伪代码: if (a = 0) print“a 1” else print“a = 0” 如果选用a=5为测试用例,那么本段代码的错误就不能被发现。,软件测试的原则,(3) 软件测试只能表明缺陷的存在,而不能证明软件产品已经没有缺陷。 软件测试只是查找软件缺陷的过程,即使测试人员使用了大量的测试用例和不同的测试方法对软件产品进行测试,测试成功以后也不能说明软件产品已经准确无误,完全符合用户的需求。 (4) 软件产品中潜在的错误数与已发现的错误数成正比

6、。 通常情况下,软件产品中发现的错误越多,潜在的错误就越多。 如果在一个阶段内,软件产品中发现的错误越多,就说明还有更多的错误或缺陷有待于去发现和改正。,软件测试的原则,(5) 让不同的测试人员参与到测试工作中。 在软件开发中,存在着“杀虫剂现象 ”。 农业中的“杀虫剂现象”是指:如果长期使用某种药物,那么生物就会对该药物产生抗药性,从而降低了杀虫剂的威力。 同样,在软件开发中,也存在着类似的“杀虫剂现象”。每个测试人员在进行软件测试时,都有自己的思维习惯、喜欢的测试方法、擅长的测试工具。 如果同一个软件产品总是由特定的测试人员去测试,那么基于这个测试人员的思维方式、测试方法和所使用的测试工具

7、的局限,有些软件缺陷是很难被发现的。 因此,在软件的测试工作中,应该让多个测试人员参与到同一产品或同一模块的测试工作中。,软件测试的原则,(6) 让开发小组和测试小组分立,开发工作和测试工作不能由同一部分人来完成。 如果开发人员对程序的功能要求理解错了,就很容易按照错误的思路来设计测试用例。 如果开发人员同时完成测试工作,那么测试工作就很难取得成功。 (7) 尽早并不断地进行测试,使测试工作贯穿于整个软件开发的过程中。 软件开发的各个阶段都可能出现软件错误。 软件开发早期出现的小错误如果不能及时被改正,其影响力就会随着项目的进行而不断地扩散,越到后期,纠正该错误所付出的代价就越大。 因此,应该

8、尽早地进行测试工作。而且,测试工作应该贯穿在软件开发的各个阶段,这样才能提高软件开发的效率和质量。,软件测试的原则,(8) 在设计测试用例时,应包括输入数据和预期的输出结果两个部分,并且,输入数据不仅应该包括合法的情况,还应该包括非法的输入情况。 测试用例必须由两部分组成:对程序输入数据的描述和由这些输入数据产生的程序的正确结果的精确描述。 这样在测试的过程中,测试人员就可以通过对实际的测试结果与测试用例预期的输出结果进行对照,方便地检验程序运行的正确与否。 此外,用户在使用软件产品时,不可避免地会输入一些非法的数据。为了检验软件产品是否能对非法输入做出准确的响应,测试用例应当包括合理的输入条

9、件和不合理的输入条件。 测试人员应该特别注意用非法输入的测试用例进行测试,因为人们总是习惯性地过多考虑合法和期望的输入条件。实际上,用不合理的输入数据来进行测试,往往会发现较多的错误。,软件测试的原则,(9) 要集中测试容易出错或错误较多的模块。 在软件测试工作中,存在着二八定律,即80%的错误会集中存在于20%的代码中。 为了提高测试的工作效率,应该对容易出错或错误较多的模块给予充分的注意,集中测试这些模块。 (10) 应该长期保留所有的测试用例。 测试的主体工作完成之后,还要进行回归测试。 为了方便回归测试,有时还可以用已经使用过的用例。 保留所有的测试用例有助于后期的回归测试。,软件测试

10、模型,软件测试模型是指软件测试全部过程、活动或任务的结构框架。通常情况下,一个软件测试模型应该阐明的问题有:,软件测试模型,一个好的软件测试模型可以简化测试的工作,加速软件开发的进程。 常用的软件测试过程模型有V模型、W模型和H模型。 可以说V模型是最具代表意义的测试模型,它是软件开发中瀑布模型的变种。 V模型的重要意义在于它非常明确地表明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程的各阶段的对应关系,即反映了测试活动与分析和设计活动的对应关系。,软件测试模型,V模型的示意图如下图所示。,软件测试模型,从V模型的示意图可以看出,它从左到右描述了基本的开发过程和测试行为。

11、左起从上往下,描述的是开发过程的各阶段,与此对应的是右侧依次上升的部分,即与开发过程各阶段对应的测试过程的各个阶段。 不难发现,在V模型中,测试工作在编码之后才能进行,所以在软件开发早期各个阶段引入的错误不能及时被发现。 尤其是需求阶段的错误只有到最后的验收测试才能被识别。 对分析、设计阶段产生的错误不能及时发现并改正的缺点会对后期的修复工作带来诸多不便,造成更多资源的浪费和时间的延迟。,软件测试模型,为了克服V模型开发和测试不能同步的问题,Evolutif公司发明了W模型,它在V模型的基础上,增加了软件开发阶段中应同步进行的测试活动。 W模型由两个分别代表开发过程和测试过程的V模型组成。,软

12、件测试模型,W模型的最大优势在于,测试活动可以与开发活动并行进行,这样有利于及早地发现错误,但是W模型也有一定的局限性。 在W模型中,需求、设计、编码等活动依然是依次进行的,只有上一阶段完全结束,才有可能开始下一阶段的工作。 与迭代的开发模型相比,这种线性的开发模型在灵活性和对环境的适应性上有很大差距。,软件测试模型,H模型强调测试的独立性和灵活性。 在H模型中,软件测试活动完全独立,它贯穿于整个软件产品的生命周期,与其他流程并行进行。 当软件测试人员认为测试准备完成,即某个测试点准备就绪时,就可以从测试准备阶段进入到测试执行阶段。,5.2 软件测试的分类,软件测试的分类,软件测试可以从不同的

13、角度划分为多种类型,如下图所示。,软件测试的分类,下面介绍按照质量因素划分的软件测试分类,软件测试的分类,除了以上给出的各种测试类型以外,软件测试还包括,软件测试的分类,软件的国际化和本地化是相对应的。软件的国际化特性要求软件产品能够支持Unicode,支持不同时区的设定、显示和切换,消除一些不容易改变的设置等。 显而易见,软件国际化测试就是验证软件产品是否支持软件国际化所需满足的特性的过程。软件的本地化是将软件产品按特定的国家、地区的市场需要进行加工、处理,使其满足特定市场用户对软件产品的要求的过程。 软件本地化测试的重点包括翻译问题、文化背景问题、数据格式问题等。 测试和测试都是属于验收测

14、试的范畴,是在系统测试之后,产品发布之前进行的测试过程的最后一个阶段。,5.3 软件测试的方法,等价类划分法 逻辑覆盖法,5.3 软件测试的方法,按照执行测试时是否需要运行程序,软件测试可以划分为静态测试和动态测试。 静态测试以人工测试为主,通过测试人员认真阅读文档和代码,仔细分析其正确性、一致性及逻辑结构的正确性,从而找出软件产品中的错误或缺陷。 静态测试对自动化工具的依赖性较小,通过人脑的思考和逻辑判断来查找错误,因而可以更好地发挥人的主观能动性。根据软件开发实践的总结,静态测试的成效非常显著,一般静态测试检测出的错误数可以达到总错误数的80%以上。,5.3 软件测试的方法,审查和走查是静

15、态测试的常用形式。审查是指通过阅读并讨论各种设计文档以及程序代码,来检查其是否有错。 审查的工作可以独自进行,也可以通过会议的形式将相关的人员召集起来共同发现并纠正错误。 而走查的对象只是代码,不包括设计文档。代码走查以小组会议的形式进行,相关测试人员提供所需的测试用例,参会人员模拟计算机,跟踪程序的执行过程,对其逻辑和功能提出各种疑问,并通过讨论发现问题。,5.3 软件测试的方法,总而言之,静态测试的效率比较高,而且要求测试人员具有丰富的经验。 与静态测试不同的是,动态测试需要通过实际运行被测程序来发现问题。测试人员可以输入一系列的测试用例,通过观察测试用例的输出结果是否与预期相符来检验系统

16、内潜在的问题或缺陷。 动态测试中有两种非常流行的测试技术,黑盒测试,白盒测试,5.3 软件测试的方法,黑盒测试里,测试人员把被测试的软件系统看成是一个黑盒子,并不需要关心盒子的内部结构和内部特性,而只关注软件产品的输入数据和输出结果,从而检查软件产品是否符合它的功能说明。 白盒测试关注软件产品的内部细节和逻辑结构,即把被测的程序看成是一个透明的盒子。,5.3 软件测试的方法,不论是黑盒测试还是白盒测试,它们都可以发现被测系统的问题。 由于它们侧重的角度不同,所以发现的问题也不尽相同。 一般在软件测试的过程中,既要用到黑盒测试,又要用到白盒测试。 大的功能模块采用黑盒测试 小的构件采用白盒测试。 可以说,黑盒测试和白盒测试都是基于用例的测试方法,因为它们都通过运行测试用例来发现问题。,5.3 软件测试的方法,根据设计用例的方法的不同,等价类划分法,等价类划分是把程序的输入域划分为若干子集,然后从每个子集中选取少数具有代表性的数据用作测试用例,所选取的输入数据对于揭露程序中的错误都是等效的。 对于测试来说,某个等价类的代表值与该等价类的其他值是等价的,因此可以把所有

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

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

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