毕业论文-软件测试论文_第1页
毕业论文-软件测试论文_第2页
毕业论文-软件测试论文_第3页
毕业论文-软件测试论文_第4页
毕业论文-软件测试论文_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试毕业论文DATE\@”yyyy年M月"5月姓名:专业:计算机科学与技术指导老师:目录TOC\o"2-3”\t”标题1,1"1 引言 11。1 编写目的 11.2 有关背景 21.3 参照资料 22 软件测试概念 32.1 软件测试定义 32.2 软件测试概述 33 软件测试的原则3.1 测试的基本原则(一) 43.2 测试的基本原则(二) 44软件测试的内容4。1 验证(verification) 54。1 确认(validation) 55软件测试的分类5.1 常用分类 65.2 黑盒测试和白盒测试 65。3 静态测试 115.4 动态测试 126感想与道谢……………………….。16引言编写目的本学期学习了软件测试这门计算机专业的专业课,作为计算机专业的一门很重要的课程,在计算机领域占据着不可替代的角色,伴随人类社会的进步,多种领域计算机的普及,计算机软件也越来越多的出目前各个场所,为人们的办公,生活,学习,休闲等提供了前所未有的以便。因此,当一种软件从雏形到真正的在一台计算机上运行的时候,谁也不能保证计算机软件能一步到位的满足人们的需求。因此就有了软件测试,其目的是:第一是确认软件的质量,其首先是确认软件做了你所期望的事情(Dotherightthing),另首先是确认软件以对的的方式来做了这个事件(Doitright)。作为计算机专业的学生,我想以我自己的观点来论述一下我对软件测试的理解。参照资料参照书籍:

1、RonPatton《软件测试》机械工业出版社

2、张克东等《软件工程与软件测试自动化教程》电子工业出版社

3、Dustin,E.《软件自动化测试:引入、管理与实行》电子工业出版社

4、JamesA.Whittaker《实用软件测试指南》电子工业出版社

5、Zadrozny《J2EE性能测试》电子工业出版社

6、Jones,C。《软件评估、基准测试与最佳实践》机械工业出版社

7、EdwardKit《软件测试过程改善》机械工业出版社

8、HungQ.Nguyen《Web应用测试》电子工业出版社

9、RobertV.Binder《面向对象系统测试模型视图与工具(影印版)》10、Rakitin,S。K.《软件验证与确认的最佳管理措施》电子工业出版社

11、麦格雷戈《面向对象的软件测试》机械工业出版社参照网络资料有关背景前段时间,就是在我没有认真理解测试行业之前,也许由于测试在中国的重视程度的问题,我也一直认为测试应当是不重要的,甚至认为有必要有专门的测试职业吗?认为软件重要是开发人员的事,软件的成果也是由开发人员决定的,当我在参与工作后,真正从学校的学习环境中走上实际运用开发的时候,实际上真的不是那么一回事哦。软件无处不在,软而,软件是人编的——因此不完美.臭名昭著的软件测试案例:1、迪士尼的狮子王(1994~1995)软件在少数系统中能正常工作,但在大众使用的常见系统中不行。后来证明,迪士尼企业没有对市场上投入实用的多种pc机型进行对的的测试。2、英特尔飞跃浮点除法软件缺陷(1994)英特尔为自己处理软件缺陷拿出4亿美元支付更换坏芯片的费用。导致付出如此昂贵的代价,其重要原因是发现了软件缺陷没有对的的处理。3、美国航天局火星极地登陆(1999)该项目使用前有通过测试,两个测试小组双方独立工作都很好,但从未走在一起.4、爱国者导弹防御系统(1991)一枚导弹在多哈击毙28名美国士兵,症结在于一种软件缺陷:一种很小的系统时钟错误累积起来就也许迟延14小时,导致跟踪系统失去精确度。在多哈袭击战中系统被迟延100小时。5、千年虫(大概1974)估计世界各地更换或升级该系统程序处理原有错误的费用已经超过数亿美元.软件测试概念2。1件测试定义软件测试使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检查它与否满足规定的需求或弄清预期成果与实际成果之间的差异。它是协助识别开发完毕(中间或最终的版本)的计算机软件(整体或部分)的对的度(correctness)完全度(completeness)和质量(quality)的软件过程;是SQA(softwarequalityassurance)的重要子域。(1)测试并不仅仅是为了找出错误.通过度析错误产生的原因和错误的发生趋势,可以协助项目管理者发现目前软件开发过程中的缺陷,以便及时改善;(2)这种分析也能协助测试人员设计出有针对性的测试措施,改善测试的效率和有效性;(3)没有发现错误的测试也是有价值的,完整的测试是评估软件质量的一种措施.2.2软件测试概述测试是软件开发过程的重要构成部分,是用来确认一种程序的品质或性能与否符合开发之前所提出的某些规定。软件测试的目的,第一是确认软件的质量,其首先是确认软件做了你所期望的事情(Dotherightthing),另首先是确认软件以对的的方式来做了这个事件(Doitright);第二是提供信息,例如提供应开发人员或程序经理的反馈信息,为风险评估所准备的信息;第三软件测试不仅是在测试软件产品的自身,并且还包括软件开发的过程。假如一种软件产品开发完毕之后发现了诸多问题,这阐明此软件开发过程很也许是有缺陷的。软件测试的原则3.1测试基本原则(一)在设计有效测试用例之前,测试工程师必需理解软件测试的基本原则。这里有一组测试原则:1所有的测试都应追溯到顾客需求.正如我们所知:软件测试的目的在于揭示错误。而最严重的错误(从顾客角度来看)是那些导致程序无法满足需求的错误。2应当在测试工作真正开始前的较长时间内就进行测试计划。测试计划可以在需求模型一完毕就开始,详细的测试用例定义可以在设计模型被确定后立即开始。因此,所有测试应当在任何代码被产生前就进行计划和设计.3Pareto原则应用于软件测试。简朴地讲,Pareto原则暗示着测试发现的错误中的80%很也许来源于程序模块中的20%.当然,问题在于怎样孤立这些有疑点的模块并进行彻底的测试。4测试应从"小规模”开始,逐渐转向”大规模”.最初的测试一般把焦点放在单个程序模块上,深入测试的焦点则转向在集成的模块簇中寻找错误,最终在整个系统中寻找错误。5穷举测试是不也许的。虽然是一种大小适度的程序,其途径排列的数量也非常大。因此,在测试中不也许运行途径的每一种组合。然而,充足覆盖程序逻辑,并保证程序设计中使用的所有条件是有也许的。6为了到达最佳效果,应当由独立的第三方来构造测试."最佳效果”指最有也许发现错误的测试(测试的重要目的),因此创立系统的软件工程师并不是构造软件测试的最佳人选。7、不充足的测试是不负责任的;过度的测试是一种资源的挥霍,同样也是一种不负责任的体现.。3.2测试基本原则(二)1.应当把”尽早和不停的测试"作为开发者的座右铭.2.程序员应当防止检查自己的程序,测试工作应当由独立的专业的软件测试机构来完毕.3.设计测试用例时应当考虑到合法的输入和不合法的输入以及多种边界条件,特殊状况下要制造极端状态和意外状态,例如网络异常中断、电源断电等状况。4.一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大的关系。5.对测试错误成果一定要有一种确认的过程,一般有A测试出来的错误,一定要有一种B来确认,严重的错误可以召开评审会进行讨论和分析。6.制定严格的测试计划,并把测试时间安排的尽量宽松,不要但愿在极短的时间内完毕一种高水平的测试.7.回归测试的关联性一定要引起充足的注意,修改一种错误而引起更多的错误出现的现象并不少见。8.妥善保留一切测试过程文档,意义是不言而喻的,测试的重现性往往要靠测试文档软件测试的内容4。1验证(verification)验证(verification)是保证软件对的地实现了某些特定功能的一系列活动,即保证软件做了你所期望的事情.(Dotherightthing)1。确定软件生存周期中的一种给定阶段的产品与否到达前阶段确立的需求的过程;2.程序对的性的形式证明,即采用形式理论证明程序符号设计规约规定的过程;3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文献等与否和规定的需求相一致进行判断和提出汇报.4。2确认(validation)确认(validation)是一系列的活动和过程,目的是想证明在一种给定的外部环境中软件的逻辑对的性.即保证软件以对的的方式来做了这个事件(Doitright)1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的对的性;2。动态确认,通过执行程序做分析,测试程序的动态行为,以证明软件与否存在问题。软件测试的对象不仅仅是程序测试,软件测试应当包括整个软件开发期问各个阶段所产生的文档,如需求规格阐明、概要设计文档、详细设计文档,当然软件测试的重要对象还是源程序。软件测试的分类5。1常用分类从与否需要执行被测软件的角度,可分为:-静态测试-动态测试从测试与否针对系统的内部构造和详细实现算法的角度来看,可分为:-白盒测试-黑盒测试5。2黑盒测试和白盒测试1、黑盒测试和白盒测试黑盒测试指的是把被测软件看作是一种黑盒子,我们不去关怀盒子里面的构造是什么样子,只关怀软件的输入数据和输出成果。黑盒测试措施是在程序接口上进行测试,重要是为了发现如下错误:•与否有不对的或遗漏了的功能?•在接口上,输入能否对的地接受?能否输出对的的成果?•与否有数据构造错误或外部信息(例如数据文献)访问错误?•性能上与否可以满足规定?•与否有初始化或终止性错误?用黑盒测试发现程序中的错误,必须在所有也许的输入条件和输出条件中确定测试数据,来检查程序与否都能产生对的的输出.但这是不也许的。n假设一种程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒措施进行穷举测试:n也许采用的测试数据组:232×232=264n假如测试一组数据需要1毫秒,一年工作365×24小时,完毕所有测试需5亿年。黑盒测试的测试用例设计•等价划分法•边界值法•错误推测法•因果图法1。等价类划分1〉等价类划分是一种经典的黑盒测试措施,使用这一措施时,完全不考虑程序的内部构造,只根据程序的规格阐明来设计测试用例。2〉等价类划分措施把所有也许的输入数据,即程序的输入域划提成若干部分,然后从每一部分中选用少数有代表性的数据做为测试用例.3〉使用这一措施设计测试用例要经历划分等价类(列出等价类表)和选用测试用例两步。4〉划分等价类等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭发程序中的错误都是等效的.测试某等价类的代表值就等价于对这一类其他值的测试。等价类的划分有两种不一样的状况:①有效等价类:是指对于程序的规格阐明来说,是合理的,故意义的输入数据构成的集合。②无效等价类:是指对于程序的规格阐明来说,是不合理的,无意义的输入数据构成的集合。在设计测试用例时,要同步考虑有效等价类和无效等价类的设计.划分等价类的原则(1)假如输入条件规定了取值范围,或值的个数,则可以确立一种有效等价类和两个无效等价类。n例如,在程序的规格阐明中,对输入条件有一句话:“……项数可以从1到999……”则有效等价类是“1≤项数≤999"两个无效等价类是“项数<1”或“项数>999"。(2)假如输入条件规定了输入值的集合,或者是规定了“必须怎样"的条件,这时可确立一种有效等价类和一种无效等价类。例如,在Pascal语言中对变量标识符规定为“以字母打头的……串”。那么所有以字母打头的构成有效等价类,而不在此集合内(不以字母打头)的归于无效等价类。(3)假如输入条件是一种布尔量,则可以确定一种有效等价类和一种无效等价类.(4)假如规定了输入数据的一组值,并且程序要对每个输入值分别进行处理.这时可为每一种输入值确立一种有效等价类,此外针对这组值确立一种无效等价类,它是所有不容许的输入值的集合.2.边界值分析•边界值分析也是一种黑盒测试措施,是对等价类划分措施的补充.•人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部.因此针对多种边界状况设计测试用例,可以查出更多的错误.例如,在做三角形计算时,要输入三角形的三个边长:A、B和C。我们应注意到这三个数值应当满足A>0、B>0、C>0、A+B>C、A+C>B、B+C>A,才能构成三角形。但假如把六个不等式中的任何一种不小于号“>”错写成不小于等于号“≥",那就不能构成三角形。问题恰出目前轻易被疏忽的边界附近。这里所说的边界是指,相称于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的某些特定状况。使用边界值分析措施设计测试用例,首先应确定边界状况.应当选用恰好等于,刚刚不小于,或刚刚不不小于边界的值做为测试数据,而不是选用等价类中的经典值或任意值做为测试数据。3。错误推测法•人们也可以靠经验和直觉推测程序中也许存在的多种错误,从而有针对性地编写检查这些错误的例子。这就是错误推测法。•错误推测法的基本想法是:列举出程序中所有也许有的错误和轻易发生错误的特殊状况,根据它们选择测试用例。4.因果图因果图的合用范围假如在测试时必须考虑输入条件的多种组合,可使用一种适合于描述对于多种条件的组合,对应产生多种动作的形式来设计测试用例,这就需要运用因果图。因果图措施最终身成的就是鉴定表。它适合于检查程序输入条件的多种组合状况。(1)分析软件规格阐明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是成果(即输出条件),并给每个原因和成果赋予一种标识符.(2)分析软件规格阐明描述中的语义,找出原因与成果之间,原因与原因之间对应的是什么关系?根据这些关系,画出因果图.(3)由于语法或环境限制,有些原因与原因之间,原因与成果之间的组合状况不也许出现。为表明这些特殊状况,在因果图上用某些记号标明约束或限制条件。(4)把因果图转换成鉴定表.(5)把鉴定表的每一列拿出来作为根据,设计测试用例.白盒测试指的是把盒子盖打开,去研究里面的源代码和程序构造。白盒测试也称构造测试或逻辑驱动测试,它是懂得产品内部工作过程,可通过测试来检测产品内部动作与否按照规格阐明书的规定正常进行,按照程序内部的构造测试程序,检查程序中的每条通路与否均有能按预定规定对的工作,而不顾它的功能。使用被测单元内部怎样工作的信息,容许测试人员对程序内部逻辑构造及有关信息来设计和选择测试用例,对程序的逻辑途径进行测试。基于一种应用代码的内部逻辑知识,测试是基于覆盖所有代码、分支、途径、条件.白盒测试的重要措施:•逻辑驱动测试•基本途径测试重要用于软件验证。使用程序设计的控制构造导出测试用例。逻辑驱动测试:重要是测试覆盖率,以程序内在逻辑构造为基础的测试。包括如下6种类型:•语句覆盖•判断覆盖•条件覆盖•鉴定—条件覆盖•条件组合覆盖•途径覆盖白盒测试的重要目的•保证一种模块中的所有独立途径至少被执行一次;•对所有的逻辑值均需要测试真、假两个分支;•在上下边界及可操作范围内运行所有循环;•检查内部数据构造以保证其有效性白盒测试的实行方案在开发阶段要保证产品的质量,产品的生产过程应当遵照一定的行业原则。软件产品也是同样,没有原则可依自然谈不上质量的好坏。所有关怀软件开发质量的组织、单位,都要定义或理解软件的质量原则、模型。其好处是保证企业实践的均匀性,产品的可维护性、可靠性以及可移植性等.在测试阶段与软件产品的开发过程同样,测试过程也需要有一定的准则,来指导、度量、评价软件测试过程的质量。定义测试准则为控制测试的有效性以及完毕程度,必须定义准则和方略,以判断何时结束测试阶段。准则必须是客观的,可量化的元素,而不能是经验或感觉。根据应用的准则和项目有关的约束,项目领导可以定义使用的度量措施,和要到达的覆盖率。度量测试的有效性、完整性对每个测试的测试覆盖信息和合计信息,用图形方式显示覆盖比率,并根据测试运行状况实时更新,随时显示新的测试所反应的测试覆盖状况。容许所有的测试运行根据其有效性进行管理,顾客可以减少不合用于非回归测试的测试的过程.概念:1.语句覆盖:语句覆盖就是设计若干个测试用例,运行被测试程序,使得每一条可执行语句至少执行一次;2。鉴定覆盖(也称为分支覆盖):设计若干个测试用例,运行所测程序,使程序中每个判断的取真分支和取假分支至少执行一次;3.条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的每个也许取值至少执行一次;4。鉴定-条件覆盖:设计足够多的测试用例,运行所测程序,使程序中每个判断的每个条件的所有也许取值至少执行一次,并且每个也许的判断成果也至少执行一次,换句话说,即是规定各个判断的所有也许的条件取值组合至少执行一次;5。条件组合测试:设计足够多的测试用例,运行所测程序,使程序中每个判断的所有也许的条件取值组合至少执行一次;6。途径测试:设计足够多的测试用例,运行所测程序,要覆盖程序中所有也许的途径5.3静态测试是指不实际运行被测软件,而只是静态的检查程序代码、界面或文档中也许存在的错误的过程。其中包括代码测试、界面测试和文档测试3个方面.对于代码测试,重要测试代码与否符合对应的原则和规范.对于界面测试,重要测试软件的实际界面与需求中的阐明与否相符。对于文档测试,重要测试顾客手册和需求阐明与否符合顾客的实际规定。5.3动态测试是指实际运行被测程序,输入对应的测试数据,检查实际输出成果和预期成果与否相符的过程。因此,我们判断一种测试属于动态还是静态测试,唯一的原则就是看与否运行程序。单元测试是指对软件中的最小可测试单元进行检测和验证。1、什么时候进行单元测试?一般在程序员编码后来,代码已经通过编译后进行单元测试,并且在前期就应当做某些准备工作,例如撰写单元测试计划、编写单元测试用例等.千万不要等到项目后期再进行单元测试,那样就失去了检查代码、防止缺陷的意义了.2、由谁来进行单元测试?单元测试一般由白盒测试工程师或开发人员来测试。假如由开发人员来测试,最佳做到交叉测试,防止1个人只测试自己的代码.3、单元测试的根据是什么?单元测试根据重要有两个,一种事源程序自身,包括代码和注释;尚有一种是项目的《详细设计》文档。4、怎样进行单元测试?重要用白盒测试措施,一般先静态检查代码与否符合规范,然后动态地运行代码,检查其实际运行成果。当然检查运行成果与否对的是一种最基本的规定,我们还要检查诸多项,例如程序的容错处理,程序的边界值处理等。集成测试集成测试(也叫组装测试或联合测试)是在单元测试的基础上,将所有模块按照设计规定集成为系统或子系统,并进行测试。假如是集成为子系统,也可以叫做部件测试。目的当单个模块集成为系统的过程中,软件仍然也许出现问题。例如:•穿越模块接口的数据与否丢失;•一种模块功能的实现也许破坏了另一种模块的功能;•子功能组合之后不一定可以到达预期的功能;•全局数据也许被异常修改;•单个模块的误差被放大到了不能接受的地步.因此,需要在模块集成的时候进行整体测试以发现上面也许出现的问题。必要性单元测试仅仅保证了模块的局部对的性。而系统测试一般在整个系统完毕之后进行,错误难以定位.集成测试具有如下不可替代性:•单元测试不彻底,对于模块间接口信息内容的对的性,互相调用关系与否符合设计无能为力。必须依托集成测试来保证。•和系统测试相比较,集成测试从程序构造出发,目的性,针对性更强。发现问题的效率高。•较轻易测试特殊的处理流程。•定位也比较精确,迅速。集成测试的可反复性强,错误发生后轻易定位。联调和集成测试的区别(1)集成和联调都是对系统的装配过程,不过属于不一样的级别。集成测试•测试人员在开发人员的协助下,制定集成测试计划;•集成测试重要关注的是接口上消息覆盖,异常流程,性能指标等深入测试。•集成测试是分层次的,一种模块集成测试后,可以按照计划进行下一种模块的集成或者更高级别的集成。•当集成测试完毕之后就可以开始联调了。联调:一般是指软件系统和硬件平台之间的联调。可以认为是最高级别的集成测试。•开发经理在开发测试人员的协助下,制定系统联调计划。•有关人员将已通过集成测试的软件系统和硬件平台集成在一起,构成将交付的系统,并调通系统的基本功能.使用系统预测试项来确定基本功能与否都已经实现。•通过系统联调调通后的版本提交系统预测试组进行系统预测试。•在系统的规模比较小比较简朴的时候,可以考虑忽视集成测试而直接进行联调。不过当系统的规模较大的时候,跳过集成测试会带来问题难以发现,难以定位的问题。完整的测试流程:单元测试—〉集成测试->联调—>系统预测试—>系统测试集成测试的层次和阶段集成测试需要分层次,分阶段完毕。一般状况下,分层次阶段可以按照如下规律:•第一种层次是组件测试.为后继测试提供更好的原料。假如系统的某些组件已经充足被测试过,可以跳过这些组件.•第二个层次是做好集成测试规划:考虑人力,物力,时间,测试的重点等。找出关键的部分,以此作为主线进行计划和资源安排.•按照计划,把集成测试划提成为不一样的阶段,明确各个阶段的重要任务,确定任务完毕的标识。集成,单元和系统测试的关联(1)•单元测试是针对模块内部功能的白盒测试。需要辅助测试代码才可以进行测试。•集成测试也叫:组装测试,子系统测试,部件测试等。例如对于模块A进行集成的时候,需要把有关模块一起结合起来才可以进行。集成测试是重视功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论