【软件工程】软件测试及软件质量控制_第1页
【软件工程】软件测试及软件质量控制_第2页
【软件工程】软件测试及软件质量控制_第3页
【软件工程】软件测试及软件质量控制_第4页
【软件工程】软件测试及软件质量控制_第5页
已阅读5页,还剩97页未读, 继续免费阅读

下载本文档

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

文档简介

1、软件测试及软件质量控制 第六章软件系统统的开发发过程中中,软件件测试占占据着重重要地位位。尽管管人们采采取了多多种保证证软件质质量的措措施,由由于软件件系统的的客观复复杂性,人们的的主观认认识不可可能完全全符合客客观实际际,完美美无缺,每个阶阶段的技技术审查查也不可可能毫无无遗漏地地查出和和纠正所所有的设设计和分分析上的的错误,在软件件生命周周期的各各个阶段段,都不不可避免免地会产产生差错错,这些些差错迟迟早会在在软件的的生产和和使用过过程中暴暴露出来来。软件工程程实践的的经验表表明,发发现软件件的时刻刻越晚,改正这这些错误误所花费费的代价价也越高高,如果果在软件件投入使使用之前前没有发发现和

2、纠纠正软件件的大部部分错误误,人们们付出的的代价会会更高,往往会会造成恶恶劣的后后果。从广义上上来说,软件测测试工作作散布在在软件生生命周期期的各个个开发阶阶段,人人们认识识到,软软件测试试是保证证软件质质量的主主要手段段,各阶阶段的评评审工作作和验证证工作,均是广广义概念念上的测测试工作作。而主主要的测测试是在在编码和和测试这这两个阶阶段进行行的。因因此,狭狭义的软软件测试试就是程程序测试试。6.1软软件测测试基本本概念G.J.Myers给出了关关于测试试的一些些规则,被软件件工程领领域认可可:(1)测测试是为为了发现现程序中中的错误误而执行行程序的的过程;(2)好好的测试试方案极极有可能能

3、发现迄迄今为止止尚未发发现的错错误;(3)成成功的测测试是发发现了至至今为止止尚未发发现的错错误。6.1软软件测测试基本本概念这些规则则,实际际上是软软件测试试的狭义义概念程序序测试。狭义的软软件测试试:测试试是为了了发现错错误而执执行程序序的过程程。是根根据软件件开发的的各个阶阶段的说说明和程程序的内内部结构构而精心心设计的的一批测测试用例例(有输输入数据据及预期期的结果果),并并利用这这些测试试用例执执行程序序及发现现错误的的过程。6.1软软件测测试基本本概念广义的软软件测试试是对软软件计划划、软件件系统分分析、软软件设计计、软件件编码进进行的查查错活动动,包括括代码执执行和人人工审查查活

4、动,测试的的目的是是找出软软件生命命周期的的各个阶阶段的错错误,有有利于以以后进行行修改和和纠正。但测试试本身不不修正错错误,调调试才会会修正错错误。即即找错的的活动是是测试;分析错错误的性性质与位位置,进进行纠错错的活动动是调试试,保证证算法的的正确实实现。软软件测试试与程序序测试都都是查找找错误的的活动,差别在在于查找找错误的的范围不不同。6.1软软件测测试基本本概念由于测试试的目标标是暴露露程序的的错误,从心理理学角度度看,由由设计者者自己进进行测试试是不恰恰当的,设计小小组和测测试小组组应该分分别设立立,有利利于进行行客观和和公正的的软件测测试。测测试是有有限的,由于通通常的测测试过程

5、程不可能能穷尽一一切情况况,即使使经过了了严格的的测试之之后,仍仍然可能能存在没没有被发发现的错错误隐藏藏在程序序中,不不能证明明程序中中没有错错误。6.1软软件测测试基本本概念因此,测测试仅仅仅有可能能找出程程序的错错误,测测试不能能证明程程序是正正确的。软件工工程中所所有其它它阶段都都是“建建设性”的,软软件工程程师力图图从抽象象概念出出发,逐逐步设计计出具体体的软件件系统,而测试试人员的的工作表表面上看看却是“破坏性性”的,竭力证证明软件件中含有有错误,不能按按预定要要求正确确工作。凡是进进行对比比的方式式均可理理解为测测试验证证。6.1.2软软件测试试的对象象软件测试试应该贯贯穿于软软

6、件生命命期的各各个阶段段,各阶阶段的工工作是相相互衔接接、相互互影响的的,前一一阶段发发生的问问题自然然要影响响到下一一阶段的的工作。为了把把握各个个环节的的正确性性,人们们需要进进行各种种确认和和验证工工作。软件确认认是广义义上的软软件测试试,它是是企图证证明软件件在一个个给定的的外部环环境中软软件的逻逻辑正确确性的一一系列活活动和过过程,如如需求说说明书的的确认、程序的的确认等等。6.1.2软软件测试试的对象象程序的确确认又分分为静态态确认与与动态确确认。静态确认认一般不不在计算算机上执执行程序序,而是是通过程程序正确确性证明明、静态态分析或或人工分分析来确确认程序序的正确确性;动态确认认

7、主要通通过动态态分析和和动态测测试,用用执行程程序的过过程来检检查执行行的状态态,确认认程序是是否有问问题;6.1.2软软件测试试的对象象正确性证证明主要要是企图图绕过复复杂的测测试,直直接证明明程序的的正确性性。如程序的的输入输输出断言言法。设程序段段为S,其前断言言为P,后断言为为R。如果执行行S以前P为真,则则执行S后R也为真,则证明明S是正确的的,记为为PSR。6.1.2软软件测试试的对象象任何程序序总可以以分成S1、S2、Sn个结点,对应的的断言为为R1、R2、Rn,起初R1为输入断断言,R2为输出断断言,也也是下一一个输入入断言,Rn为最后的的输出断断言,我我们总可可以,将将S1、

8、S2、Sn逐个证明明,自顶顶向下或或自底向向上都可可证明程程序的正正确性,该分支支已发展展为计算算机代数数学;6.1.2软软件测试试的对象象软件验证证也属于于广义上上的软件件测试,它试图图证明在在软件生生命期的的各个阶阶段、各各阶段的的逻辑协协调性、完备性性和正确确性。包括系统统分析员员理解用用户要求求的正确确性、表表达的正正确性、设计人人员对需需求规格格说明理理解的正正确性、设计与与设计表表达的正正确性、程序编编码的正正确性和和运行软软件程序序时输入入的正确确性、运运行结果果的正确确性等,运行结结果与用用户预期期的结果果是否一一致等,这说明明任何一一个环节节上发生生了问题题都可能能在软件件测

9、试中中表现出出来。6.1.3测测试信息息流将测试的的过程用用数据流流图表示示,可得得测试信信息流如如图6-1所示示。 (至软件配置)软件配置 1 测试结果 2 错误 3 修正的软件测试配置 测试结果测试工具 测试 评价 调试 正确 预测结果 出错率 4 数据 可靠性 分析图6-1 测试信息流 6.1.3测测试信息息流1.测试试过程需需要三类类输入:(1)软软件配置置:包括括软件开开发文档档(用户户文档、需求规规格说明明、软件件设计说说明、源源程序代代码)、目标执执行程序序、数据据结构;(2)测测试配置置:包括括测试计计划、测测试用例例、测试试驱动程程序等;实际上上在整个个软件开开发过程程中,测

10、测试配置置只是软软件配置置的一个个子集;(3)测测试工具具:为提提高软件件测试效效率,使使用测试试工具为为测试工工作服务务;如:测试数数据自动动生成程程序,静静态分析析程序、动态分分析程序序、测试试结果分分析程序序及标准准例程测测试数据据库等。6.1.3测测试信息息流测试之后后,对所所有测试试结果进进行分析析,将实实际测试试的结果果与预期期的结果果进行比比较。如如果发现现出错的的数据,则意味味着软件件有错误误,需要要纠错,应进行行调试,确定错错误的位位置和出出错的性性质,改改正这些些错误,同时修修正相关关文档。修正过过的文档档一般需需经过再再次测试试,直到到通过测测试为止止。6.1.3测测试信

11、息息流通过收集集和分析析测试结结果的有有关数据据,可以以建立软软件评估估的可靠靠性模型型。如果经常常出现需需要修改改设计的的严重错错误,那那么软件件的质量量和可靠靠性就值值得怀疑疑,同时时也表明明需要进进一步测测试。相反,如如果软件件功能能能够正确确完成,出现的的错误易易于修改改,那么么就可能能有两种种评价:6.1.3测测试信息息流一种是软软件的质质量和可可靠性达达到可以以接受的的程度。另一种是是所做的的测试还还不足以以发现软软件的严严重错误误。如果得到到的评价价是没有有发现错错误,很很有可能能测试的的配置考考虑得不不够充分分和细致致,软件件仍有潜潜伏的错错误,以以后改正正错误需需要付出出高昂

12、的的代价。6.1.3测测试信息息流2.软件件错误可可以从不不同角度度进行分分类:(1)从从错误对对程序的的影响程程度来分分:严严重性错错误:严严重影响响程序的的运行,甚至不不能运行行;一一般性错错误:经经常影响响程序的的运行,特殊情情况下表表现正常常;6.1.3测测试信息息流微小错误误:一般般情况下下程序能能运行,特殊情情况下表表现异常常;无影响性性错误:不影响响程序的的运行。6.1.3测测试信息息流(2)从从开发过过程的转转换环节节上分:构构造错错误:编编码实现现与设计计不一致致;设计错误误:设计计逻辑与与说明不不一致;说明书错错误:说说明书与与用户要要求不一一致;需需求错错误:不不满足用用

13、户的实实际要求求;配配置错误误:软件件配置不不满足实实际环境境。6.1.3测测试信息息流(3)从从测试结结果的表表现上分分类:1)功能能错误:由系统统需求分分析不完完整引起起的;2)结构构错误:由总体体设计的的错误引引起的;3)过程程错误:由详细细设计的的错误引引起的;4)数据据错误:由软件件编码或或详细设设计的错错误引起起的;5)编码码错误:由软件件编码引引起的错错误;6)其它它错误:由文档档和其它它系统元元素引起起的错误误;6.1.3测测试信息息流6.1.4软软件测试试步骤与与软件开开发各阶阶段的关关系软件测试试一般分分为四个个步骤:(1)单单元测试试(也称称模块测测试):针对软软件设计计

14、的基本本单元程序序模块,进行正正确性检检验的测测试工作作。目的的在于发发现各个个模块内内部可能能存在的的各种差差错。单单元测试试需要从从程序内内部结构构出发设设计测试试用例,多个模模块可以以平行、独立地地进行测测试;6.1.4软软件测试试步骤与与软件开开发各阶阶段的关关系(2)集集成测试试(也称称组装测测试,联联合测试试):在在单元测测试的基基础上,将所有有模块按按设计要要求集成成在一起起进行测测试,以以检验总总体设计计中各模模块间的的接口设设计问题题、模块块之间的的相互影影响、上上层模块块存在的的各种差差错及全全局数据据结构对对系统的的影响等等方面。6.1.4软软件测试试步骤与与软件开开发各

15、阶阶段的关关系(3)确确认测试试(也称称验收测测试,有有效性测测试):主要检检验软件件的功能能和性能能是否与与需求说说明书中中的规定定一致。(4)系系统测试试:将软软件系统统作为一一个元素素,放入入整个实实际的计计算机系系统中,与计算算机硬件件、其他他软件、使用人人员等系系统元素素结合在在一起,在实际际使用环环境下进进行综合合全面的的测试。6.1.4软软件测试试步骤与与软件开开发各阶阶段的关关系前面多次次强调,使用软软件生命命期(瀑瀑布模型型)模型型,软件件开发过过程是一一个自顶顶向下,逐步细细化的过过程,而而软件测测试过程程则是与与开发过过程相反反的次序序进行的的,是一一个自底底向上,逐步集

16、集成的过过程,低低一层测测试为上上一层测测试准备备测试条条件和数数据驱动动环境,也包含含两者平平行进行行测试。6.1.4软软件测试试步骤与与软件开开发各阶阶段的关关系因此,发发现引起起错误的的原因顺顺序也与与开发过过程的相相次序反反,首先先对每一一个模块块进行单单元测试试,消除除程序模模块内部部逻辑上上和功能能上的错错误和缺缺陷,再再对照软软件设计计进行集集成测试试(有时时也叫整整体测试试),检检测和排排除子系系统或系系统结构构上的错错误,再再对照需需求进行行确认测测试(也也称为有有效性测测试),最后进进行系统统测试,运行系系统,看看软件系系统是否否满足功功能和性性能及其其它要求求。6.1.4

17、软软件测试试步骤与与软件开开发各阶阶段的关关系需求分析软件设计软件编码确认测试集成测试单元测试系统测试图6-2 软件件测试与与软件开开发过程程间的关关系6.1.4软软件测试试步骤与与软件开开发各阶阶段的关关系需求分析 说明书概要设计 说明书详细设计 说明书源程序 代码确认测试集成测试单元测试系统测试图6-3 软件件测试与与开发文文档之间间的关系系6.1.5软软件测试试原则(1)将将软件测测试贯穿穿于软件件开发的的各个阶阶段中,在开发发过程中中尽早地地发现和和预防错错误,杜杜绝隐患患,提高高软件质质量;(2)测测试用例例必须包包含输入入数据和和与之对对应的预预期输出出结果,精心设设计测试试用例;

18、(3)测测试时应应避免设设计者检检查自己己设计的的程序;(4)设设计测试试用例时时,应包包括合理理的与不不合理的的输入条条件;6.1.5软软件测试试原则(5)充充分注意意测试中中出现的的错误群群集现象象,若发发现错误误数目较较多,则则可能残残存的错错误数目目也较多多,这种种错误出出现的群群集现象象,已为为许多程程序测试试实践所所证实;(6)严严格执行行测试计计划,以以软件需需求说明明书为基基准设计计测试用用例,排排除测试试的随意意性;6.1.5软软件测试试原则(7)对对每一个个测试结结果做全全面检查查,不能能遗漏错错误出现现的征兆兆,软件件修改后后要进行行回归测测试,即即用修改改前测试试过的测

19、测试用例例进行测测试,再再用新的的测试用用例测试试;(8)妥妥善保存存测试计计划、测测试用例例、出错错统计数数据和最最终分析析报告,为维护护提供方方便。在一个程程序段中中,还存存在着尚尚未发现现的错误误概率与与已发现现的错误误数正相相关。6.1.5软软件测试试原则残存错误的可能性已发现的错误数图6-4 软件件错误的的群集现现象示意意图6.2软软件测测试的方方法软件的测测试方法法很多,不同的的出发点点得到不不同的测测试方法法。有:从测试过过程来分分:静态态分析法法、动态态测试法法;从观察结结构的透透明性方方式来分分:白盒盒法、黑黑盒法、灰盒法法;从获得测测试数据据形式上上分:穷穷尽法;等价类类划

20、分法法;边界界值分析析法;6.2软软件测测试的方方法从逻辑分分析上分分:因果果图法;错误推推测法;从测试步步骤上分分:单元元测试、集成测测试、确确认测试试、系统统测试等等;从考察形形式上分分:功能能测试,逻辑测测试;6.2软软件测测试的方方法如何测试试得更完完全、怎怎样进行行测试用用例的设设计,是是软件测测试中的的关键技技术。无无论用哪哪种方法法进行测测试,都都是设法法用较少少的测试试用例集集合测试试出程序序中较多多的潜在在错误。静态分析析时,不不执行程程序,可可对需求求分析说说明书、软件设设计说明明书、源源程序做做结构检检查、流流图分析析、符号号执行来来分析软软件可能能导致的的异常情情况,找

21、找出软件件错误。从测试试过程来来分:静静态分析析法、动动态测试试法;6.2软软件测测试的方方法结构检查查是手工工分析技技术,对对需求说说明、程程序设计计、编码码、测试试工作进进行评议议,虚拟拟地(模模拟)执执行程序序,在评评议中发发现和检检查错误误;流图分析析是通过过分析流流程图、代码结结构来检检查程序序错误,便于进进行编码码分析和和测试结结果分析析;6.2软软件测测试的方方法符号执行行是定义义符号化化数据,为程序序的每条条路径给给出符号号表达式式,对特特定路径径输入符符号,经经处理输输出符号号,判断断程序的的行为是是否错误误,这种种方法复复杂,易易出错,较少使使用。灰盒法是是白盒法法和黑盒盒

22、法相结结合使用用的方法法,仅对对重点路路径和程程序段用用白盒法法测试,大部分分用黑盒盒法进行行测试。6.2软软件测测试的方方法动态测试试是直接接执行程程序进行行测试,包括功功能测试试、接口口测试和和结构测测试,观观察程序序的行为为,记录录执行的的结果,从执行行结果来来分析程程序可能能出现的的错误;有些人设设想,不不管使用用那种测测试方法法,只要要对每一一种可能能发生的的情况都都进行测测试,能能正确通通过,就就可以得得到完全全正确的的程序。6.2软软件测测试的方方法包含所有有可能情情况的测测试称为为穷尽测测试,实实际上,通常不不可能做做到穷尽尽测试。因为各各种输入入数据的的排列组组合情况况往往多

23、多到无法法实际测测试完成成的程度度。如用用黑盒法法测试三三个整数数型的输输入数据据,如果果每个整整数是16位二二进制数数,则输输入数据据有216216216=2482.81014种排列组组合。6.2软软件测测试的方方法如果每测测试一次次需要1毫秒,测试完完毕这些些排列组组合的各各种情况况需要一一万年,另外还还需测试试不合法法的输入入情况,实际上上不可能能穷尽所所有组合合情况。因此,一般的的软件测测试是有有限测试试。Alpha()测试:通通用软件件产品为为了征集集用户的的意见,在开发发者的场场所,由由用户进进行的测测试,记记录用户户发现的的错误和和问题。6.2软软件测测试的方方法Beta()测试

24、:在在一个或或多个用用户自己己的场所所,由最最终用户户进行,并记录录在测试试中遇到到的所有有问题和和想法。重要的通通用软件件产品,大多经经过和测试。6.3测测试方方案与测测试用例例设计测试试方案是是软件测测试中的的关键问问题。测测试方案案包括预预定要测测试的功功能、结结构,应应该要输输入的测测试数据据和输入入这些数数据后预预期的结结果测试用用例。测测试用例例的设计计是其中中较困难难的问题题,不同同的测试试数据发发现程序序错误的的能力差差别很大大,为了了提高测测试效率率,降低低测试成成本,应应该选用用高效的的测试数数据。因因为不可可能进行行穷尽测测试,选选用少量量高效的的测试数数据,进进行尽可可

25、能完备备的测试试就显得得更重要要了。6.3测测试方方案与测测试用例例设计测试试方案的的基本目目标是,确定一一组最有有可能发发现某个个或某类类错误的的测试用用例。有有多种测测试技术术,同一一种测试试技术在在不同的的应用场场合效果果可能相相差很大大,因此此,通常常需要联联合使用用多种测测试技术术来设计计测试用用例。通常的做做法是用用黑盒法法设计基基本测试试方案,再用白白盒法补补充一些些方案。6.4白白盒法法(逻辑辑覆盖)白盒法也也称逻辑辑驱动法法(逻辑辑覆盖法法),从从软件的的具体逻逻辑结构构和执行行路径出出发,设设计测试试用例。具有语语句覆盖盖、判定定覆盖(分支覆覆盖)、条件覆覆盖、判判定/条条

26、件覆盖盖、路径径覆盖、条件组组合覆盖盖、点覆覆盖、边边覆盖,下面以以一个经经典例子子分别介介绍:设有某个个算法片片段的程程序流程程图如下下:6.4白白盒法法(逻辑辑覆盖)图6-5程序段程序框图 (A1)AND(B=0) (A=2)OR(X1) X=X/AX=X+1abcdeTT6.4白白盒法法(逻辑辑覆盖)该程序片片段有四四条路径径:abd,acd,ace,aed。(1)语句覆盖盖:选择择足够的的测试用用例使程程序中每每条语句句至少执执行一次次。为了使每每个语句句都执行行一次,程序的的执行路路径只需需经过a、b、c、d、e各点即可可。如果果选择路路径ace,则能保证证程序中中的语句句都执行行一

27、次。6.4白白盒法法(逻辑辑覆盖)例如,选选择测试试用例:A=2,B=0,X=3,预期的结结果为:A=2,B=0,X=2.5;但是,许许多路径径得不到到测试,这种测测试很不不充分。图6-5程序段程序框图 (A1)AND(B=0) (A=2)OR(X1) X=X/AX=X+1abcdeTT6.4白白盒法法(逻辑辑覆盖)(2)判判定覆覆盖(也也称分支支覆盖):判定定是一个个逻辑表表达式的的结果。选择足足够的测测试用例例,使程程序中每每个判定定至少都都能获得得一次“真”值值和一次次“假”值,从从而使程程序的每每个判定定的每个个分支至至少都执执行一次次。例如,选选择测试试用例:A=3,B=0,X=3,

28、预期结果果为:A=3,B=0,X=1;选择测试试用例:A=2,B=1,X=0,预期结果果为:A=2,B=1,X=1;6.4白白盒法法(逻辑辑覆盖)这组测试试用例覆覆盖了路路径acd和aed,满足了判判定覆盖盖要求。判定覆覆盖比语语句覆盖盖强,但但是判定定覆盖只只关心整整个判定定表达式式的值,对程序序逻辑的的覆盖程程度仍然然不高,如上面面的测试试,只覆覆盖了全全部路径径的一半半路径。6.4白白盒法法(逻辑辑覆盖)(3)条条件覆覆盖:条条件为逻逻辑表达达式中的的各个逻逻辑分量量。选择择足够的的测试用用例,使使得程序序判定中中的每个个条件都都能获得得各种可可能的结结果。如图6-5中,有四个个条件:A

29、1,B=0,A=2,X1,每个条件件可能出出现的各各种结果果为:a点出现:A1,A1;B=0,B0;b点出现:A=2,A2;X1,X1;6.4白白盒法法(逻辑辑覆盖)例如,选选择测试试用例:A=2,B=0,X=4,预期结果果为:A=2,B=0,X=3;选择测试试用例:A=1,B=1,X=1,预期结果果为:A=1,B=1,X=1;这组测试试用例覆覆盖了路路径acd,aed和abd,满足了条条件覆盖盖要求。条件覆覆盖比判判定覆盖盖强,它它使判定定表达式式中的每每个条件件都取得得了两个个不同的的结果。6.4白白盒法法(逻辑辑覆盖)但也有相相反的情情况,每每个条件件虽然取取得两个个不同的的结果,判定表

30、表达式却却始终只只取一个个值,例例如:取取数据:A=2,B=0,X=1;满足A1,B=0,A=2,X1的条件,执行路路径ace;A=1,B=1,X=2;满足A1,B0,A2,X1的条件,执行路路径abd;满足了条条件覆盖盖,却不不满足判判定覆盖盖,第二二个判定定表达式式的值总总为真。6.4白白盒法法(逻辑辑覆盖)(4)判判定/条件覆覆盖:选选择足够够的测试试用例,使得程程序判定定中的每每个条件件都能获获得各种种可能的的结果,并且使使得每个个判定都都取得各各种可能能的结果果。例如,选选择测试试用例:A=2,B=0,X=4,预期结果果为:A=2,B=0,X=3;选择测试试用例:A=1,B=1,X=

31、1,预期结果果为:A=1,B=1,X=1;6.4白白盒法法(逻辑辑覆盖)这组测试试用例覆覆盖了路路径acd,aed和abd,满足了判判定/条条件覆盖盖要求。但它也也并不比比条件覆覆盖更强强。6.4白白盒法法(逻辑辑覆盖)(5)条条件组合合覆盖:选择足足够的测测试用例例,使得得程序判判定中的的条件的的各种可可能组合合都至少少出现一一次。如图6-5中,需要测测试覆盖盖条件组组合的下下述八种种情况:1)A1,B=0 ;2) A1,B0;3)A1,B=0;4)A1,B0;5) A=2,X16)A=2,X18) A2,X16.4白白盒法法(逻辑辑覆盖)用A=2,B=0,X=4,预期结果果:A=2,B=0

32、,X=3,覆盖情况况1)、5);用A=2,B=1,X=1,预期结果果:A=2,B=1,X=2,覆盖情况况2)、6)用A=1,B=0,X=2,预期结果果:A=1,B=0,X=3,覆盖情况况 3)、7)用A=1,B=1,C=1,预期结果果:A=1,B=1,X=1,覆盖情况况 4)、8)6.4白白盒法法(逻辑辑覆盖)条件组合合覆盖是是最强的覆盖,虽然这这四个测测试实现现了条件件组合覆覆盖,但但并没有有覆盖每每一条路路径,如如:路径径acd遗漏了。以上各种种技术基基本上是是依次增增强的顺顺序,但但测试用用例的数数量也急急剧增加加。开销销大,应应注意权权衡。6.4白白盒法法(逻辑辑覆盖)(6)点点覆盖:

33、图论中中的点覆覆盖定义义为:如如果连通通图G的子图G是连通的的,而且且包含G的所有节节点,则则称G是G的点覆盖盖。如果果把程序序流程图图的每个个处理框框(含一一个或多多个语句句)作为为一个节节点,就就画出了了程序图图。满足足点覆盖盖的要求求是选取取足够多多的测试试用例,测试执执行程序序时的路路径,至至少经过过程序图图的每个个节点一一次。显显然,点点覆盖的的要求和和语句覆覆盖的要要求是相相同的。6.4白白盒法法(逻辑辑覆盖)(7)边边覆盖:图论中中的边覆覆盖定义义为:如如果连通通图G的子图G是连通的的,而且且包含G的所有边边,则称称G是G的边覆盖盖。为了了满足边边覆盖的的测试要要求,使使得程序序

34、的执行行路径经经过程序序图中的的每一条条边。通通常边覆覆盖和判判定覆盖盖是一致致的。6.4白白盒法法(逻辑辑覆盖)(8)路路径覆盖盖:选择择足够的的测试用用例,使使得程序序中的每每条可能能组合路路径都至至少执行行一次。(如果果程序图图中有环环,则每每个环至至少经过过一次。)它是是相当强强的逻辑辑覆盖标标准,选选择的测测试用例例更具有有代表性性,暴露露错误的的能力也也更强。6.4黑黑盒法法(逻辑辑覆盖)黑盒测试试法把程程序看成成是一个个黑盒子子,不考考虑程序序内部的的执行过过程,着着眼于外外部特性性,在接接口上进进行测试试,仅考考虑输入入与输出出能否与与需求规规格说明明书对应应起来,输入能能否正

35、确确的接收收,输出出能否得得到正确确的结果果。也称称为数据据驱动或或输入/输出驱驱动测试试,或功功能测试试。黑盒法包包括等价价类划分分、边界界值分析析、因果果图法。6.5.1等等价类划划分一个理想想的测试试用例能能够独自自发现某某一类错错误。一一般的测测试是以以输入数数据为基基础进行行的,我我们着眼眼于划分分输入数数据值的的情况,以便找找出有代代表性的的测试数数据,减减少测试试工作量量。6.5.1等等价类划划分假设我们们可以把把输入的的数据域域划分成成有限的的等价类类,用每每个等价价类的代代表值作作为测试试用例的的输入数数据进行行测试,等价于于该类的的任何其其它值作作为设计计用例的的输入数数据

36、进行行的测试试。即:如果等等价类中中的一个个测试用用例检测测出程序序的一个个错误,那么这这一等价价类的其其余测试试用例也也能发现现同样的的错误。相反,若测不不出错误误,则该该等价类类的其他他测试用用例,也也测不出出错误。6.5.1等等价类划划分等价类划划分的原原则:(1)如如果规定定了输入入值的取取值范围围,则可可划分出出一个有有效的等等价类(输入值值在此范范围内),两个个无效的的等价类类(输入入值小于于最小值值、或大大于最大大值);(2)如如果规定定了输入入数据的的个数,则类似似地也可可以划分分出一个个有效等等价类和和两个无无效等价价类。6.5.1等等价类划划分(3)如如果规定定了输入入数据

37、的的一组值值,而且且程序对对不同输输入值做做不同地地处理,则每个个允许的的值是一一个有效效的等价价类,还还有一个个无效的的等价类类(任何何一个不不允许的的输入值值);(4)如如果规定定了输入入数据必必须遵循循的规则则,则可可以划分分出一个个有效的的等价类类(符合合规则的的输入数数据)和和若干个个无效的的等价类类(从各各种不同同角度违违反规则则);6.5.1等等价类划划分(5)如如果输入入数据为为整型,则可以以划分出出正整数数、零和和负整数数三个有有效类;(6)如如果程序序处理的的对象是是表格,则应该该使用空空表、以以及含有有一项或或多项的的表进行行测试。以上列举举了可能能情况的的一部分分,还可

38、可以根据据经验进进行划分分。上面面是针对对输入数数据而言言,对输输出数据据也可类类似划分分。6.5.1等等价类划划分根据等价价类划分分来设计计测试方方案时主主要使用用下面的的两个步步骤(先先划分好好等价类类):1)设计计一个新新的测试试方案,尽可能能多的覆覆盖尚未未被覆盖盖的有效效等价类类;重复复这一步步骤直到到所有有有效等价价类都被被覆盖为为止;2)设计计一个新新的测试试方案,使它覆覆盖一个个,而且且只覆盖盖一个尚尚未被覆覆盖的无无效等价价类,重重复这一一步骤直直到所有有无效等等价类都都被覆盖盖为止;6.5.2边边界值分分析经验表明明,程序序在处理理边界情情况时最最容易发发生错误误忽忽略边界

39、界数据域域问题。所以选选取稍微微高于或或低于边边界值的的数据进进行测试试。启发发规则如如下:(1)输输入条件件规定取取值范围围或输入入个数时时,取边边界值的的上下值值或个数数的上下下界设计计测试用用例;(2)如如果输出出条件规规定取值值范围,取边界界上下浮浮动值作作为测试试数据;6.5.2边边界值分分析(3)规规格说明明中提出出输入输输出有序序集,取取有序集集的第一一个和最最后一个个元素作作为测试试数据;(4)分分析规格格说明,找出其其他可能能存在的的边界条条件,取取其上下下浮动值值作为测测试数据据。6.5.3因因果图法法因果图可可以提供供逻辑条条件和相相应动作作之间的的简洁逻逻辑关系系表示。

40、因果图的的使用可可以分为为如下步步骤:(1)列列出模块块的原因因和和效果(动作),给每每个原因因和效果果一个标标示符;(2)把把原因、效果用用逻辑符符号连接接起来,画出原原因效果果图,标标出约束束条件;6.5.3因因果图法法(3)原原因相对对于判定定表中的的条件,效果相相对于判判定表中中的动作作,把原原因效果果图转换换为判定定表;(4)把把判定表表中右边边部分的的每一列列表示的的情况转转换为测测试用例例。6.5.3错错误推测测法错误推测测法在很大程程度上依依靠人的的直觉和和经验进进行。有有时利用用其他测测试方法法测试后后的程序序表现,推测应应该如何何进行下下一步的的测试。也可利利用程序序错误清

41、清单作为为推测测测试的依依据。6.5.3综综合测试试策略对软件系系统的实实际测试试,往往往利用多多种测试试方法进进行,形形成综合合测试策策略。通通常是用用黑盒法法设计一一些基本本的测试试用例,再用白白盒法补补充设计计一些必必要的测测试用例例,黑盒盒、白盒盒法相结结合灰盒法法进行测测试。具具体策略略为:(1)在在任何情情况下都都应该该使用边边界值分分析法进进行测试试。经验验表明这这种方法法设计出出的测试试用例,暴露程程序错误误的能力力最强,应该包包括输入入和输出出数据的的边界情情况;6.5.3综综合测试试策略(2)必必要时用用等价类类划分法法补充测测试用例例;(3)必必要时用用错误推推测法补补充

42、测试试用例;(4)对对照程序序逻辑,检查设设计测试试用例,可根据据对程序序的可靠靠性要求求采用不不同的逻逻辑覆盖盖标准,补充测测试用例例,达到到逻辑覆覆盖标准准;(5)如如果有输输入条件件的组合合,就应应从输入入条件及及其组合合开始测测试。6.5.3综综合测试试策略对于集成成测试可可以使用用模块的的自顶向向下的结结合方式式,也可可以使用用自底向向上的结结合方式式进行测测试,还还可用辅辅助测试试工具协协助测试试。软件系统统测试完完后,应应对软件件配置进进行复查查,确保保软件的的有关文文档资料料的完整整齐全,分类编编目,便便于软件件的维护护和修改改。审查查的资料料包括:用户所所需的文文档(用用户手

43、册册、操作作手册);设计计文档;源程序序;测试试文档(测试说说明书,测试报报告)及及其它说说明等。6.6软软件调调试程序测试试只是发发现错误误的迹象象,并不不清楚具具体错误误的位置置和产生生的原因因,应该该立即进进行调试试,即纠纠正错误误的工作作,它包包含两方方面工作作:(1)确确定程序序中错误误的具体体位置和和性质;(2)修修改错误误。调试必须须由程序序员自己己来进行行。6.6软软件调调试调试技术术有以下下类别:输出存储储器内容容:发现现问题时时,设法法保留现现场信息息,把所所有寄存存器和主主存中相相关部分分的内容容打印出出来进行行分析研研究。打印关键键变量的的动态内内容:为为取得关关键变量

44、量的动态态值,在在程序中中插入标标准的打打印语句句,检验验在某个个事件发发生后变变量是否否按预期期的要求求进行变变化。6.6软软件调调试利用调试试工具跟跟踪程序序的动态态变化,单步跟跟踪,检检查主存存和寄存存器内容容,检查查重要变变量内容容,检查查是否进进入预定定的程序序分支,设置断断点,当当程序运运行到检检查的重重点位置置,暂停停程序运运行,观观察主要要的变化化信息,分析程程序状态态,决定定继续跟跟踪还是是停止执执行,为为程序的的调试提提供了有有力的手手段。调试的策策略有:试探法法,回溯溯法,对对分查找找法、归归纳法、演绎法法。可根根据个人人经验和和具体情情况灵活活应用。6.7软软件质质量控

45、制制高质量是是产品得得以存在在和生长长的前提提,软件件工程的的主要目目标之一一就是要要获得高高质量的的软件。在软件件工程诞诞生之前前,由于于计算机机设备条条件的限限制,计计算机发发展的早早期,内内存容量量有限,执行速速度不高高,当时时的软件件设计特特别强调调效率。随着技技术的发发展,软软件规模模的扩大大,软件件复杂性性的增加加,人们们对软件件质量的的观点早早已发生生了很大大变化,更强调调软件的的全面质质量评价价。6.7.1软软件质量量评价不同的人人员对软软件质量量关心的的着重点点不同,反映了了对软件件质量的的不同要要求。用户关心心软件产产品是否否满足规规定的功功能和性性能要求求,软件件运行是是

46、否可靠靠,是否否易于学学习掌握握,易于于使用,是否有有较高的的运行效效率,是是否可以以从一个个环境移移植到另另一个环环境等问问题。软件开发发人员既既要开发发满足质质量要求求的最终终产品,又要注注意软件件开发过过程中的的每个阶阶段的质质量。6.7.1软软件质量量评价开发人员员常把产产品外部部特性用用软件内内部质量量结构来来对应。维护人员员要求软软件系统统、软件件文档清清晰、软软件文档档与源代代码一致致,软件件易于修修改、易易于维护护。管理人员员关心的的是软件件的总体体质量特特性,在在软件质质量与开开发工期期之间进进行折中中选择;6.7.1软软件质量量评价但影响软软件质量量的各因因素之间间是相互互

47、联系、甚至是是相互矛矛盾的,如追求求可靠性性要牺牲牲一定的的时间和和空间效效率为代代价,要要求软件件不但能能在合法法的输入入情况下下正确地地运行,而且还还应该能能够安全全地排除除非法的的入侵和和处理意意外的事事件。一般要求求软件具具有良好好的结构构,齐全全的文档档资料,易于阅阅读和理理解,便便于修改改和维护护,内部部层次结结构清晰晰、人机机界面友友好,用用户乐于于使用。6.7.1软软件质量量评价国际标准准化机构构建议,软件质质量模型型由三层层组成:高层:软软件质量量需求评评价准则则(SQRC);中层:软软件质量量设计评评价准则则(SQDC);低层:软软件质量量度量评评价准则则(SQMC);6.

48、7.1软软件质量量评价多数软件件同行公公认的一一般质量量按如下下特性进进行评价价:正确性:(功能能度)在在预定的的环境下下,软件件实现的的功能达达到设计计规范和和满足用用户要求求的程度度;可靠性:软件在在给定的的条件下下和规定定的时间间内完成成预定职职能的概概率;即即保持其其性能的的能力相相关的属属性;易用性:用户学学习软件件、运行行操作软软件、准准备输入入、理解解输出所所做的努努力程度度,根据据用户评评估使用用软件所所需进行行努力的的程度相相关的属属性;6.7.1软软件质量量评价效率:在在规定的的条件下下,软件件表现的的性能级级别与所所使用资资源总量量(包括括人员、时间、财力)关系的的属性;

49、可维护性性:软件件修改难难易程度度的一组组属性;可移植性性;(可可转换性性)指一一个软件件从一个个环境转转换到另另一个环环境运行行的能力力的相关关属性。以上六条条是常见见的评价价方面。6.7.1软软件质量量评价还有其它它方面的的特性来来评价软软件质量量,衡量量总体质质量的优优劣程度度。如:健壮性:在硬件件发生故故障、输输入数据据无效或或操作失失误等意意外情况况下,系系统不至至于崩溃溃,能作作出适当当响应的的程度;完整性:(安全全性)对对未经授授权的人人使用软软件或数数据的企企图,系系统能够够控制(禁止)的程度度;6.7.1软软件质量量评价可测试性性:系统统容易测测试的程程度;可再用性性:在其其

50、他应用用中该软软件可以以被再次次使用的的程度(或范围围);可互连性性:把软软件系统统与其他他系统连连接起来来的能力力。除了定性性评价外外,人们们逐渐重重视软件件的质量量度量,它是在在系统运运行过程程中进行行动态检检测,不不断收集集软件性性能方面面的数据据,利用用软件质质量模型型(如软软件可靠靠性模型型、软件件复杂度度模型等等)进行行分析和和评价。6.7.2软软件质量量控制做好软件件质量的的控制,就要加加强软件件生命期期各个阶阶段的软软件质量量保证,需要做做好如下下几方面面的软件件管理工工作:(1)采采用技术术手段保保证软件件质量:在软件件开发过过程中,注意采采用科学学的软件件工程方方法和工工具来保保证所开开发软件件的质量量;6.7.2软软件质量量控制(2)组组织技术术评审:在软件件开发的的每个阶阶段结束束后,都都要组织织评审,对质量量进行评评价,可可以及早早地发现现软件开开发过程程中的可可能引起起软件质质量问题题的潜在在错误;(3)加加强软件件测试:软件测测试是软软件质量量保证的的重要手手段。测测试可以以发现软软件中大大多数隐隐藏的错错误,测测试愈充充分,软软件中的的隐患就就有可能能暴露得得愈彻底底;6.7.2软软件质量量

温馨提示

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

评论

0/150

提交评论