毕业设计论文软件测试技术方法的比较与分析.doc
《毕业设计论文软件测试技术方法的比较与分析.doc》由会员分享,可在线阅读,更多相关《毕业设计论文软件测试技术方法的比较与分析.doc(71页珍藏版)》请在三一办公上搜索。
1、软件测试技术方法的比较与分析作 者 姓 名: 学科、专业 : 学 号 : 指 导 教 师: 完 成 日 期: XX大学XXXX University软件测试技术方法的比较与分析总计: 毕业论文 64 页表 格 14 表插 图 22 幅 指导教师: 评 阅 人: 完成日期: 摘 要软件测试是保证软件质量的重要手段。随着计算机硬件性能的不断提高,软件的功能也越来越强大,软件结构越来越复杂,软件质量越来越难以控制。对于比较大型的软件系统集成测试来说,单纯的手工测试不但效率低下,而且很多测试仅靠手工测试无法完成。为减少测试开销,在有限的时间内执行更多地测试,并且降低人为引起的错误,自动化测试是非常必要
2、的。一个完整地自动化软件测试工具,应该包括测试管理工具、功能测试工具、性能测试工具三个部分。论文阐述了软件自动化测试相关概念和理论,概括和比较了其适用范围和组织结构。MI公司、Rational公司、Compuware公司开发的产品是当今市场上三种主流的测试工具,本文从测试步骤、对象识别等方面对上述三个公司的功能测试产品;从测试项目管理、人员管理、测试计划等方面对其测试管理工具产品作了详细的分析和比较,为自动化测试研究提供参考。关键词:软件测试,自动化测试,测试管理工具AbstractSoftware testing is important to ensure software quality
3、. With the enhancement of the computer hardware and the increasing complexity of software functionality and structure, software quality control is more and more challenge. For integration testing on large software, manual testing is usually effort consuming while insufficient to achieve certain test
4、ing objectives such as stress testing. Therefore, automatic testing is necessary.Functional testing, performance testing and test management are three key characters of testing tools. The concept and theory related to software automated testing are expounded. The scope of application and the archich
5、ecture of software automated testing is summed up and compared. Testing tools delivered by MI, Rational and Compuware occupy most of the testing market. This thesis analyzes and compares function testing tools from、testing procedure、object recognization, etc. And it analyzes and compares test manage
6、ment tools from testing project management、people management、testing plan, etc. This survey provides basis for the research on automatic testing technique. Keywords:Software Testing , Automated Testing , Software Testing Management Tools-IV-目 录1.绪论11.1论文的研究背景及意义11.2论文的主要研究工作及成果11.3论文的组织结构22.软件测试技术的概
7、论32.1软件测试的定义与目的32.2软件测试的过程32.3软件测试的分类及主要方法42.3.1按测试过程划分42.3.2按工作状态划分52.3.3按测试用例设计方法划分62.3.4按测试目的划分83自动化测试技术基础93.1自动化测试概念93.1.1自动化测试93.1.2自动化测试的优点93.1.3自动化测试的局限性113.2自动化测试的适用范围124.主流自动化测试工具简介154.1 MI(Mercury Interactive)公司的测试软件154.1.1管理工具164.1.2测试工具164.2 Rational公司的测试软件174.2.1管理工具174.2.2测试工具194.3 Com
8、puware公司的测试软件204.3.1管理工具214.3.2测试工具225.自动化功能测试工具的分析比较与总结235.1测试环境和对象235.2工具功能模块详细划分255.3测试步骤285.4 GUI对象识别295.5脚本执行与被测程序响应的同步问题325.6测试信息收集335.7结合测试管理工具335.8比较总结346.测试管理工具的分析与比较356.1工具特点356.2测试项目376.3测试人员管理386.4测试计划396.5比较总结427.总结语44参考文献45附录1外文译文47附录2外文原文54致 谢63软件测试技术方法的比较与分析1.绪论1.1论文的研究背景及意义近几年,随着软件规
9、模不断扩大,软件复杂度不断增加,客户要求不断提高,如何保证软件质量,提高软件可靠性也越来越受到各研究机构、相关企业的普遍关注,同时成为软件开发机构特别关注的方向。目前,许多能有效提高软件质量的质量保证技术相继问世,例如,几乎所有的大型软件开发机构都结合自身软件开发实际和经验制定了相关的质量标准来规范企业内部的软件开发过程,有些机构在这两年陆续成立了与软件开发相独立的软件测试中心来保证开发出来的软件可用,在开发过程中增加了许多环节(如软件配置管理、阶段性测试和评审)用来保证开发出来的软件具有高可靠性。软件测试技术作为保障软件质量最直接、最有效的手段之一也成为重要的研究热点,但是由于软件本身的复杂
10、性和不确定性,软件测试技术始终具有极大的难度。深入研究软件测试技术方法,提高软件可靠性,已经成为国内外软件行业和相关机构重要的研究方向1。正确选择和有效地运用各种测试方法、技术和工具,对提高软件工程的应用水平和提高软件产品的质量与可靠性至关重要。而在软件测试中使用优秀的测试管理工具不但可以大大减少测试过程中出现错误的可能性,还可以极大的提高测试的效率,加快测试进程。1.2论文的主要研究工作及成果论文主要对软件测试、测试技术(工具、方法)、自动化测试以及测试管理技术(工具、方法)进行理论阐述和综合论述;然后进行综合分析、比较、总结。通过查阅文献资料和对主流工具软件和相关技术的深入学习可完成软件测
11、试技术方法的比较与分析研究内容。在这个论文研究过程中,可以学会正确选择和有效地运用各种测试方法、技术和工具。1.3论文的组织结构论文的组织结构如图1.1所示:3.自动化测试技术基础1.绪论2.软件测试技术概述4.主流自动化测试工具简介6.测试管理工具分析与比较5.自动化功能测试工具分析与比较7.结束语图1.1 论文的组织结构2.软件测试技术的概论2.1软件测试的定义与目的软件测试就是使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验软件产品是否满足规定的需求2。简单地说,软件测试过程就是制造条件,促使错误发生的过程。软件测试的目的是3:(1)测试的最终目的是为了避免错误
12、的发生,确保应用程序能够正常高效的运行;(2)好的测试用例在于发现至今未发现的错误;(3)成功的测试是发现了至今未发现的错误的测试;(4)好的测试工程师应该做到不仅发现问题,还能够帮助开发人员分析问题。2.2软件测试的过程软件测试是一个贯穿整个软件生命周期的活动,那种等待整个系统开发完毕,再对其进行测试的想法是错误的,把测试放到软件开发的最后是很危险的,因为它很容易导致整个软件系统无法集成。另外,对软件的测试并不仅限于软件程序的本身,因为错误并不一定是代码引起的。很有可能是软件需求、软件系统的详细设计等阶段引起的。错误在初期也许只是范围很小的隐藏问题,但由于软件开发的各阶段的连续性,会使错误逐
13、步扩展,如果早期的开发中出现的错误不能排除,将带到设计、编码、测试等各阶段,影响逐步扩大。所以对软件的测试还应该包括与软件有关的所有的文档。一个典型的软件测试过程如下图:图2.1 典型的软件测试过程一个软件的测试过程是一个不断回归的过程。旧的错误的修改可能会引起新的错误的出现,所以每修改一个新的错误,都要针对系统再作一次测试,直到没有新的错误出现为止,这是一个很繁琐的过程。2.3软件测试的分类及主要方法针对不同规模、不同类型的软件,以及软件开发的不同阶段,所用的测试方法各异,下面我们就主要针对上面的几种情况对软件测试做一个简单的分类。2.3.1按测试过程划分我们知道对于软件开发商来说,比较大的
14、软件系统都是由许多人协作开发的,一般都是把一个大的软件系统分割成不同的功能模块,然后再将这些模块分给开发团中的每个人去完成,在开发的过程中针对每个模块的完成情况,边开发、边测试、边集成,然后各个模块集成的完整的系统还要进行测试,当系统交付用户使用后,还要对系统进行维护、升级,这里面也伴随着测试。根据上面的过程,我们按软件开发过程的可以将软件测试划分为下面五个步骤,它们的关系如图2.2:图2.2 软件测试步骤单元测试是对软件中的基本组成单位进行的测试,如一个模块、一个过程等等。它是软件动态测试的最基本的部分,也是最重要的部分之一,其目的是检验软件基本组成单位的正确性。一个软件单元的正确性是相对于
15、该单元的规约而言的。因此,单元测试以被测试单位的规约为基准。单元测试的主要方法有控制流测试、数据流测试、排错测试、分域测试等等3-5。集成测试是在软件系统集成过程中所进行的测试,其主要目的是检查软件单位之间的接口是否正确。它根据集成测试计划,一边将模块或其他软件单位组合成越来越大的系统,一边运行该系统,以分析所组成的系统是否正确,各组成部分是否合拍。集成测试的策略主要有自顶向下和自底向上两种3-5。系统测试是对已经集成好的软件系统进行彻底的测试,以验证软件系统的正确性和性能等满足其规约所指定的要求,检查软件的行为和输出是否正确并非一项简单的任务,它被称为测试的“先知者问题”。因此,系统测试应该
16、按照测试计划进行,其输入、输出和其他动态运行行为应该与软件规约进行对比。软件系统测试方法很多,主要有功能测试、性能测试、随机测试等等3-5。验收测试旨在向软件的购买者展示该软件系统满足其用户的需求。它的测试数据通常是系统测试的测试数据的子集。所不同的是,验收测试常常有软件系统的购买者代表在现场,甚至是在软件安装使用的现场。这是软件在投入使用之前的最后测试。回归测试是在软件维护阶段对软件进行修改之后进行的测试。其目的是检验对软件进行的修改是否正确。这里修改的正确性有两重含义:一是所作的修改达到了预定目的,如错误得到改正,能够适应新的运行环境等等;二是不影响软件的其他功能的正确性1。2.3.2按工
17、作状态划分软件测试是一个对测试经验、测试计划、测试环境和测试工具依赖性非常强的工作,按工作状态分为静态测试和动态测试两个阶段6。静态测试主要是针对所有文档资料、编程规范、数据定义、控制和数据使用、代码与需求的一致性、代码与设计的一致性等方面的分析,其对测试经验和测试计划的依赖性极强。静态测试是在不需运行软件系统的情况下,对系统进行的测试。其采用的方法主要有6:(1)文档资料浏览,达到正确的理解,并对任何改变具有统一的认知;(2)讨论决定,对文档资料进行讨论,并作出决定,如:做什么、不做什么、如何做等;(3)检查,根据规范和定义,找出可能存在的问题,如:市场和商业策略、系统需求和系统设计、程序代
18、码、测试计划、测试设计、测试案例、测试结果、用户手册、培训教材等;(4)利用工具对程序代码进行静态分析,如:程序复杂度、系统结构、控制流程、数据流程等。动态测试是被测系统在运行当中,根据其动态的行为进行的测试。根据测试规模,可分为:单元测试、集成测试、系统测试及应用测试等几个阶段。2.3.3按测试用例设计方法划分软件测试的方法和技术是多种多样的,按测试用例设计方法,可分为黑盒测试和白盒测试,并且黑盒测试和白盒测试还是目前通用的测试技术 2,7-8。黑盒测试着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行的测试。黑盒测试也称功能测试、数据驱动测试或基于规格说明的测试,它在已知产
19、品应具有的功能的条件下,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息(如数据库或文件)的完整性。黑盒测试是以用户的观点,从输入数据与输出数据的对应关系出发进行测试的,它不涉及到程序的内部结构。黑盒测试注重于测试软件的功能需求,主要试图发现软件中的功能错误、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和终止错误等。白盒测试是基于代码的测试,测试人员通过阅读程序
20、代码或者通过使用开发工具中的单步调试来判断软件的质量。白盒测试也称结构测试、逻辑驱动测试或基于程序本身的测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不涉及它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。白盒测试需要全面了解程序内部逻辑结构、对所有逻辑路径进行测试。白盒测试是穷举路径测试,在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。黑盒测试与白盒测试的比较如下表2.1。表2.1 黑盒测试与白盒测试的比较黑盒
21、测试白盒测试测试依据用户能看到的规格说明,针对功能进行测试程序的内部结构优点能站在用户立场上进行测试能够对程序内部的特定部位进行覆盖测试缺点不能测试程序内部特定部位。如果规格说明有误,则无法发现无法检验程序的外特性,无法对未实现规格说明的程序内部欠缺部分进行测试缺点来源基于程序所有功能得到说明的基础之上基于所有的需求得到实现的基础之上举例等价类划分边值分析因果图语句覆盖,分支覆盖条件覆盖,判定/条件覆盖,路径覆盖2.3.4按测试目的划分对于一个软件系统,衡量它的好坏有两个最重要的指标,一是它的功能是否符合要求,二是它的性能是否符合要求。那么针对这两个指标,我们可以将软件测试分为:功能测试和性能
22、测试两个部分2。功能测试:针对软件的功能测试,目的是为了验证软件的功能是否符合软件需求规格说明的要求,找出软件不符合用户需求的地方。功能测试要尽量测试到软件的每一个功能单元,找出软件中的缺陷,确保软件的每一个部分都能正常、正确的工作。性能测试:就是用来测试软件在系统中的运行性能的。性能测试可以发生在各个测试阶段中,即使是在单元层,一个单独模块的性能也可以使用白盒测试来进行评估,然而,只有当整个系统的所有成分都集成到一起之后,才能检查一个系统的真正性能。性能测试经常和压力测试一起进行,而且常常需要硬件和软件测试设备,这就是说,常常有必要的在一种苛刻的环境中衡量资源的使用(比如,处理器周期)。外部
23、的测试设备可以监测测试执行,当出现情况(如中断)时记录下来。通过对系统的检测,测试者可以发现导致效率降低和系统故障的原因。3自动化测试技术基础3.1自动化测试概念随着软件系统的规模越来越大,整个系统的复杂性也越来越大,那么单纯的手工测试已经不适合这种大系统的测试了。首先手工测试的效率低下,其次有些测试是手工测试所无法完成的。为了解决手工测试效率低下和手工测试不能解决的一些测试等问题,自动化测试就应运而生了。软件自动化测试就是执行某种程序设计语言编制的自动测试程序,控制被测软件的执行,模拟手动测试步骤,完成全自动或半自动测试。其目的在于缩短测试周期,增强对软件性能方面的测试能力等,从而达到保证软
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 软件 测试 技术 方法 比较 分析
链接地址:https://www.31ppt.com/p-4882486.html