版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件测试培训软件测试培训软件测试培训 主讲:张恺 EMAIL:软件测试的方法和技术 软件测试培训软件测试培训 第一部分白盒测试 第二部分黑盒测试 第三部分其他测试类型 软件测试培训软件测试培训第一部分白盒测试 软件测试培训软件测试培训 此方法,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。 软件测试培训软件测试培训 白盒测试也称为结构测试或逻辑驱动测试,前提是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能够按预定要求正确工作,而不管产品的功能,主要用于
2、软件验证。 软件测试培训软件测试培训 白盒测试方法又可分为静态测试和动态测试。静态测试是一种不通过执行程序而进行测试的技术,其关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。它瞄准的是纠正软件系统在描述、表示和规格上的错误,是任何进一步测试的前提。而动态测试需要软件的执行,当软件系统在模拟的或真实的环境中执行之前、之中和之后,对软件系统行为的分析是动态测试的主要特点。它显示了一个系统在检查状态下是正确还是不正确。 软件测试培训软件测试培训 白盒测试的动态测试要根据程序的控制结构设计测试用例,其原则是: (1)保证一个模块中的所有独立路径至少被使用一次; (2)对所有逻辑值均需测试
3、true和false; (3)在上下边界及可操作范围内运行所有循环; (4)检查内部数据结构以确保其有效性。 软件测试培训软件测试培训 对一个具有的程序,。给出一个小程序的流程图,它包括了一个执行20次的循环。 包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365 24小时,要想把所有路径测试完,需3170年。 软件测试培训软件测试培训 软件测试培训软件测试培训 下面将介绍几种实用的白盒测试用例设计方法,包括程序插桩、逻辑覆盖、基本路径测试等。 软件测试培训软件测试培训程序插桩 在软件动态测试中,程序插桩是一种基本的测试手段,有着广泛的应用。 1方法简介 程序插桩
4、方法是借助往被测程序中插入操作,来实现测试目的的方法。 软件测试培训软件测试培训 如果我们想要了解一个程序在某次运行中所有可执行语句被覆盖的情况,或是每个语句的实际执行次数,最好的办法是利用插桩技术。这里仅以计算整数X和整数Y的最大公约数程序为例,说明插桩方法的要点。 软件测试培训软件测试培训 入口 C(1)=C(1)+1 Q=X R=Y C(2)=C(2)+1 C(6)=C(6)+1 QR C(4)=C(4)+1 C(3)=C(3)+1 QR 出口 C(5)=C(5)+1 Q=QR R=RQ 图 插桩后求最大公约数程序的流程图 软件测试培训软件测试培训 设计插桩程序时需要考虑的问题包括: 探
5、测哪些信息; 在程序的什么部位设置探测点; 需要设置多少个探测点。 软件测试培训软件测试培训 2断言语句(Assert) 在程序中特定部位插入某些用以判断变量特性的语句,使得程序执行中这些语句得以证实,从而使程序的运行特性得到证实。我们把插入的这些语句称为断言。这一做法是程序正确性证明的基本步骤,尽管算不上严格的证明,但方法本身仍然是很实用的。 软件测试培训软件测试培训思考题 计算两个数的最小公倍数。 软件测试培训软件测试培训逻辑覆盖 逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术,是通过对程序逻辑结构的遍历实现程序的覆盖,它是一系列测试过程的总称,这组测试过程逐渐进行越来越完整的通
6、路测试。这一方法要求测试人员对程序的逻辑结构有清楚的了解,甚至要能掌握源程序的所有细节。它属于动态测试。 软件测试培训软件测试培训 从覆盖源程序语句的详细程度分析,逻辑覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖和修正条件判定覆盖。 为便于理解,使用如下所示的程序及其流程图。 软件测试培训软件测试培训W H I L E循 环 结 构 顺 序 结 构 U N T IL 循 环 结 构 IF 选 择 结 构 C A S E多 分 支 结 构选 择 结 构 软件测试培训软件测试培训 int function1(bool a,bool b,bool c) int x; x=0;
7、 if(a&(b|c) x=1; return x; 软件测试培训软件测试培训 1语句覆盖 为了暴露程序中的错误,程序中的每条语句至少应该执行一次。所以,语句覆盖的含义是:选择足够多的测试数据,使被测程序中每条语句至少执行一次。 软件测试培训软件测试培训 2判定覆盖 比语句覆盖稍强的覆盖标准是判定覆盖。按判定覆盖准则进行测试是指,设计若干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。判定覆盖又称为分支覆盖。 软件测试培训软件测试培训 3条件覆盖 在设计程序中,一个判定语句是由多个条件组合而成的复合判定。 条件覆盖的含义是:构造一组
8、测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。 软件测试培训软件测试培训 4条件判定组合覆盖 条件判定组合覆盖的含义是:设计足够的测试用例,使得判定中每个条件的所有可能(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次。 软件测试培训软件测试培训 5多条件覆盖 多条件覆盖也称为条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。 软件测试培训软件测试培训 6修正条件判定覆盖 它要求满足两个条件:首先,每一个程序模块的入口和出口点都要考虑
9、至少被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;其次,程序的判定被分解为通过逻辑操作符(and、or)连接的bool条件,每个条件对于判定的结果值是独立的。 软件测试培训软件测试培训 7测试覆盖准则 (1)Foster的ESTCA覆盖准则 前面所介绍的逻辑覆盖其出发点似乎是合理的。所谓“覆盖”,就是想要做到全面而无遗漏。但是,事实表明,它并不能真的做到无遗漏。 K.A.Foster从测试工作实践的教训出发,吸收了计算机硬件的测试原理,提出了一种经验型的测试覆盖准则。 软件测试培训软件测试培训 (2)Woodward等人的层次LCSAJ覆盖准则 Woodward等人曾经指出结构覆
10、盖的一些准则,如分支覆盖或路径覆盖,都不足以保证测试数据的有效性。为此,他们提出了一种层次LCSAJ覆盖准则。 软件测试培训软件测试培训基本路径测试 上节的例子是个比较简单的程序段,只有两条路径。但在实际问题中,即使一个不太复杂的程序,其路径的组合都是一个庞大的数字。 如果把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行零次和一次,就成为基本路径测试。 设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。 软件测试培训软件测试培训 1程序的控制流图 控制流图是描述程序控制流的一种图示方式。其中基本的控制结构对应的图形符号如图所示。在图所示的图形符号中,圆圈称为控制流图的
11、一个结点,它表示一个或多个无分支的语句或源程序语句。 软件测试培训软件测试培训 R 3 R 2 R 1 区域 (a )程序流程图 ) 7 1 2 3 4 5 6 8 1(b )控制流图 1 2 6 4 7 8 9 1 0 1 1 边 结点 R 4 图 控制流图的图形符号 软件测试培训软件测试培训图 程序流程图和对应的控制流图 图(a)所示的是一个程序的流程图,它可以映射成图(b)所示的控制流图。 软件测试培训软件测试培训 2计算程序环路复杂性 进行程序的基本路径测试时,程序的环路复杂性给出了程序基本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。
12、所谓独立路径,是指包括若干未曾处理的语句或条件的一条路径 软件测试培训软件测试培训 基本路径集不是惟一的,对于给定的控制流图,可以得到不同的基本路径集。 通常环路复杂性可用以下3种方法求得。 将环路复杂性定义为控制流图中的区域数。 设E为控制流图的边数,N为图的结点数,则定义环路的复杂性为V(G)=EN+2。 若设P为控制流图中的判定结点数,则有V(G)=P+1。 软件测试培训软件测试培训 3基本路径测试法步骤 基本路径测试法适用于模块的详细设计及源程序,其主要步骤如下。 以详细设计或源代码作为基础,导出程序的控制流图。 计算得到的控制流图G的环路复杂性V(G)。 确定线性无关的路径的基本集。
13、 生成测试用例,确保基本路径集中每条路径的执行。 软件测试培训软件测试培训思考题计算两个数的最小公倍数的程序的基础上,画出流程图,并计算V(G)。#include int main()int a,b;scanf(%d %d,&a,&b);int temp;if(ab)temp=a;a=b;b=temp;/保证a是较小的那个数for(int i=a;i=0;i-)if(a%i=0&b%i=0)/求最大公约数temp=i;break;printf(%dn,a*b/temp);/输出最小公倍数 软件测试培训软件测试培训程序的静态测试 1源程序静态分析 在静态结构分析中,测试者
14、通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图、子程序表、宏和函数参数表等各类图形图表,可以清晰地标识整个软件系统的组成结构,使其便于阅读与理解,然后可以通过分析这些图表,检查软件有没有存在缺陷或错误。 软件测试培训软件测试培训 通常采用以下一些方法进行源程序的静态分析。 (1)生成各种引用表 标号交叉引用表 变量交叉引用表 子程序(宏、函数)引用表 等价表 常数表 软件测试培训软件测试培训 (2)错误静态分析 错误静态分析主要用于确定在源程序中是否有某类错误或“危险”结构。 类型和单位分析 引用分析
15、表达式分析 接口分析 软件测试培训软件测试培训 2人工测试 静态分析中进行人工测试的主要方法有桌前检查、代码审查和走查。经验表明,使用这种方法能够有效地发现30%70%的逻辑设计和编码错误。 软件测试培训软件测试培训 (1)桌前检查 由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进行单元测试设计之前,对源程序代码进行分析、检验,并补充相关的文档,目的是发现程序中的错误。 软件测试培训软件测试培训 (2)代码审查 代码审查是由若干程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进行静态分析的过程。 代码审查分两步。第一步,小组负责人提前把设计规格说明书、控制流程图、程序文
16、本及有关要求、规范等分发给小组成员,作为审查的依据。小组成员在充分阅读这些材料后,进入审查的第二步,召开程序审查会。 软件测试培训软件测试培训 (3)走查 走查与代码审查基本相同,其过程分为两步。第一步也把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。开会的程序与代码审查不同,不是简单地读程序和对照错误检查表进行检查,而是让与会者“充当”计算机,即首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论用。 软件测试培训软件测试培训其他白盒测试方法简介 1域测试 域测试
17、是一种基于程序结构的测试方法。 域测试正是在分析输入域的基础上,选择适当的测试点以后进行测试的。 软件测试培训软件测试培训 2符号测试 符号测试的基本思想是允许程序的输入不仅仅是具体的数值数据,而且包括符号值,这一方法也因此而得名。 软件测试培训软件测试培训 3Z路径覆盖 分析程序中的路径是指检验程序从入口开始,执行过程中经历的各个语句,直到出口。 软件测试培训软件测试培训 4程序变异 程序变异方法是一种错误驱动测试。所谓错误驱动测试方法,是指该方法是针对某类特定程序错误的。经过多年的测试理论研究和软件测试的实践,人们逐渐发现要想找出程序中所有的错误几乎是不可能的。比较现实的解决办法是将错误的
18、搜索范围尽可能地缩小,以利于专门测试某类错误是否存在。 错误驱动测试主要有两种,即程序强变异和程序弱变异。 软件测试培训软件测试培训 最后,归纳一下白盒测试中各种测试方法的应用策略。 在白盒测试中,可以使用各种测试方法的综合策略如下。 (1)在测试中,应尽量先使用工具进行静态结构分析。 (2)测试中可采取先静态后动态的组合方式:先进行静态结构分析、代码检查,再进行覆盖率测试。 软件测试培训软件测试培训 (3)利用静态分析的结果作为导引,通过代码检查和动态测试的方式对静态发现结果进行进一步的确认,使测试工作更为有效。 (4)覆盖率测试是白盒测试的重点,一般可使用基本路径测试法达到语句覆盖标准;对
19、于软件的重点模块,应使用多种覆盖率标准衡量代码的覆盖率。 软件测试培训软件测试培训 (5)在不同的测试节点,测试的侧重点不同:在单元测试阶段,以代码检查、逻辑覆盖为主;在集成测试阶段,需要增加静态结构分析等;在系统测试阶段,应根据黑盒测试的结果,采取相应的白盒测试。 软件测试培训软件测试培训第二部分黑盒测试 软件测试培训软件测试培训 这种方法是把看做,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。 黑盒测试又叫做或。 软件测试培训软件测试培训 黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误: ? 在接口上,? ? (
20、例如数据文件)? ? ? 软件测试培训软件测试培训 用黑盒测试发现程序中的错误,必须在中确定测试数据,来检查程序是否都能产生正确的输出。 但这是的。 软件测试培训软件测试培训2039岁6点4059岁4点年年龄龄60岁以上20岁以下2点MALE5点性性别别FEMALE3点已婚3点婚婚姻姻未婚5点扶扶养养人人数数一 人 扣 0.5 点 最 多 扣 3 点 ( 四 舍 五 入 取 整 数 ) 假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试: 可能采用的 测试数据组: 232232 264 如果测试一 组数据需要1毫秒,一年工作365 24
21、小时,完成所有测试需5亿年。 软件测试培训软件测试培训 黑盒测试方法主要有等价类划分、边界值分析、因果图、错误推测、功能图法等,主要用于软件确认测试。 软件测试培训软件测试培训等价类划分法 等价类划分是一种典型的黑盒测试方法。使用这一方法时,完全不考虑程序的内部结构,只依据程序的规格说明来设计测试用例。由于不可能用所有可以输入的数据来测试程序,而只能从全部可供输入的数据中选择一个自己进行测试。如何选择适当的子集,使其尽可能多地发现错误,解决的办法之一就是等价类划分。 软件测试培训软件测试培训 软件测试培训软件测试培训 软件测试培训软件测试培训划分等价类的原则.1 软件测试培训软件测试培训划分等
22、价类的原则.2 软件测试培训软件测试培训划分等价类的原则.3 软件测试培训软件测试培训划分等价类的原则.4 软件测试培训软件测试培训划分等价类的原则.5 (5) (5) 在规定了输入数据必须遵守的规则情况下,在规定了输入数据必须遵守的规则情况下,可确立一个有效等价类可确立一个有效等价类( (符合规则符合规则) )和若干个无效和若干个无效等价类等价类( (从不同角度违反规则从不同角度违反规则) )。 软件测试培训软件测试培训根据等价类划分选取用例/数据 软件测试培训软件测试培训划分等价类的实例.1 软件测试培训软件测试培训划分等价类的实例.2 某工厂公开招工,在报名系统年龄输入框某工厂公开招工,
23、在报名系统年龄输入框中规定报名者年龄应在中规定报名者年龄应在1967年年02月月1986年年03月之间。月之间。即出生年月不在上述范围内,即出生年月不在上述范围内,将拒绝接受,并显示将拒绝接受,并显示“年龄不合格年龄不合格”等出等出错信息。错信息。 软件测试培训软件测试培训输入输入数据数据有效等价类有效等价类无效等价类无效等价类出生年月出生年月6 6位数字字符位数字字符 有非数字字符有非数字字符 少于少于6 6个数字符个数字符 多于多于6 6个数字符个数字符对应数值对应数值 在196702198603之间198603月份对应月份对应数值数值在112之间等于“0” 12划分等价类的实例.3 软件
24、测试培训软件测试培训 根据下面给出的规格说明,利用等价类划根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。分的方法,给出足够的测试用例。 “一个程序读入一个程序读入3个整数,把这三个数值看个整数,把这三个数值看作一个三角形的作一个三角形的3条边的长度值。这个程序条边的长度值。这个程序要打印出信息,说明这个三角形是不等边要打印出信息,说明这个三角形是不等边的、是等腰的、还是等边的。的、是等腰的、还是等边的。” 一个很重要的例子.1 软件测试培训软件测试培训 我们可以设三角形的我们可以设三角形的3条边分别为条边分别为A,B,C。如果它们能够构成三角形的如果它们能够构成三角形的3条
25、边,必须满条边,必须满足:足: A0,B0,C0 且且A+BC,B+CA,A+CB。 如果是等腰的,还要判断如果是等腰的,还要判断A=B,或,或B=C,或,或A=C。 如果是等边的,则需判断是否如果是等边的,则需判断是否A=B,且,且B=C,且且A=C。一个很重要的例子.2 软件测试培训软件测试培训输入条件输入条件有效等价类有效等价类无效等价类无效等价类 是否是否三边都大三边都大于于0 0(A0) and (B0)and (C0) (A0) and (B0)and (C0) (1)(1)(A0)(A0), (2)(2)(B0)(B0), (3)(3)(C0)(C0), (4)(4) 是否是否两
26、边之和两边之和大大于第三边于第三边(A+BC)and(B+CA)and(A+CB) (A+BC)and(B+CA)and(A+CB) (5)(5)(A+BC)(A+BC), (6)(6)(B+CA)(B+CA), (7)(7)(A+CB)(A+CB), (8)(8) 是否是否等腰三角等腰三角形形(A=B)(A=B), (9)(9)(B=C)(B=C), (10)(10)(C=A)(C=A), (11)(11)(AB)and (12)(AB)and (12)(BC)and(BC)and(CA)(CA) 是否是否等边三角等边三角形形(A=B)and(B=C)and(C=A) (A=B)and(B=
27、C)and(C=A) (13)(13)(AB)(AB), (14)(14)(BC)(BC), (15)(15)(CA)(CA), (16)(16)一个很重要的例子.3 软件测试培训软件测试培训序号序号【A,B,C】覆盖等价类覆盖等价类输出输出1【3 3,4 4,5 5】(1 1),(),(5 5)一般三角形一般三角形2【0 0,1 1,2 2】(2 2)不能构成三角形不能构成三角形3【1 1,0 0,2 2】(3 3)4【1 1,2 2,0 0】(4 4)5【1 1,2 2,3 3】(1 1),(),(6 6)6【1 1,3 3,2 2】(1 1),(),(7 7)7【3 3,1 1,2 2】
28、(1 1),(),(8 8)8【3 3,3 3,4 4】(1 1),(),(5 5),(),(9 9)等腰三角形等腰三角形9【3 3,4 4,4 4】(1 1),(),(5 5),(),(1010)10【3 3,4 4,3 3】(1 1),(),(5 5),(),(1111)11【3 3,4 4,5 5】(1 1),(),(5 5),(),(1212)非等腰三角形非等腰三角形12【3 3,3 3,3 3】(1 1),(),(5 5),(),(1313)是等边三角形是等边三角形13【3 3,4 4,4 4】(1 1),(),(5 5),(),(1010),(),(1414)非等边三角形非等边三角
29、形14【3 3,4 4,3 3】(1 1),(),(5 5),(),(1111),(),(1515)15【3 3,3 3,4 4】(1 1),(),(5 5),(),(9 9),), (1616)一个很重要的例子.4 软件测试培训软件测试培训思考题-设计出测试用例 保险费率计算 人 人 保 险 公 司 承 担 人 寿 保 险 已 有 多 年 历 史 , 该 公 司 保 费 计 算 方 式 为 投 保 额 保 险 率 , 保 险 率 又 依 点 数 不 同 而 有 别 , 10 点 以 上 费 率 为 0.6 % , 10 点 以 下 费 率 为 0.1 % : 软件测试培训软件测试培训思考题N
30、oImage输入数据说明。 软件测试培训软件测试培训边界值分析法 人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 使用边界值分析方法设计测试用例,首先应确定边界情况。 软件测试培训软件测试培训 软件测试培训软件测试培训 选择测试用例的原则如下。 1、 如果输入条件规定了值的范围,则应该取刚达到这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。 2、 如果输入条件规定了值的个数,则用最大个数、最小个数、比最大个数多1个、比最小个数少1 个的数作为测试数据。 软件测试培训软件测试培
31、训 3、 如果程序的规格说明给出的输入域或输出域是有序集合(如有序表、顺序文件等),则应选取集合的第一个和最后一个元素作为测试用例。 软件测试培训软件测试培训 4、如果程序用了一个内部结构,应该选取这个内部数据结构的边界值作为测试用例。 5、分析规格说明,找出其他可能的边界条件。 软件测试培训软件测试培训 使用边界值分析方法设计测试用例,首先应确定边界情况。,而不是选取等价类中的典型值或任意值做为测试数据 依据边界值分析法确定测试用例依据边界值分析法确定测试用例 Id 110个字母 地址 010个汉字 邮编 6个数字 软件测试培训软件测试培训 软件测试培训软件测试培训 软件测试培训软件测试培训
32、思考题-设计出测试用例 找零钱最佳组合 假 设 商 店 货 品 价 格 (R) 皆 不 大 於 100 元 ( 且 为 整 数 ) , 若 顾 客 付 款 在 100 元 内 (P) , 求 找 给 顾 客 之 最 少 货币 个(张) 数 ? ( 货 币 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 种 ) 软件测试培训软件测试培训因果图法 软件测试培训软件测试培训因果图生成基本步骤.1 软件测试培训软件测试培训因果图生成基本步骤.2 软件测试培训软件测试培训 在因果图中出现的基本符号通常在因果图中用Ci表示原因,用Ei表示结果,各结点
33、表示状态,可取值“0”或“1”。“0”表示某状态不出现,“1”表示某状态出现。 软件测试培训软件测试培训若若a1则则b1若若a1则则b0因果图 - 基本符号.1 软件测试培训软件测试培训若若a或或b或或c1则则d1 若若ab1则则c1因果图 - 基本符号.2 软件测试培训软件测试培训因果图 - 约束条件.1 软件测试培训软件测试培训因果图 - 约束条件.2 软件测试培训软件测试培训因果图 - 约束条件.3 软件测试培训软件测试培训因果图 - 约束条件.4 软件测试培训软件测试培训因果图 - 约束条件.5 软件测试培训软件测试培训因果图示例.1 软件测试培训软件测试培训因果图示例.2 软件测试培
34、训软件测试培训因果图示例.3 软件测试培训软件测试培训因果图示例.4已投币已按钮 软件测试培训软件测试培训因果图示例.5 软件测试培训软件测试培训判定表驱动分析方法.1 判定表又称为决策表。判定表又称为决策表。 当模块中包含当模块中包含复杂的条件组合复杂的条件组合,并要根据,并要根据这些条件这些条件选择动作选择动作时,使用判定表能清晰时,使用判定表能清晰地表示出复杂的条件组合与各种动作之间地表示出复杂的条件组合与各种动作之间的对应关系。的对应关系。 软件测试培训软件测试培训 条件桩 条件项 (条件的组合) 动作桩 动作项判定表驱动分析方法.2 一张判定表的田字型结构:条件桩、条件项、一张判定表
35、的田字型结构:条件桩、条件项、动作项、动作桩规则。动作项、动作桩规则。 决策表的读表方法:顺时针方向。决策表的读表方法:顺时针方向。 软件测试培训软件测试培训判定表驱动分析方法.3 条件桩:列出了问题的所有条件。通常认为列出的条件的次序无关紧要。 动作桩:列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。 条件项:列出针对它所列条件的取值,在所有可能情况下的真假值。 动作项:列出在条件项的各种取值情况下应该采取的动作。 软件测试培训软件测试培训判定表驱动分析方法.4 判定表的绘制步骤:判定表的绘制步骤:判定表中列出多少组条件取值,也就有多少条判定表中列出多少组条件取值,也就有多少条规则
36、,条件项和动作项就有多少列。规则,条件项和动作项就有多少列。确定规则的个数。假如有确定规则的个数。假如有n n个条件,每个条个条件,每个条件有两面个取值件有两面个取值(0,1)(0,1),故有,故有2n2n种规则。种规则。列出所有的条件桩和动作桩列出所有的条件桩和动作桩填入条件项填入条件项填入动作项。制定判定表填入动作项。制定判定表简化。合并相似规则或者相同动作。简化。合并相似规则或者相同动作。 软件测试培训软件测试培训 举例举例 问题说明:问题说明:“某货运站收费标准如下:如某货运站收费标准如下:如果收件地点在本省,则快件每公斤果收件地点在本省,则快件每公斤5 5元,慢元,慢件每公斤件每公斤
37、3 3元;如果收件地点在外省,则在元;如果收件地点在外省,则在2020公斤以内(含公斤以内(含2020公斤)快件每公斤公斤)快件每公斤7 7元,元,慢件每公斤慢件每公斤5 5元,而超过元,而超过2020公斤时,快件每公斤时,快件每公斤公斤9 9元,慢件每公斤元,慢件每公斤7 7元。元。” 判定表驱动分析方法.5 软件测试培训软件测试培训条件取值含义收件地址在本省?Y是N否邮件重量20公斤?Y是N否快慢件?Y快件N慢件判定表驱动分析方法.6 条件取值分析表条件取值分析表 软件测试培训软件测试培训12345678条件桩收件地址在本省?YYYYNNNN条件项邮件重量20公斤?YYNNYYNN快慢件?
38、YNYNYNYN动作桩3元/公斤XX动作项5元/公斤XXX7元/公斤XX9元/公斤X判定表驱动分析方法.7 判定表判定表 软件测试培训软件测试培训Y YN NY N*YN-*p 简化判定表简化判定表判定表驱动分析方法.8 软件测试培训软件测试培训123456条件桩收件地址在本省?YYNNNN条件项邮件重量20公斤?_YYNN快慢件?YNYNYN动作桩3元/公斤X动作项5元/公斤XX7元/公斤XX9元/公斤X判定表驱动分析方法.9 化简后的判定表化简后的判定表 软件测试培训软件测试培训错误推测法 人们也可以靠经验和直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的例子。这就是错误
39、推测法。 错误推测法的基本想法是:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。 软件测试培训软件测试培训 软件测试培训软件测试培训 Sql注入式攻击注入式攻击是指利用设计上的漏洞,在服务器上运行Sql 命令以达到的攻击目的 Select * from 用户表 where 姓名=name and 密码=password Select * from 用户表 where 姓名=111and 密码=aaaa or 1=1 软件测试培训软件测试培训 我们都知道select语句在判断查询条件时,遇到或(or)操作就会忽略下面的与(and)操作,而在上面的语句中1=1的值永远
40、为true,这意味着无论在密码中输入什么值,均能通过上述的密码验证!这个问题的解决很简单,对用户输入的用户和密码进行合法性判断,不允许输入单引号、等号等特殊字符。 上述问题虽然看起来简单,但确实是存在的。例如在互联网上很有名气的网络游戏“笑傲江湖”的早期版本就存在着这样的问题,这也暴露出很多程序员在编程经验和安全意识上的不足。同时也提醒我们充分考虑程序的安全性,不可有半点马虎,一个看似很小的疏漏可能就会造成很严重的后果。 软件测试培训软件测试培训场景 法 现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的
41、思想也可以引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。 提出这种测试思想的是Rational 公司,并在RUP2000 中文版当中有其详尽的解释和应用。 用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。 软件测试培训软件测试培训 用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。 1基本流和备选流 如图所示,图中经过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是经过用例的最简单的路径。备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个
42、特定条件下执行,然后重新加入基本流中(如备选流1和3);也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4) 软件测试培训软件测试培训 软件测试培训软件测试培训 2ATM例子 (1)例子描述 图所示是ATM例子的流程示意图。 软件测试培训软件测试培训 客户 银行系统 ATM操作员 提款 转账 存款 系统启动 图 ATM流程示意图 软件测试培训软件测试培训 软件测试培训软件测试培训 (3)用例设计 对于这7个场景中的每一个场景都需要确定测试用例。可以采用矩阵或决策表来确定和管理测试用例。下面显示了一种通用格式,其中各行代表各个测试用例,而各列则代表测试用例
43、的信息。本示例中,对于每个测试用例,存在一个测试用例ID、条件(或说明)、测试用例中涉及的所有数据元素(作为输入或已经存在于数据库中)以及预期结果。 软件测试培训软件测试培训 软件测试培训软件测试培训 (4)数据设计 一旦确定了所有的测试用例,则应对这些用例进行复审和验证以确保其准确且适度,并取消多余或等效的测试用例。 测试用例一经认可,就可以确定实际数据值(在测试用例实施矩阵中)并且设定测试数据,如表所示 软件测试培训软件测试培训 软件测试培训软件测试培训数据 驱 动 测试(Data Driven) 概要概要 是一种成熟的自动化测试技术是一种成熟的自动化测试技术 强调测试逻辑与测试数据分离强
44、调测试逻辑与测试数据分离 对于手工测试也是很好的方法对于手工测试也是很好的方法 适用于需要用不同数据进行重复测试的适用于需要用不同数据进行重复测试的情形情形 通过测试数据调整测试覆盖率通过测试数据调整测试覆盖率 软件测试培训软件测试培训原理p 以参数代替测试步骤中原始数据以参数代替测试步骤中原始数据p 测试数据依参数保存在数据文件中测试数据依参数保存在数据文件中(Excel)p 测试步骤和测试数据相对分离测试步骤和测试数据相对分离p 执行时将测试数据按参数代入测试步骤执执行时将测试数据按参数代入测试步骤执行行 软件测试培训软件测试培训普通测试 在用户名输入框输入“张三” 在口令输入框输入“12
45、3456” 点击“登录”按钮 结果:进入论坛 数据驱动测试 在用户名输入框输入 在口令输入框输入 点击“登录”按钮 结果:用户名口令结果张三123456进入论坛张三234561提示密码错误,不能进入论坛举例 软件测试培训软件测试培训优点 大大简化了测试步骤大大简化了测试步骤 通过分离测试逻辑和测试数据,使设计测通过分离测试逻辑和测试数据,使设计测试逻辑和数据时分别关注于使用各自的设试逻辑和数据时分别关注于使用各自的设计方法计方法 有利于测试分工的细化有利于测试分工的细化 测试逻辑更加简洁易懂测试逻辑更加简洁易懂 很容易转化成自动测试脚本很容易转化成自动测试脚本 软件测试培训软件测试培训样例 一
46、个简单的转账业务:一个简单的转账业务:n用户输入信息:用户输入信息:转出账户的账号和密码、转入账号、金转出账户的账号和密码、转入账号、金额以及备注信息额以及备注信息n点击转账按钮进行转账点击转账按钮进行转账1.检查提示信息是否正确检查提示信息是否正确 软件测试培训软件测试培训Action:Simple Transfer DemoAuthor:YANGLINXIDate:2007.6.21Type:Normal TestingNo.Test Step1Enter 1000000001 in Source Acc Edit Box2Enter 123456 in Password Pass Box
47、3Enter 1000000002 in Target ACC Edit Box4Enter 1000 in Amount Edit Box5Enter some comments in Remark Edit Box6Click Transfer button7Transfer Success should be showed in Message MsgBox样例:普通测试用例 软件测试培训软件测试培训Action:Simple Transfer DemoAuthor:yanglinxiDate:2007.6.21Type:Data Driven TestingNo.TestStep1En
48、ter in Source Acc Edit Box2Enter in Password Pass Box3Enter in Target ACC Edit Box4Enter in “Amount” Edit Box5Enter some comments in Remark Edit Box6Click Transfer button7 should be showed in Message Box样例:数据 驱 动 测试用例.1 软件测试培训软件测试培训 DataNo.Source AccountPasswordTarget AccountAmountReturn Message1100
49、000000112345610000000021000Transfer Success2100011234561000000002100Invalid Source Account31000000001123456100002100Invalid Target Account4100000000110000000021000Password is blank5数据 驱 动 测试用例.2 软件测试培训软件测试培训思考题 QQ登录功能的数据驱动测试用例设计,规划其参数。 软件测试培训软件测试培训第三部分其他测试类型 软件测试培训软件测试培训功能测试 (functional testing) 对一个
50、应用软件的功能模块进行黑盒测试。这种测试应当由测试人员进行。但这并不意味着程序员在推出软件之前不进行代码检查。(这一原则适用于所有的测试阶段。) 包括逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试。 软件测试培训软件测试培训可用性测试 (usability testing) 是专为“对用户友好”的特性进行测试。这是一种主观的感觉,取决于最终用户或顾客。可以进行用户会见、检查、对用户会议录像、或者使用其他技术。程序员和测试人员通常不参加可用性测试。 软件测试培训软件测试培训安装/卸载测试 (install/uninstall testing) 对安装/卸载进行测试 (包括全部、部分、升
51、级操作)。 软件测试培训软件测试培训恢复测试 (recovery testing) 在系统崩溃、硬件故障、或者其他灾难发生之后,重新恢复系统的情况。 软件测试培训软件测试培训兼容性测试 (compatability testing) 测试在特殊的硬件/软件/操作系统/网络环境下的软件表现。 软件测试培训软件测试培训安全测试 (security testing) 测试系统在应付非授权的内部/外部访问、故意的损坏时的防护情况。这需要精密复杂的测试技术。 软件测试培训软件测试培训性能测试 (performance testing) 经常可以与“压力测试”或“负荷测试”相互代替。理想的“性能测试”(也包括其他任何类型的测试) 都应在质量保障和测试计划的文档终予以规定。 包括时间性能与空间性能 软件测试培训软件测试培训可靠性测试 (reliability testing) 也称为稳定性测试,是指连续运行被测系统,检查系统运行时的稳定程度。通常用MTBF(错误发生的平均时间间隔)来衡量系统的稳定性,MTBF越大,系统的稳定性越强。 稳定性测试的方法也很简单,采用24小时*7天的方式让系统不间断运行。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二年级乘除法口诀专项练习1000题
- 人教部编版四年级语文上册《快乐读书吧》精美课件
- 算法设计与分析 课件 8.3-分支限界 - 典型应用 - 0-1背包问题
- 2024年葫芦岛烟台客运上岗证考试题
- 2024年长沙客运驾驶员从业资格考试系统
- 2024年沈阳c1客运资格证模拟考试题
- 2024年合肥小车客运从业资格证考试
- 2024年河南2024年客运从业资格证模拟考试题库
- 吉首大学《高级语言程序设计A实验》2021-2022学年期末试卷
- 吉林艺术学院《数字娱乐导论》2021-2022学年第一学期期末试卷
- 国产军用飞机
- 小学数学-除数是整十数的口算除法教学设计学情分析教材分析课后反思
- 数据安全与隐私保护
- 矿山机电一体化与自动化技术
- 交通标志 交通标志的种类和设置原则
- 医院医学装备委员会第会议通知、纪要议程、总结
- 大体积混凝土养护方案(修改)
- 学习天体力学
- 中医妇科-崩漏
- 高职英语-考试试题及答案
- 鼻咽癌放化疗护理查房课件
评论
0/150
提交评论