《软件测试技术及应用》实验指导书.doc

上传人:bao****ty 文档编号:144609828 上传时间:2020-09-11 格式:DOC 页数:78 大小:2.76MB
返回 下载 相关 举报
《软件测试技术及应用》实验指导书.doc_第1页
第1页 / 共78页
《软件测试技术及应用》实验指导书.doc_第2页
第2页 / 共78页
《软件测试技术及应用》实验指导书.doc_第3页
第3页 / 共78页
《软件测试技术及应用》实验指导书.doc_第4页
第4页 / 共78页
《软件测试技术及应用》实验指导书.doc_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《《软件测试技术及应用》实验指导书.doc》由会员分享,可在线阅读,更多相关《《软件测试技术及应用》实验指导书.doc(78页珍藏版)》请在金锄头文库上搜索。

1、软件测试技术及应用-基于IBM Rational Functional Tester 测试平台(软件测试实验用指导书)李 整二零一一年九月前 言在IT业处于发展的初级阶段时,由于大多数软件比较简单,对其的测试工作也不复杂,往往是软件开发企业在开发完成后进行一下简单的检测就可以了。但在IT业发展到一个高级阶段后,系统越来越精密,而软件也越来越复杂,影响的范围也不断扩大。因此,这时期开发的软件就必须进行十分严格的测试。否则,不仅会引发企业销售收入下降和运营成本的增加,甚至给企业带来法律责任。而在金融、电信这种系统趋于全国集中,风险波及面大,业务影响广泛的行业,其产生的后果更是不堪设想。专家指出,全

2、面、严谨的测试和评估是降低企业IT系统风险的最佳实践,没有经过质量测试就上线运行的IT系统犹如一颗“定时炸弹”。中国目前大多数的软件都是由软件开发企业自行进行质量测试的。总体而言,企业是重视开发而轻视测试。相关资料显示,国内测试所花的费用不超过整个项目投资的5%(这个数据如果包括硬件投入会更低,另外在一些行业低得可怜)。但在国外,一般测试环节所花的费用占项目比重非常高,达到30%左右。事实上,近年来许多软件的质量问题已引起人们的关注,有的在运行中出现问题甚至带来巨大影响。为了顺应国际IT行业发展的潮流,越来越多的高校已经非常重视培养软件测试的人才,开设了相关课程。多数高校不仅在课程中讲解软件测

3、试的理论,更注重软件测试工具的介绍。IBM公司的Rational Functional Tester功能测试平台是一款非常丰富的软件测试工具,但到目前为止,其参考资料均为英文,还没有一本系统的指导书供学习使用。本书结合IBM的相关软件测试理念,运用一个代表性的Java版本的软件产品,对RFT软件测试工具的使用进行详细讲解,主要供软件测试课程的学生使用。第一章概述了软件测试的发展历程及软件测试自动化的优势和基本知识;第二章主要讲解IBM Rational Functional Tester工具的各部分功能;第三章使用Classic CD应用程序作为案例,进行各方面的测试工作,以深刻理解和掌握RF

4、T工具。因时间仓促,书中若有不妥之处,欢迎读者提出宝贵意见。目 录第一章 概 述11.1 软件测试的发展11.2 软件测试自动化21.2.1 自动化测试的优势21.2.2 涉及的基本知识介绍3第二章 IBM Rational Functional Tester简介52.1 概述52.1.1 IBM RFT的类层次结构52.1.2 IBM RFT脚本62.2 IBM RFT的功能和界面62.2.1 主要功能62.2.2 主要组件7第三章 实验案例103.1 启用IBM RFT123.1.1 查看Rational Functional Tester 的功能视图123.1.2 熟悉脚本的录制和回放1

5、33.2 录制脚本183.2.1 创建数据验证点183.2.2 创建属性验证点223.2.3 创建属性验证点243.2.4 在脚本中插入定时器263.2.5 将记录插入活动的Functional Test脚本283.3 回放脚本并查看结果293.3.1 回放脚本、查看结果293.3.2 查看特定的日志303.3.3 从包含一个验证点的脚本查看回结果313.3.4 使用验证点比较323.3.5 在脚本中插入断点333.3.6 设置Functional Tester首选项353.4 扩展脚本373.4.1 创建消息框373.4.2 覆盖首选项设置393.4.3 处理一个意外的活动窗口413.4.4

6、 创建一个Java帮助类,并把意外活动窗口代码放进去433.5 使用测试对象映射473.5.1 显示测试对象映像473.5.2 创建并使用一共享对象映射483.5.3 修改测试对象映射513.6 管理对象的识别533.6.1 设置识别评分阈值533.6.2 设置基础模式识别553.7 数据驱动测试563.7.1 在Functional Tester中创建数据驱动563.7.2 导入数据池603.7.3 导出数据池66参考文献72第一章 概 述软件工程诞生于1968年,是北大西洋公约组织(North Atlantic Treaty Organization, NATO)在讨论应对“软件危机”的对

7、策的过程中提出的一个概念,意图通过工程化的生产方式使软件走上工业化道路,从而解决“软件危机”所带来的“危害”。而软件测试贯穿于软件项目的整个过程,是软件质量保证的重要手段。软件测试通过在软件项目各个阶段进行的不同目的及内容的测试活动,来保证各个阶段的正确性。对整个软件工程来说,软件测试在保证产品质量、科学控制成本、保证软件可靠性、提高企业竞争力等方面都有着十分重要的作用。1本章介绍软件测试的发展,包括软件测试如何一步步走向自动化测试的过程,以及自动化测试的基本概念等。读者可从中了解软件测试的重要性、手工测试和自动化测试的比较、自动化测试中需要注意的问题等。1.1 软件测试的发展软件测试是伴随着

8、软件的产生而产生的。早期的软件开发过程中,软件规模都很小、复杂程度低,软件开发的过程混乱无序、相当随意,测试的含义比较狭窄,开发人员将测试等同于“调试”,目的是纠正软件中已经知道的故障,常常由开发人员自己完成这部分的工作。对测试的投入极少,测试介入也晚,常常是等到形成代码,产品已经基本完成时才进行测试。到了上世纪80年代初期,软件和IT行业进入了大发展,软件趋向大型化、高复杂度,软件的质量越来越重要。这个时候,一些软件测试的基础理论和实用技术开始形成,并且人们为软件开发设计了各种流程和管理方法,软件开发的方式也逐渐由混乱无序的开发过程过渡到结构化的开发过程,以结构化分析与设计、结构化评审、结构

9、化程序设计以及结构化测试为特征。人们还将“质量”的概念融入其中,软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且将测试作为软件质量保证(SQA)的主要职能,包含软件质量评价的内容,Bill Hetzel在软件测试完全指南(Complete Guide of Software Testing)一书中指出:“测试是以评价一个程序或者系统属性为目标的任何一种活动。测试是对软件质量的度量。”这个定义至今仍被引用。软件测试已有了行业标准(IEEE/ANSI ),1983年IEEE提出的软件工程术语中给软件测试下的定义是:“使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是

10、否满足规定的需求或弄清预期结果与实际结果之间的差别”。这个定义明确指出:软件测试的目的是为了检验软件系统是否满足需求。它再也不是一个一次性的,而且只是开发后期的活动,而是与整个开发流程融合成一体。软件测试已成为一个专业,需要运用专门的方法和手段,需要专门人才和专家来承担。 进入上世纪90年代,软件行业开始迅猛发展,软件的规模变的非常大,在一些大型软件开发过程中,测试活动需要花费大量的时间和成本,而当时测试的手段几乎完全都是手工测试,测试的效率非常低;并且随着软件复杂度的提高,出现了很多通过手工方式无法完成测试的情况,尽管在一些大型软件的开发过程中,人们尝试编写了一些小程序来辅助测试,但是这还是

11、不能满足大多数软件项目的统一需要。于是,很多测试实践者开始尝试开发商业的测试工具来支持测试,辅助测试人员完成某一类型或某一领域内的测试工作,而测试工具逐渐盛行起来。人们普遍意识到,工具不仅仅是有用的,而且要对今天的软件系统进行充分的测试,工具是必不可少的。测试工具可以进行部分的测试设计、实现、执行和比较的工作。通过运用测试工具,可以达到提高测试效率的目的。测试工具的发展,大大提高了软件测试的自动化程度,让测试人员从繁琐和重复的测试活动中解脱出来,专心从事有意义的测试设计等活动。采用自动比较技术,还可以自动完成测试用例执行结果的判断,从而避免人工比对存在的疏漏问题。设计良好的自动化测试,在某些情

12、况下可以实现“夜间测试” 和“无人测试”。在大多数情况下,软件测试自动化可以减少开支,增加有限时间内可执行的测试,在执行相同数量测试时节约测试时间。 而测试工具的选择和推广也越来越受到重视。在软件测试工具平台方面,商业化的软件测试工具已经很多,如捕获/回放工具、Web测试工具、性能测试工具、测试管理工具、代码测试工具等等。这些都有严格的版权限制且价格较为昂贵,无法自由使用。当然,一些软件测试工具开发商对于某些测试工具提供了Beta测试版本以供用户有限次数使用。幸运的是,在开放源码社区中也出现了许多软件测试工具,已得到广泛应用且相当成熟和完善。21.2 软件测试自动化1.2.1 自动化测试的优势

13、通常,软件测试的工作量都很大(占软件总开发时间的40%-60%),并且有相当一部分测试工作都适合使用工具完成。因此,在软件产品的质量要求越来越高的今天,软件测试的自动化逐步被软件开发人员认可和青睐。那么,使用自动化测试工具都有哪些好处呢?1. 节约时间,提高工作效率由于测试工作繁琐且需要保证测试质量,测试人员就不得不花费较多的时间进行测试的前期计划和测试用例的设计工作。而使用测试工具进行自动化测试,无疑会节省测试人员的时间,在测试的实施中不用过多的人工干预,从而提高工作效率,这成为一个明显的优势。2. 易于进行回归测试新版本的程序发布之后,往往需要进行之前已有的测试,这叫作回归测试。一些软件产

14、品的研发中,新版本往往与旧的版本在功能、界面上非常相似甚至完全相同,若对这部分使用自动化测试,就会轻松达到测试每个功能的目的。由于新版本经过了频繁的修改,进行回归测试再合适不过。此时,使用自动化测试工具,对之前已经运行过的测试重新执行,便会高效地完成回归测试。3. 可以进行一些手工测试难以完成或不可能完成的测试在软件测试中,有些非功能方面的测试,如压力测试、并发测试、回归性测试、大数据量测试,用人来测试是不可能实现的。例如,对于淘宝网站进行1600个用户同时在线的测试,用手工进行并发操作的测试几乎是不可能的,但是用自动化测试工具就可以模拟来自1600个用户的同时登录。另外,测试工具还可以发现一

15、些手工测试不可能发现的问题,如内存方面的问题等。4. 测试具有一致性和可重复性软件被修改发生微小变化时,手工测试是难以发现的。而使用自动化测试工具进行测试时,由于每次回归测试的脚本是完全相同的,因此每次测试的过程是完全一致的,不会漏掉软件中任何小的修改,这是手工测试不可能做到的。当然,自动化测试的优势远远不止这些,可以通过参考书查阅,在长期的测试工作过程中深刻体会。1.2.2 涉及的基本知识介绍在自动化测试的工具和技术应用中,读者需要掌握的基本知识或本书后续章节会用到的基本概念如下:1对象的有效拆分软件开发的任务是将多个独立对象进行组合,形成一套客户端程序。而测试则是将整个程序拆分成一个个的对象,检测某个或某些对象属性是否符合测试需求,如某textBox的文本内容是否与预期相同。测试时拆分的原则是,分解程序中不同类型的对象,或根据测试路径筛选测试对象。2测试的智能化处理软件测试过程中,对产品的不同版本有些对象的变化我们并不想过多关心,如某个按钮的各属性在新旧版本之间发生了变化,但按钮的大小变化一般不是我们感兴趣的内容,此时便可以采用模糊识别。那么,到底如何处理对象的各个属性感兴趣的程度呢?可以将不同权重赋予对象的不同属性。按钮的文本我们关心

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

当前位置:首页 > 高等教育 > 其它相关文档

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