软件测试及软件质量控制精.ppt

上传人:石*** 文档编号:78779498 上传时间:2023-03-19 格式:PPT 页数:100 大小:3.69MB
返回 下载 相关 举报
软件测试及软件质量控制精.ppt_第1页
第1页 / 共100页
软件测试及软件质量控制精.ppt_第2页
第2页 / 共100页
点击查看更多>>
资源描述

《软件测试及软件质量控制精.ppt》由会员分享,可在线阅读,更多相关《软件测试及软件质量控制精.ppt(100页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

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

2、发发现现和和纠纠正正软软件件的的大大部部分分错错误误,人人们们付付出出的的代代价价会会更更高高,往往会造成恶劣的后果。往往会造成恶劣的后果。从从广广义义上上来来说说,软软件件测测试试工工作作散散布布在在软软件件生生命命周周期期的的各各个个开开发发阶阶段段,人人们们认认识识到到,软软件件测测试试是是保保证证软软件件质质量量的的主主要要手手段段,各各阶阶段段的的评评审审工工作作和和验验证证工工作作,均均是是广广义义概概念念上上的的测测试试工工作作。而而主主要要的的测测试试是是在在编编码码和和测测试试这这两两个个阶阶段段进进行行的的。因此,狭义的软件测试就是程序测试。因此,狭义的软件测试就是程序测试

3、。第3页,本讲稿共100页6.1 6.1 软件测试基本概念软件测试基本概念 G.J.MyersG.J.Myers给出了关于测试的一些规则,被软件工程领域认可:(1)测试是为了发现程序中的错误而执行程序的过程;(2)好的测试方案极有可能发现迄今为止尚未发现的错误;(3 3)成功的测试是发现了至今为止尚未发现的错误。第4页,本讲稿共100页6.1 6.1 软件测试基本概念软件测试基本概念 这这些些规规则则,实实际际上上是是软软件件测测试试的的狭狭义义概概念念程序测试。狭义的软件测试:测试是为了发现错误而执行程序的过程。是根据软件开发的各个阶段的说明和程序的内部结构而精心设计的一批测试用例(有输入数

4、据及预期的结果),并利用这些测试用例执行程序及发现错误的过程。第5页,本讲稿共100页6.1 6.1 软件测试基本概念软件测试基本概念 广义的软件测试是对软件计划、软件系统分析、软件设计、软件编码进行的查错活动,包括代码执行和人工审查活动,测试的目的是找出软件生命周期的各个阶段的错误,有利于以后进行修改和纠正。但测试本身不修正错误,调试才会修正错误。即找错的活动是测试;分析错误的性质与位置,进行纠错的活动是调试,保证算法的正确实现。软件测试与程序测试都是查找错误的活动,差别在于查找错误的范围不同。第6页,本讲稿共100页6.1 6.1 软件测试基本概念软件测试基本概念 由于测试的目标是暴露程序

5、的错误,从心理学角度看,由设计者自己进行测试是不恰当的,设计小组和测试小组应该分别设立,有利于进行客观和公正的软件测试。测试是有限的,由于通常的测试过程不可能穷尽一切情况,即使经过了严格的测试之后,仍然可能存在没有被发现的错误隐藏在程序中,不能证明程序中没有错误。第7页,本讲稿共100页6.1 6.1 软件测试基本概念软件测试基本概念 因此,测试仅仅有可能找出程序的错误,测试不能证明程序是正确的。软件工程中所有其它阶段都是“建设性”的,软件工程师力图从抽象概念出发,逐步设计出具体的软件系统,而测试人员的工作表面上看却是“破坏性”的,竭力证明软件中含有错误,不能按预定要求正确工作。凡是进行对比的

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

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

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

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

10、只是软件配置的一个子集;第15页,本讲稿共100页 (3 3)测试工具:为提高软件测试效率,使用测试工具为测试工作服务;如:测试数据自动生成程序,静态分析程序、动态分析程序、测试结果分析程序及标准例程测试数据库等。6.1.3 6.1.3 测试信息流测试信息流第16页,本讲稿共100页 测试之后,对所有测试结果进行分析,将实际测测试之后,对所有测试结果进行分析,将实际测试的结果与预期的结果进行比较。如果发现出错的数据,试的结果与预期的结果进行比较。如果发现出错的数据,则意味着软件有错误,需要纠错,应进行调试,确定错则意味着软件有错误,需要纠错,应进行调试,确定错误的位置和出错的性质,改正这些错误

11、,同时修正相关误的位置和出错的性质,改正这些错误,同时修正相关文档。修正过的文档一般需经过再次测试,直到通过测文档。修正过的文档一般需经过再次测试,直到通过测试为止。试为止。6.1.3 6.1.3 测试信息流测试信息流第17页,本讲稿共100页 通过收集和分析测试结果的有关数据,可以建立软件评估的可靠性模型。如如果果经经常常出出现现需需要要修修改改设设计计的的严严重重错错误误,那那么么软软件件的的质量和可靠性就值得怀疑,同时也表明需要进一步测试。质量和可靠性就值得怀疑,同时也表明需要进一步测试。相相反反,如如果果软软件件功功能能能能够够正正确确完完成成,出出现现的的错错误误易易于修改,那么就可

12、能有两种评价:于修改,那么就可能有两种评价:6.1.3 6.1.3 测试信息流测试信息流第18页,本讲稿共100页 一种是软件的质量和可靠性达到可以接受的程度。另一种是所做的测试还不足以发现软件的严重错误。另一种是所做的测试还不足以发现软件的严重错误。如如果果得得到到的的评评价价是是没没有有发发现现错错误误,很很有有可可能能测测试试的的配配置置考考虑虑得得不不够够充充分分和和细细致致,软软件件仍仍有有潜潜伏伏的的错错误误,以以后后改改正错误需要付出高昂的代价。正错误需要付出高昂的代价。6.1.3 6.1.3 测试信息流测试信息流第19页,本讲稿共100页 2.2.软件错误可以从不同角度进行分类

13、:(1 1)从错误对程序的影响程度来分:严重性错误:严重影响程序的运行,甚至不能运行;一一般般性性错错误误:经经常常影影响响程程序序的的运运行行,特特殊殊情情况况下下表现正常;表现正常;6.1.3 6.1.3 测试信息流测试信息流第20页,本讲稿共100页 3 微小错误:一般情况下程序能运行,特殊情况下表现异常;4 无影响性错误:不影响程序的运行。无影响性错误:不影响程序的运行。6.1.3 6.1.3 测试信息流测试信息流第21页,本讲稿共100页(2 2)从开发过程的转换环节上分:构造错误:编码实现与设计不一致;设计错误:设计逻辑与说明不一致;说明书错误:说明书与用户要求不一致;说明书错误:

14、说明书与用户要求不一致;需求错误:不满足用户的实际要求;需求错误:不满足用户的实际要求;配置错误:软件配置不满足实际环境。配置错误:软件配置不满足实际环境。6.1.3 6.1.3 测试信息流测试信息流第22页,本讲稿共100页(3 3)从测试结果的表现上分类:1)功能错误:由系统需求分析不完整引起的;)功能错误:由系统需求分析不完整引起的;2)结构错误:由总体设计的错误引起的;)结构错误:由总体设计的错误引起的;3 3)过程错误:由详细设计的错误引起的;4 4)数据错误:由软件编码或详细设计的错误引起的;5)编码错误:由软件编码引起的错误;6)其它错误:由文档和其它系统元素引起的错误;6.1.

15、3 6.1.3 测试信息流测试信息流第23页,本讲稿共100页6.1.4 6.1.4 软件测试步骤与软件开发各软件测试步骤与软件开发各阶段的关系阶段的关系软件测试一般分为四个步骤:软件测试一般分为四个步骤:(1)单单元元测测试试(也也称称模模块块测测试试):针针对对软软件件设设计计的的基基本本单单元元程程序序模模块块,进进行行正正确确性性检检验验的的测测试试工工作作。目目的的在在于于发发现现各各个个模模块块内内部部可可能能存存在在的的各各种种差差错错。单单元元测测试试需需要要从从程程序序内内部部结结构构出出发发设设计计测测试试用用例例,多多个个模模块块可可以平行、独立地进行测试;以平行、独立地

16、进行测试;第24页,本讲稿共100页6.1.4 6.1.4 软件测试步骤与软件开发各软件测试步骤与软件开发各阶段的关系阶段的关系 (2)集成测试(也称组装测试,联合测试):在单元测试的基础上,将所有模块按设计要求集成在一起进行测试,以检验总体设计中各模块间的接口设计问题、模块之间的相互影响、上层模块存在的各种差错及全局数据结构对系统的影响等方面。第25页,本讲稿共100页6.1.4 6.1.4 软件测试步骤与软件开发各软件测试步骤与软件开发各阶段的关系阶段的关系 (3)确确认认测测试试(也也称称验验收收测测试试,有有效效性性测测试试):主主要要检验软件的功能和性能是否与需求说明书中的规定一致。

17、检验软件的功能和性能是否与需求说明书中的规定一致。(4)系系统统测测试试:将将软软件件系系统统作作为为一一个个元元素素,放放入入整整个个实实际际的的计计算算机机系系统统中中,与与计计算算机机硬硬件件、其其他他软软件件、使使用用人人员员等等系系统统元元素素结结合合在在一一起起,在在实实际际使使用用环环境境下下进进行行综综合合全全面的测试。面的测试。第26页,本讲稿共100页6.1.4 6.1.4 软件测试步骤与软件开发各软件测试步骤与软件开发各阶段的关系阶段的关系 前面多次强调,使用软件生命期(瀑布模型)模型,前面多次强调,使用软件生命期(瀑布模型)模型,软件开发过程是一个自顶向下,逐步细化的过

18、程,而软软件开发过程是一个自顶向下,逐步细化的过程,而软件测试过程则是与开发过程相反的次序进行的,是一个件测试过程则是与开发过程相反的次序进行的,是一个自底向上,逐步集成的过程,低一层测试为上一层测试自底向上,逐步集成的过程,低一层测试为上一层测试准备测试条件和数据驱动环境,也包含两者平行进行测准备测试条件和数据驱动环境,也包含两者平行进行测试。试。第27页,本讲稿共100页6.1.4 6.1.4 软件测试步骤与软件开发各软件测试步骤与软件开发各阶段的关系阶段的关系 因此,发现引起错误的原因顺序也与开发过程的相次序反,首先对每一个模块进行单元测试,消除程序模块内部逻辑上和功能上的错误和缺陷,再

19、对照软件设计进行集成测试(有时也叫整体测试),检测和排除子系统或系统结构上的错误,再对照需求进行确认测试(也称为有效性测试),最后进行系统测试,运行系统,看软件系统是否满足功能和性能及其它要求。第28页,本讲稿共100页6.1.4 6.1.4 软件测试步骤与软件开发各软件测试步骤与软件开发各阶段的关系阶段的关系需求分析软件设计软件编码确认测试集成测试单元测试系统测试图图6-2 6-2 软件测试与软件开发过程间的关系软件测试与软件开发过程间的关系第29页,本讲稿共100页6.1.4 6.1.4 软件测试步骤与软件开发各软件测试步骤与软件开发各阶段的关系阶段的关系需求分析 说明书概要设计 说明书详

20、细设计 说明书源程序 代码确认测试集成测试单元测试系统测试图图6-3 6-3 软件测试与开发文档之间的关系软件测试与开发文档之间的关系第30页,本讲稿共100页6.1.5 6.1.5 软件测试原则软件测试原则(1 1)将软件测试贯穿于软件开发的各个阶段中,在开发过程中尽早地发现和预防错误,杜绝隐患,提高软件质量;(2 2)测测试试用用例例必必须须包包含含输输入入数数据据和和与与之之对对应应的的预预期期输输出出结果,精心设计测试用例;结果,精心设计测试用例;(3 3)测试时应避免设计者检查自己设计的程序;(4 4)设设计计测测试试用用例例时时,应应包包括括合合理理的的与与不不合合理理的的输输入入

21、条条件;件;第31页,本讲稿共100页6.1.5 6.1.5 软件测试原则软件测试原则(5 5)充分注意测试中出现的错误群集现象,若发现错误数目较多,则可能残存的错误数目也较多,这种错误出现的群集现象,已为许多程序测试实践所证实;(6)严格执行测试计划,以软件需求说明书为基准设计测试用例,排除测试的随意性;第32页,本讲稿共100页6.1.5 6.1.5 软件测试原则软件测试原则(7)对每一个测试结果做全面检查,不能遗漏错误出现的征兆,软件修改后要进行回归测试,即用修改前测试过的测试用例进行测试,再用新的测试用例测试;(8)妥善保存测试计划、测试用例、出错统计数据和最终分析报告,为维护提供方便

22、。在一个程序段中,还存在着尚未发现的错误概率与已发现的错误数正相关。第33页,本讲稿共100页6.1.5 6.1.5 软件测试原则软件测试原则残存错误的可能性已发现的错误数图6-4 软件错误的群集现象示意图第34页,本讲稿共100页6.2 6.2 软件测试的方法软件测试的方法 软软件件的的测测试试方方法法很很多多,不不同同的的出出发发点点得得到到不不同同的的测测试试方法。有:方法。有:n n从测试过程来分:静态分析法、动态测试法;从测试过程来分:静态分析法、动态测试法;n n从观察结构的透明性方式来分:白盒法、黑盒法、灰盒法;n n从从获获得得测测试试数数据据形形式式上上分分:穷穷尽尽法法;等

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

24、找出软件错误。从测试过程来分:静态分析法、动态测试法;第37页,本讲稿共100页6.2 6.2 软件测试的方法软件测试的方法 结结构构检检查查是是手手工工分分析析技技术术,对对需需求求说说明明、程程序序设设计计、编编码码、测测试试工工作作进进行行评评议议,虚虚拟拟地地(模模拟拟)执执行行程程序序,在评议中发现和检查错误;在评议中发现和检查错误;流图分析是通过分析流程图、代码结构来检查程序错误,便于进行编码分析和测试结果分析;第38页,本讲稿共100页6.2 6.2 软件测试的方法软件测试的方法 符符号号执执行行是是定定义义符符号号化化数数据据,为为程程序序的的每每条条路路径径给给出出符符号号表

25、表达达式式,对对特特定定路路径径输输入入符符号号,经经处处理理输输出出符符号号,判判断断程程序序的的行行为为是是否否错错误误,这这种种方方法法复复杂杂,易易出出错错,较较少少使使用。用。灰灰盒盒法法是是白白盒盒法法和和黑黑盒盒法法相相结结合合使使用用的的方方法法,仅仅对对重重点路径和程序段用白盒法测试,大部分用黑盒法进行测试。点路径和程序段用白盒法测试,大部分用黑盒法进行测试。第39页,本讲稿共100页6.2 6.2 软件测试的方法软件测试的方法 动态测试是直接执行程序进行测试,包括功能测试、接口测试和结构测试,观察程序的行为,记录执行的结果,从执行结果来分析程序可能出现的错误;有些人设想,不

26、管使用那种测试方法,只要对每一种可能发生的情况都进行测试,能正确通过,就可以得到完全正确的程序。第40页,本讲稿共100页6.2 6.2 软件测试的方法软件测试的方法 包包含含所所有有可可能能情情况况的的测测试试称称为为穷穷尽尽测测试试,实实际际上上,通通常常不不可可能能做做到到穷穷尽尽测测试试。因因为为各各种种输输入入数数据据的的排排列列组组合合情情况况往往往往多多到到无无法法实实际际测测试试完完成成的的程程度度。如如用用黑黑盒盒法法测测试试三三个个整整数数型型的的输输入入数数据据,如如果果每每个个整整数数是是1616位位二二进进制制数数,则则输入数据有输入数据有 2161622162216

27、16=248482.81014种排列组合。种排列组合。第41页,本讲稿共100页6.2 6.2 软件测试的方法软件测试的方法 如如果果每每测测试试一一次次需需要要1毫秒,测试完毕这些排列组合的各种情况需要一万年,另外还需测试不合法的输入情况,实际上不可能穷尽所有组合情况。因此,一般的软件测试是有限测试。Alpha()测测试试:通通用用软软件件产产品品为为了了征征集集用用户户的的意意见见,在在开开发发者者的的场场所所,由由用用户户进进行行的的测测试试,记记录录用用户户发发现现的的错误和问题。错误和问题。第42页,本讲稿共100页6.2 6.2 软件测试的方法软件测试的方法 Beta()测试:在一

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

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

30、覆覆盖盖、点点覆覆盖盖、边覆盖,下面以一个经典例子分别介绍:边覆盖,下面以一个经典例子分别介绍:设有某个算法片段的程序流程图如下:第46页,本讲稿共100页 6.4 6.4 白盒法(逻辑覆盖)白盒法(逻辑覆盖)图图6-5程序段程序框图程序段程序框图(A1)AND(B=0)(A=2)OR(X1)X=X/AX=X+1abcdeTT第47页,本讲稿共100页 6.4 6.4 白盒法(逻辑覆盖)白盒法(逻辑覆盖)该程序片段有四条路径:该程序片段有四条路径:abd,acd,ace,aed。n n(1)语语句句覆覆盖盖:选选择择足足够够的的测测试试用用例例使使程程序序中中每每条条语语句句至少执行一次。至少

31、执行一次。为了使每个语句都执行一次,程序的执行路径只需经过a a、b、c c、d d、e各各点点即即可可。如如果果选选择择路路径径aceace,则能保证程序中的语句都执行一次。第48页,本讲稿共100页 6.4 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+1abcdeTT第49页,本讲稿共100页 6.4 6.4 白

32、盒法(逻辑覆盖)白盒法(逻辑覆盖)(2)判判定定覆覆盖盖(也也称称分分支支覆覆盖盖):判判定定是是一一个个逻逻辑辑表表达达式式的的结结果果。选选择择足足够够的的测测试试用用例例,使使程程序序中中每每个个判判定定至至少少都都能能获获得得一一次次“真”值和一次“假假”值值,从从而而使使程程序序的的每每个个判定的每个分支至少都执行一次。判定的每个分支至少都执行一次。例例如如,选选择择测测试试用用例例:A=3,B=0,X=3,A=3,B=0,X=3,预预期期结结果果为为:A=3,B=0,X=1;A=3,B=0,X=1;选选 择择 测测 试试 用用 例例:A=2,B=1,X=0,预预 期期 结结 果果

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

34、获得各种可能的结果。如图6-56-5中,有四个条件:A1,B=0,A=2,X1,每每个个条条件件可可能能出出现现的的各各种种结结果果为为:a a点点出出现现:A1,A1;A1,A1;B=0,B0;B=0,B0;b b点出现:A=2,A2;X1,X1;A=2,A2;X1,X1;第52页,本讲稿共100页 6.4 6.4 白盒法(逻辑覆盖)白盒法(逻辑覆盖)例例如如,选选择择测测试试用用例例:A=2,B=0,X=4,A=2,B=0,X=4,预预期期结结果果为为:A=2,B=0,X=3;A=2,B=0,X=3;选选 择择 测测 试试 用用 例例:A=1,B=1,X=1,A=1,B=1,X=1,预预

35、期期 结结 果果 为为:A=1,B=1,X=1;这组测试用例覆盖了路径acdacd,aed 和abd abd,满足了条件覆盖要求。条件覆盖比判定覆盖强,它使判定表达式中的每个条件都取得了两个不同的结果。第53页,本讲稿共100页 6.4 6.4 白盒法(逻辑覆盖)白盒法(逻辑覆盖)但但也也有有相相反反的的情情况况,每每个个条条件件虽虽然然取取得得两两个个不不同同的的结结果果,判定表达式却始终只取一个值,例如:取数据:判定表达式却始终只取一个值,例如:取数据:n nA=2,B=0,X=1;A=2,B=0,X=1;满足A1,B=0,A=2,X1的条件,执行路径ace;n nA=1,B=1,X=2;

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

37、测 试试 用用 例例:A=1,B=1,X=1,预预 期期 结结 果果 为为:A=1,B=1,X=1;A=1,B=1,X=1;第55页,本讲稿共100页 6.4 6.4 白盒法(逻辑覆盖)白盒法(逻辑覆盖)这组测试用例覆盖了路径acd,aed aed 和和abd,abd,满足了满足了判定判定/条件覆盖要求。但它也并不比条件覆盖更强。条件覆盖要求。但它也并不比条件覆盖更强。第56页,本讲稿共100页 6.4 6.4 白盒法(逻辑覆盖)白盒法(逻辑覆盖)(5 5)条件组合覆盖:选择足够的测试用例,使得程序判定中的条件的各种可能组合都至少出现一次。如图如图6-56-5中,需要测试覆盖条件组合的下述八种

38、情况:中,需要测试覆盖条件组合的下述八种情况:1)A1,B=0;2)A1,B0;3)A1,B=0;4)A1,B0;A1,B0;5)5)A=2,X1 A=2,X1 6)6)A=2,X=1 A=2,X1 8)A2,X1A2,X1 8)A2,X1第57页,本讲稿共100页 6.4 6.4 白盒法(逻辑覆盖)白盒法(逻辑覆盖)用A=2,B=0,X=4,预预期期结结果果:A=2,B=0,X=3,覆覆盖盖情情况况1 1)、5););用A=2,B=1,X=1,A=2,B=1,X=1,预预期期结结果果:A=2,B=1,X=2,A=2,B=1,X=2,覆覆盖盖情情况况2 2)、6)用用A=1,B=0,X=2,预

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

40、衡。数量也急剧增加。开销大,应注意权衡。第59页,本讲稿共100页 6.4 6.4 白盒法(逻辑覆盖)白盒法(逻辑覆盖)(6)(6)点覆盖:图图论论中中的的点点覆覆盖盖定定义义为为:如如果果连连通通图图G G的的子子图图G G 是是连连通通的的,而而且且包包含含G G的的所所有有节节点点,则则称称G 是G的的点点覆覆盖盖。如如果果把把程程序序流流程程图图的的每每个个处处理理框框(含含一一个个或或多多个个语语句句)作作为为一一个个节节点点,就就画画出出了了程程序序图图。满满足足点点覆覆盖盖的的要要求求是是选选取取足足够够多多的的测测试试用用例例,测测试试执执行行程程序序时时的的路路径径,至至少少

41、经经过过程程序序图图的的每每个个节节点点一一次次。显显然然,点点覆覆盖盖的的要要求求和和语语句句覆覆盖盖的的要要求求是是相相同的。同的。第60页,本讲稿共100页 6.4 6.4 白盒法(逻辑覆盖)白盒法(逻辑覆盖)(7)(7)边覆盖:图论中的边覆盖定义为:如果连通图G的子图G 是是连连通通的的,而而且且包包含含G G的的所所有有边边,则则称称G是是G的边覆盖。为了满足边覆盖的测试要求,使得程序的执行路径经过程序图中的每一条边。通常边覆盖和判定覆盖是一致的。第61页,本讲稿共100页 6.4 6.4 白盒法(逻辑覆盖)白盒法(逻辑覆盖)(8)路路径径覆覆盖盖:选选择择足足够够的的测测试试用用例

42、例,使使得得程程序序中中的的每每条条可可能能组组合合路路径径都都至至少少执执行行一一次次。(如如果果程程序序图图中中有有环环,则则每每个个环环至至少少经经过过一一次次。)它它是是相相当当强强的的逻逻辑辑覆覆盖盖标标准准,选择的测试用例更具有代表性,暴露错误的能力也更强。选择的测试用例更具有代表性,暴露错误的能力也更强。第62页,本讲稿共100页 6.4 6.4 黑盒法(逻辑覆盖)黑盒法(逻辑覆盖)黑黑盒盒测测试试法法把把程程序序看看成成是是一一个个黑黑盒盒子子,不不考考虑虑程程序序内内部部的的执执行行过过程程,着着眼眼于于外外部部特特性性,在在接接口口上上进进行行测测试试,仅仅考考虑虑输输入入

43、与与输输出出能能否否与与需需求求规规格格说说明明书书对对应应起起来来,输输入入能能否否正正确确的的接接收收,输输出出能能否否得得到到正正确确的的结结果果。也也称称为为数数据据驱驱动动或输入或输入/输出驱动测试,或功能测试。输出驱动测试,或功能测试。黑盒法包括等价类划分、边界值分析、因果图法。第63页,本讲稿共100页6.5.1 6.5.1 等价类划分等价类划分 一一个个理理想想的的测测试试用用例例能能够够独独自自发发现现某某一一类类错错误误。一一般般的的测测试试是是以以输输入入数数据据为为基基础础进进行行的的,我我们们着着眼眼于于划划分分输输入入数数据据值值的的情情况况,以以便便找找出出有有代

44、代表表性性的的测测试试数数据据,减减少测试工作量。少测试工作量。第64页,本讲稿共100页6.5.1 6.5.1 等价类划分等价类划分 假假设设我我们们可可以以把把输输入入的的数数据据域域划划分分成成有有限限的的等等价价类类,用用每每个个等等价价类类的的代代表表值值作作为为测测试试用用例例的的输输入入数数据据进进行行测测试试,等等价价于于该该类类的的任任何何其其它它值值作作为为设设计计用用例例的的输输入入数数据据进进行行的的测测试试。即即:如如果果等等价价类类中中的的一一个个测测试试用用例例检检测测出出程程序序的的一一个个错错误误,那那么么这这一一等等价价类类的的其其余余测测试试用用例例也也能

45、能发发现现同同样样的的错错误误。相相反反,若若测测不不出出错错误误,则则该该等等价价类类的的其他测试用例,也测不出错误。其他测试用例,也测不出错误。第65页,本讲稿共100页6.5.1 6.5.1 等价类划分等价类划分等价类划分的原则:等价类划分的原则:(1 1)如果规定了输入值的取值范围,则可划分出一个有效的等价类(输入值在此范围内),两个无效的等价类(输入值小于最小值、或大于最大值);(2 2)如果规定了输入数据的个数,则类似地也可以划分出一个有效等价类和两个无效等价类。第66页,本讲稿共100页6.5.1 6.5.1 等价类划分等价类划分 (3)如果规定了输入数据的一组值,而且程序对不同

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

47、可能情况的一部分,还可以根据经验进行划分。上面是针对输入数据而言,对输出数据也可类似划分。第68页,本讲稿共100页6.5.1 6.5.1 等价类划分等价类划分 根根据据等等价价类类划划分分来来设设计计测测试试方方案案时时主主要要使使用用下下面面的的两两个步骤(先划分好等价类):个步骤(先划分好等价类):n n1)设设计计一一个个新新的的测测试试方方案案,尽尽可可能能多多的的覆覆盖盖尚尚未未被被覆覆盖盖的的有有效效等等价价类类;重重复复这这一一步步骤骤直直到到所所有有有有效效等等价价类类都都被被覆盖为止;覆盖为止;n n2)设设计计一一个个新新的的测测试试方方案案,使使它它覆覆盖盖一一个个,而

48、而且且只只覆覆盖盖一一个个尚尚未未被被覆覆盖盖的的无无效效等等价价类类,重重复复这这一一步步骤骤直直到到所所有有无效等价类都被覆盖为止;无效等价类都被覆盖为止;第69页,本讲稿共100页6.5.2 6.5.2 边界值分析边界值分析 经经验验表表明明,程程序序在在处处理理边边界界情情况况时时最最容容易易发发生生错错误误忽略边界数据域问题。所以选取稍微高于或低于边界值的数据进行测试。启发规则如下:n n(1)输输入入条条件件规规定定取取值值范范围围或或输输入入个个数数时时,取取边边界界值值的的上上下值或个数的上下界设计测试用例;下值或个数的上下界设计测试用例;n n(2 2)如如果果输输出出条条件

49、件规规定定取取值值范范围围,取取边边界界上上下下浮浮动动值值作作为测试数据;为测试数据;第70页,本讲稿共100页6.5.2 6.5.2 边界值分析边界值分析(3)规格说明中提出输入输出有序集,取有序集的第一个和最后一个元素作为测试数据;(4)分分析析规规格格说说明明,找找出出其其他他可可能能存存在在的的边边界界条条件件,取其上下浮动值作为测试数据。取其上下浮动值作为测试数据。第71页,本讲稿共100页6.5.3 6.5.3 因果图法因果图法 因果图可以提供逻辑条件和相应动作之间的简洁逻辑关系表示。因果图的使用可以分为如下步骤:因果图的使用可以分为如下步骤:(1)列列出出模模块块的的原原因因和

50、和效效果果(动动作作),给给每每个个原原因和效果一个标示符;因和效果一个标示符;(2)把把原原因因、效效果果用用逻逻辑辑符符号号连连接接起起来来,画画出出原原因因效效果图,标出约束条件;果图,标出约束条件;第72页,本讲稿共100页6.5.3 6.5.3 因果图法因果图法 (3 3)原因相对于判定表中的条件,效果相对于判定表中的动作,把原因效果图转换为判定表;(4 4)把判定表中右边部分的每一列表示的情况转换为测试用例。第73页,本讲稿共100页6.5.3 6.5.3 错误推测法错误推测法 错误推测法在很大程度上依靠人的直觉和经验进行。在很大程度上依靠人的直觉和经验进行。有时利用其他测试方法测

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁