软件测试基本技术.ppt
《软件测试基本技术.ppt》由会员分享,可在线阅读,更多相关《软件测试基本技术.ppt(89页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第3 3章章 软件测试基本技术软件测试基本技术3.1 黑盒测试与白盒测试黑盒测试与白盒测试3.2 白白 盒盒 测测 试技术试技术3.3 黑黑 盒盒 测测 试技术试技术p了解软件测试方法:静态测试、动态测试、了解软件测试方法:静态测试、动态测试、黑盒测试、白盒测试的基本概念黑盒测试、白盒测试的基本概念p掌握白盒测试的程序插桩、逻辑覆盖、基本掌握白盒测试的程序插桩、逻辑覆盖、基本路径测试方法。了解程序的静态测试及其他路径测试方法。了解程序的静态测试及其他白盒测试方法白盒测试方法p掌握黑盒测试的等价类划分、边界值分析、掌握黑盒测试的等价类划分、边界值分析、错误推测、因果图、场景法等方法错误推测、因
2、果图、场景法等方法p掌握测试用例的设计方法。了解测试用例的掌握测试用例的设计方法。了解测试用例的管理管理学习目标学习目标学习重点:p掌握白盒测试的程序插桩、逻辑覆盖、基本掌握白盒测试的程序插桩、逻辑覆盖、基本路径测试方法。路径测试方法。p掌握黑盒测试的等价类划分、边界值分析、掌握黑盒测试的等价类划分、边界值分析、错误推测、因果图、场景法等方法错误推测、因果图、场景法等方法学习难点:p掌握白盒测试的程序插桩、逻辑覆盖、基本掌握白盒测试的程序插桩、逻辑覆盖、基本路径测试方法。路径测试方法。p掌握黑盒测试的等价类划分、边界值分析、掌握黑盒测试的等价类划分、边界值分析、错误推测、因果图、场景法等方法错
3、误推测、因果图、场景法等方法3.1黑盒测试与白盒测试黑盒测试与白盒测试任何工程产品都可以使用白盒测试和黑任何工程产品都可以使用白盒测试和黑盒测试两种方法之一进行测试。盒测试两种方法之一进行测试。1黑盒测试黑盒测试黑黑盒盒测测试试:已已知知产产品品的的功功能能设设计计规规格格和和用用户户手手册册,可可以以进进行行测测试试证证明明每每个个功功能能是是否否实实现现、每每个个实实现现了了的的功功能能是是否否符符合合要要求求,以以及产品的性能是否满足用户的要求。及产品的性能是否满足用户的要求。软软件件的的黑黑盒盒测测试试意意味味着着测测试试要要在在软软件件的的接接口口处处进进行行,测测试试人人员员完完全
4、全不不考考虑虑程程序序内内部部的的逻逻辑辑结结构构和和内内部部特特性性,只只依依据据程程序序的的需需求求规规格格说说明明书书和和用用户户手手册册,检检查查程程序序的的功功能能是是否否符符合合它它的的功功能能说说明明,以以及及性性能能是是否否满满足足用用户户的的要要求求。因因此此黑黑盒盒测测试试又又叫叫功能测试或数据驱动测试。功能测试或数据驱动测试。黑黑盒盒测测试试主主要要是是为为了了发发现现以以下下几几类类错误:错误:1.是否有不正确或遗漏的功能?是否有不正确或遗漏的功能?2.在接口上,输入是否能正确的接受?能在接口上,输入是否能正确的接受?能否输出正确的结果?否输出正确的结果?3.是否有数据
5、结构错误或外部信息(例如是否有数据结构错误或外部信息(例如数据文件)访问错误?数据文件)访问错误?4.性能上是否能够满足要求?性能上是否能够满足要求?5.是否有初始化或终止性错误?是否有初始化或终止性错误?2白盒测试白盒测试白盒测试:已知产品的内部工作过程,可白盒测试:已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否以经过检查。格要求,所有内部成分是否以经过检查。软件的白盒测试是对软件的过程性细节做软件的白盒测试是对软件的过程性细节做细致的检查,它允许测试人员利用程序内部的细致的检查,它允许测试人员利用程序内部的
6、逻辑结构及有关信息,设计或选择测试用例,逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点对程序所有逻辑路径进行测试,通过在不同点检查程序状态,确定实际状态是否与预期的状检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试或逻辑态一致。因此白盒测试又称为结构测试或逻辑驱动测试。驱动测试。白白盒盒测测试试须须对对程程序序模模块块进进行行如如下下检查:检查:1.保证一个模块中的所有独立路径至少保证一个模块中的所有独立路径至少被使用一次被使用一次2.对所有逻辑值均测试对所有逻辑值均测试true和和false。3.在循环的边界和运行的界限内执行循在循
7、环的边界和运行的界限内执行循环体。环体。4.检查内部数据结构以确定其有效性。检查内部数据结构以确定其有效性。3.2白白盒盒测测试试技技术术白盒测试是一种被广泛使用的逻辑测白盒测试是一种被广泛使用的逻辑测试方法,也称为结构测试或逻辑驱动测试。试方法,也称为结构测试或逻辑驱动测试。白盒测试对象基本上是源程序,是以白盒测试对象基本上是源程序,是以程序的内部逻辑为基础的一种测试方法。程序的内部逻辑为基础的一种测试方法。白白盒盒测测试试方方法法又又可可分分为为静静态态测测试试和和动动态态测测试试。静静态态测测试试是是一一种种不不通通过过执执行行程程序序而而进进行行测测试试的的技技术术,其其关关键键功功能
8、能是是检检查查软软件件的的表表示示和和描描述述是是否否一一致致,没没有有冲冲突突或或者者没没有有歧歧义义。它它瞄瞄准准的的是是纠纠正正软软件件系系统统在在描描述述、表表示示和和规规格格上上的的错错误误,是是任任何何进进一一步步测测试试的的前前提提。而而动动态态测测试试需需要要软软件件的的执执行行,当当软软件件系系统统在在模模拟拟的的或或真真实实的的环环境境中中执执行行之之前前、之之中中和和之之后后,对对软软件件系系统统行行为为的的分分析析是是动动态态测测试试的的主主要要特特点点。它它显显示示了了一一个个系系统统在在检检查查状状态态下下是是正正确确还是不正确。还是不正确。3.2.1 白盒测试静态
9、测试白盒测试静态测试最最常常见见的的静静态态测测试试是是找找出出源源代代码码的的语语法法错错误误,这这类类测测试试可可由由编编译译器器来来完完成成,因因为为编编译译器器可可以以逐逐行行分分析析检检验验程程序序的的语语法法,找找出出错错误误并并报报告告。除除此此之之外外,测测试试人人员员须须采采用用人人工工的的方方法法来来检检验验程程序序,有有些些地地方方存存在在非非语语法法方方面面的的错错误误,只只能能通通过过人人工工检检测测的方法来判断。的方法来判断。人人工工检检测测的的方方法法主主要要有有代代码码检检查查法法、静态结构分析法等。静态结构分析法等。1代码检查法代码检查法代代码码检检查查法法主
10、主要要是是通通过过桌桌面面检检查查,代代码码审审查和走查方式,对以下内容进行检查:查和走查方式,对以下内容进行检查:(1)检查代码和设计的一致性;检查代码和设计的一致性;(2)代代码码的的可可读读性性以以及及对对软软件件设设计计标标准准的的遵遵循循情况;情况;(3)代码逻辑表达的正确性;代码逻辑表达的正确性;(4)代码结构的合理性;代码结构的合理性;(5)程序中不安全、不明确和模糊的部分;程序中不安全、不明确和模糊的部分;(6)编程风格方面的问题等。编程风格方面的问题等。代码检查方式主要有:代码检查方式主要有:(1)桌面检查)桌面检查(2)代码审查)代码审查(3)走查)走查2静态结构分析法静态
11、结构分析法在在静静态态结结构构分分析析中中,测测试试人人员员通通常常通通过过使使用用测测试试工工具具分分析析程程序序源源代代码码的的系系统统结结构构、数数据据结结构构、数数据据接接口口、内内部部控控制制逻逻辑辑等等内内部部结结构构,生生成成函函数数调调用用关关系系图图、模模块块控控制制流流图图、内内部部文文件件调调用用关关系系图图等等各各种种图图形形、图图表表,清清晰晰地地标标识识整个软件的组成结构。整个软件的组成结构。通通过过分分析析这这些些图图表表,包包括括控控制制流流分分析析、数数据据据据流流分分析析、接接口口分分析析、表表达达式式分分析析等等,使使其其便便于于阅阅读读与与理理解解,然然
12、后后可可以以通通过过分分析析这这些些图图表表,检查软件有没有存在缺陷或错误。检查软件有没有存在缺陷或错误。静静态态结结构构分分析析法法通通常常采采用用以以下下一一些些方方法法进进行源程序的静态分析:行源程序的静态分析:(1)通通过过生生成成各各种种图图表表,来来帮帮助助对对源源程程序序的静态分析的静态分析常用的的各种引用表主要有:常用的的各种引用表主要有:标号交叉引用表标号交叉引用表变量交叉引用表变量交叉引用表子程序(宏、函数)引用表子程序(宏、函数)引用表等价表等价表常数表常数表常用的的各种关系图、控制流图主要有:常用的的各种关系图、控制流图主要有:函函数数调调用用关关系系图图:列列出出所所
13、有有函函数数,用用连连线线表表示示调调用用关关系系,通通过过应应用用程程序序各各函函数数之之间间的调用关系展示了系统的结构。的调用关系展示了系统的结构。模模块块控控制制流流图图:由由许许多多结结点点和和连连接接结结点点的的边边组组成成的的图图形形,其其中中每每个个结结点点代代表表一一条条或或多多条条语语句句,边边表表示示控控制制流流向向,可可以以直直观观地地反反映映出一个函数的内部结构。出一个函数的内部结构。(2)错误静态分析错误静态分析静静态态错错误误分分析析主主要要用用于于确确定定在在源源程程序序中中是是否有某类错误或否有某类错误或“危险危险”结构。结构。类型和单位分析类型和单位分析引用分
14、析引用分析表达式分析表达式分析接口分析接口分析3.2.2 程序插桩技术程序插桩技术在在软件件动态测试中中,程程序序插插桩是是一一种种基基本的本的测试手段,有着广泛的手段,有着广泛的应用。用。程程序序插插桩方方法法是是借借助助往往被被测程程序序中中插插入入操操作作,来来实现测试目目的的的的方方法法,即即向向源源程程序序中中添添加加一一些些语句句,实现对程程序序语句句的的执行、行、变量的量的变化等情况化等情况进行行检查。想要了解一个程序在某次运行中所有想要了解一个程序在某次运行中所有可执行语句被覆盖的情况,或是每个语句可执行语句被覆盖的情况,或是每个语句的实际执行次数,最好的办法是利用插桩的实际执
15、行次数,最好的办法是利用插桩技术。这里仅以计算整数技术。这里仅以计算整数X和整数和整数Y的最大的最大公约数程序为例,说明插桩方法的要点。公约数程序为例,说明插桩方法的要点。图图3-1给出了这一程序的流程图。给出了这一程序的流程图。图3-1 插桩后求最大公约数程序的流程图 设计插桩程序时需要考虑的问题包括:设计插桩程序时需要考虑的问题包括:探测哪些信息;探测哪些信息;在程序的什么部位设置探测点;在程序的什么部位设置探测点;需要设置多少个探测点;需要设置多少个探测点;程程序序中中特特定定部部位位插插入入某某些些用用以以判判断断变变量量特性的语句。特性的语句。3.2.3 逻辑覆盖逻辑覆盖逻逻辑辑覆覆
16、盖盖也也是是白白盒盒测测试试主主要要的的动动态态测测试试方方法法之之一一,是是以以程程序序内内部部的的逻逻辑辑结结构构为为基基础础的的测测试试技技术术,是是通通过过对对程程序序逻逻辑辑结结构构的的遍遍历历实实现现程程序序的的覆覆盖盖,这这一一方方法法要要求求测测试人员对程序的逻辑结构有清楚的了解试人员对程序的逻辑结构有清楚的了解从从覆覆盖盖源源程程序序语语句句的的详详细细程程度度分分析析,逻逻辑辑覆覆盖盖标标准准有有语语句句覆覆盖盖、判判定定覆覆盖盖、条条件覆盖、判定件覆盖、判定/条件覆盖、条件组合覆盖。条件覆盖、条件组合覆盖。为便于理解,根据下面所示的为便于理解,根据下面所示的2个被测个被测
17、试程序(用试程序(用C语言书写),分别讨论几种语言书写),分别讨论几种常用的覆盖技术。常用的覆盖技术。程序程序1如下:如下:functionjs(floatA,floatB,floatX)if(A1&B=0)X=X/A;if(A=2|X1)X=X+1;图图3-3程程序序1流流程程图图程序程序2如下:如下:voidDoWork(intx,inty,intz)intk=0,j=0;if(x3)&(z5)j=x*y+10;语句块语句块2j=j%3;语句块语句块3图图3-4程程序序2流流程程图图1语句覆盖语句覆盖 语语句句覆覆盖盖使使程程序序中中每每个个语语句句至至少少都都能能被被执执行一次。行一次。
18、例例如如,在在程程序序1中中,为为使使程程序序中中每每个个语语句句至至少少执执行行一一次次,只只需需设设计计一一个个能能通通过过路路径径a-c-e的的数数据据就就可可以以了了,例例如如选选择择输输入入数数据据为为:A=2,B=0,X=3就可达到就可达到“语句覆盖语句覆盖”标准。标准。在在程程序序2中中,如如测测试试用用例例输输入入为为:x=4、y=5、z=5程序执行的路径是:程序执行的路径是:a-b-d。2判定覆盖判定覆盖比比语语句句覆覆盖盖稍稍强强的的覆覆盖盖标标准准是是判判定定覆覆盖盖。按按判判定定覆覆盖盖准准则则进进行行测测试试是是指指,设设计计若若干干测测试试用用例例,运运行行被被测测
19、程程序序,使使得得程程序序中中每每个个判判断断的的取取真真分分支支和和取取假假分分支支至至少少经经历历一一次次,即即判判断断的的真真假假值值均均曾曾被被满满足足。判判定定覆覆盖又称为分支覆盖。盖又称为分支覆盖。3条件覆盖条件覆盖在在设设计计程程序序中中,一一个个判判定定语语句句是是由由多多个个条件组合而成的复合判定。条件组合而成的复合判定。条条件件覆覆盖盖的的含含义义是是:构构造造一一组组测测试试用用例例,使使得得每每一一判判定定语语句句中中每每个个逻逻辑辑条条件件的的可可能能值至少满足一次。值至少满足一次。4条件判定组合覆盖条件判定组合覆盖条条件件判判定定组组合合覆覆盖盖的的含含义义是是:设
20、设计计足足够够的的测测试试用用例例,使使得得判判定定中中每每个个条条件件的的所所有有可可能能(真真/假假)至至少少出出现现一一次次,并并且且每每个个判判定定本本身的判定结果(真身的判定结果(真/假)也至少出现一次。假)也至少出现一次。5多条件覆盖多条件覆盖多多条条件件覆覆盖盖也也称称为为条条件件组组合合覆覆盖盖,它它的的含含义义是是:设设计计足足够够的的测测试试用用例例,使使得得每每个个判判定定中中条条件件的的各各种种可可能能组组合合都都至至少少出出现现一一次次。显显然然满满足足多多条条件件覆覆盖盖的的测测试试用用例例是是一一定定满满足足判判定定覆覆盖盖、条条件件覆覆盖盖和和条条件件判判定定组
21、组合覆盖的。合覆盖的。测试覆盖准则测试覆盖准则(1)Foster的的ESTCA覆盖准则覆盖准则前面所介绍的逻辑覆盖其出发点似乎前面所介绍的逻辑覆盖其出发点似乎是合理的。所谓是合理的。所谓“覆盖覆盖”,就是想要做到,就是想要做到全面而无遗漏。但是,事实表明,它并不全面而无遗漏。但是,事实表明,它并不能真的做到无遗漏。能真的做到无遗漏。K.A.Foster从从测测试试工工作作实实践践的的教教训训出出发发,吸吸收收了了计计算算机机硬硬件件的的测测试试原原理理,提提出出了一种经验型的测试覆盖准则。了一种经验型的测试覆盖准则。(2 2)WoodwardWoodward等人的层次等人的层次等人的层次等人的
22、层次LCSAJLCSAJ覆盖准则覆盖准则覆盖准则覆盖准则Woodward等人曾经指出结构覆盖的等人曾经指出结构覆盖的一些准则,如分支覆盖或路径覆盖,都不一些准则,如分支覆盖或路径覆盖,都不足以保证测试数据的有效性。为此,他们足以保证测试数据的有效性。为此,他们提出了一种层次提出了一种层次LCSAJ覆盖准则。覆盖准则。3.2.4 基本路径测试法基本路径测试法上上节节的的例例子子是是个个比比较较简简单单的的程程序序段段,只只有有两两条条路路径径。但但在在实实际际问问题题中中,即即使使一一个个不不太太复复杂杂的的程程序序,其其路路径径的的组组合合都都是是一一个个庞大的数字。庞大的数字。基本路径测试法
23、是在是在程序控制流基本路径测试法是在是在程序控制流图的基础上,通过分析控制构造的环路复图的基础上,通过分析控制构造的环路复杂性,导出基本可执行路径集合,从而设杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要计测试用例的方法。设计出的测试用例要保证在测试中程序的每一条可执行语句至保证在测试中程序的每一条可执行语句至少执行一次。少执行一次。1程序的控制流图程序的控制流图控制流图是描述程序控制流的一种图控制流图是描述程序控制流的一种图示方式。其中基本的控制结构对应的图形示方式。其中基本的控制结构对应的图形符号如图符号如图3-5所示。在图所示。在图3-5所示的图形符号所示的图形
24、符号中,圆圈称为控制流图的一个结点,它表中,圆圈称为控制流图的一个结点,它表示一个或多个无分支的语句或源程序语句。示一个或多个无分支的语句或源程序语句。图3-5 控制流图的图形符号 图图3-6(a)所所示示的的是是一一个个程程序序的的流流程程图图,它可以映射成图(它可以映射成图(b)所示的控制流图。)所示的控制流图。图3-6 程序流程图和对应的控制流图 图3-7 复合逻辑下的控制流程图abyxy2基本路径测试法的步骤基本路径测试法的步骤 (1)画出程序控制流图 (2)计算程序环路复杂性进进行行程程序序的的基基本本路路径径测测试试时时,程程序序的的环环路路复复杂杂性性给给出出了了程程序序基基本本
25、路路径径集集合合中中的的独独立立路路径径条条数数,这这是是确确保保程程序序中中每每个个可可执执行行语语句句至至少少执执行行一一次次所所必必须须的的测测试试用用例例数数目的上界。目的上界。所谓独立路径,是指包括若干未曾处所谓独立路径,是指包括若干未曾处理的语句或条件的一条路径理的语句或条件的一条路径基基本本路路径径集集不不是是惟惟一一的的,对对于于给给定定的的控控制流图,可以得到不同的基本路径集。制流图,可以得到不同的基本路径集。通常环路复杂性可用以下通常环路复杂性可用以下3种方法求得。种方法求得。将将环环路路复复杂杂性性定定义义为为控控制制流流图图中中的的区域数。区域数。设设E为为控控制制流流
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 基本 技术
限制150内