软件测试的方法和技术

上传人:cel****460 文档编号:243766409 上传时间:2024-09-30 格式:PPTX 页数:155 大小:2.15MB
返回 下载 相关 举报
软件测试的方法和技术_第1页
第1页 / 共155页
软件测试的方法和技术_第2页
第2页 / 共155页
软件测试的方法和技术_第3页
第3页 / 共155页
点击查看更多>>
资源描述
软件测试培训,P,*,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,软件测试的方法和技术,第一局部白盒测试,第二局部黑盒测试,第三局部其他测试类型,第一局部,白盒测试,此方法把测试对象看做一个透明的盒子,它允许测试人员利用程序内部的逻辑构造及有关信息,设计或选择测试用例,对程序所有逻辑路径进展测试。,白盒测试也称为构造测试或逻辑驱动测试,前提是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进展,按照程序内部的构造测试程序,检验程序中的每条通路是否都能够按预定要求正确工作,而不管产品的功能,主要用于软件验证。,白盒测试方法又可分为静态测试和动态测试。静态测试是一种不通过执行程序而进展测试的技术,其关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。它瞄准的是纠正软件系统在描述、表示和规格上的错误,是任何进一步测试的前提。而动态测试需要软件的执行,当软件系统在模拟的或真实的环境中执行之前、之中和之后,对软件系统行为的分析是动态测试的主要特点。它显示了一个系统在检查状态下是正确还是不正确。,白盒测试的动态测试要根据程序的控制构造设计测试用例,其原那么是:,1保证一个模块中的所有独立路径至少被使用一次;,2对所有逻辑值均需测试true和false;,3在上下边界及可操作范围内运行所有循环;,4检查内部数据构造以确保其有效性。,对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。给出一个小程序的流程图,它包括了一个执行20次的循环。,包含的不同执行路径数达520条,对每一条路径进展测试需要1毫秒,假定一年工作365 24小时,要想把所有路径测试完,需3170年。,下面将介绍几种实用的白盒测试用例设计方法,包括程序插桩、逻辑覆盖、根本路径测试等。,程序插桩,在软件动态测试中,程序插桩是一种根本的测试手段,有着广泛的应用。,1方法简介,程序插桩方法是借助往被测程序中插入操作,来实现测试目的的方法。,如果我们想要了解一个程序在某次运行中所有可执行语句被覆盖的情况,或是每个语句的实际执行次数,最好的方法是利用插桩技术。这里仅以计算整数X和整数Y的最大公约数程序为例,说明插桩方法的要点。,图 插桩后求最大公约数程序的流程图,设计插桩程序时需要考虑的问题包括:, 探测哪些信息;, 在程序的什么部位设置探测点;, 需要设置多少个探测点。,2断言语句(Assert),在程序中特定部位插入某些用以判断变量特性的语句,使得程序执行中这些语句得以证实,从而使程序的运行特性得到证实。我们把插入的这些语句称为断言。这一做法是程序正确性证明的根本步骤,尽管算不上严格的证明,但方法本身仍然是很实用的。,思考题,计算两个数的最小公倍数。,逻辑覆盖,逻辑覆盖是以程序内部的逻辑构造为根底的设计测试用例的技术,是通过对程序逻辑构造的遍历实现程序的覆盖,它是一系列测试过程的总称,这组测试过程逐渐进展越来越完整的通路测试。这一方法要求测试人员对程序的逻辑构造有清楚的了解,甚至要能掌握源程序的所有细节。它属于动态测试。,从覆盖源程序语句的详细程度分析,逻辑覆盖标准有语句覆盖、判定覆盖、条件覆盖、条件判定组合覆盖、多条件覆盖和修正条件判定覆盖。,为便于理解,使用如下所示的程序及其流程图。,图 参考例子流程图,int function1bool a,bool b,bool c,int x;,x=0;,if(a&(b|c),x=1;,return x;,1语句覆盖,为了暴露程序中的错误,程序中的每条语句至少应该执行一次。所以,语句覆盖的含义是:选择足够多的测试数据,使被测程序中每条语句至少执行一次。,2判定覆盖,比语句覆盖稍强的覆盖标准是判定覆盖。按判定覆盖准那么进展测试是指,设计假设干测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断的真假值均曾被满足。判定覆盖又称为分支覆盖。,3条件覆盖,在设计程序中,一个判定语句是由多个条件组合而成的复合判定。,条件覆盖的含义是:构造一组测试用例,使得每一判定语句中每个逻辑条件的可能值至少满足一次。,4条件判定组合覆盖,条件判定组合覆盖的含义是:设计足够的测试用例,使得判定中每个条件的所有可能真/假至少出现一次,并且每个判定本身的判定结果真/假也至少出现一次。,5多条件覆盖,多条件覆盖也称为条件组合覆盖,它的含义是:设计足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。显然满足多条件覆盖的测试用例是一定满足判定覆盖、条件覆盖和条件判定组合覆盖的。,6修正条件判定覆盖,它要求满足两个条件:首先,每一个程序模块的入口和出口点都要考虑至少被调用一次,每个程序的判定到所有可能的结果值要至少转换一次;其次,程序的判定被分解为通过逻辑操作符and、or连接的bool条件,每个条件对于判定的结果值是独立的。,7测试覆盖准那么,1Foster的ESTCA覆盖准那么,前面所介绍的逻辑覆盖其出发点似乎是合理的。所谓“覆盖,就是想要做到全面而无遗漏。但是,事实说明,它并不能真的做到无遗漏。,K.A.Foster从测试工作实践的教训出发,吸收了计算机硬件的测试原理,提出了一种经历型的测试覆盖准那么。,2Woodward等人的层次LCSAJ覆盖准那么,Woodward等人曾经指出构造覆盖的一些准那么,如分支覆盖或路径覆盖,都缺乏以保证测试数据的有效性。为此,他们提出了一种层次LCSAJ覆盖准那么。,根本路径测试,上节的例子是个比较简单的程序段,只有两条路径。但在实际问题中,即使一个不太复杂的程序,其路径的组合都是一个庞大的数字。,如果把覆盖的路径数压缩到一定限度内,例如,程序中的循环体只执行零次和一次,就成为根本路径测试。,设计出的测试用例要保证在测试中程序的每一条可执行语句至少执行一次。,1程序的控制流图,控制流图是描述程序控制流的一种图示方式。其中根本的控制构造对应的图形符号如下图。在图所示的图形符号中,圆圈称为控制流图的一个结点,它表示一个或多个无分支的语句或源程序语句。,图 控制流图的图形符号,图 程序流程图和对应的控制流图,图a所示的是一个程序的流程图,它可以映射成图b所示的控制流图。,2计算程序环路复杂性,进展程序的根本路径测试时,程序的环路复杂性给出了程序根本路径集合中的独立路径条数,这是确保程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。,所谓独立路径,是指包括假设干未曾处理的语句或条件的一条路径,根本路径集不是惟一的,对于给定的控制流图,可以得到不同的根本路径集。,通常环路复杂性可用以下3种方法求得。, 将环路复杂性定义为控制流图中的区域数。, 设E为控制流图的边数,N为图的结点数,那么定义环路的复杂性为V(G)=EN+2。, 假设设P为控制流图中的判定结点数,那么有V(G)=P+1。,3根本路径测试法步骤,根本路径测试法适用于模块的详细设计及源程序,其主要步骤如下。, 以详细设计或源代码作为根底,导出程序的控制流图。, 计算得到的控制流图G的环路复杂性VG。, 确定线性无关的路径的根本集。, 生成测试用例,确保根本路径集中每条路径的执行。,思考题,计算两个数的最小公倍数的程序的根底上,画出流程图,并计算VG。,#include int main()int a,b;scanf(%d %d,/输出最小公倍数,程序的静态测试,1源程序静态分析,在静态构造分析中,测试者通过使用测试工具分析程序源代码的系统构造、数据构造、数据接口、内部控制逻辑等内部构造,生成函数调用关系图、模块控制流图、内部文件调用关系图、子程序表、宏和函数参数表等各类图形图表,可以清晰地标识整个软件系统的组成构造,使其便于阅读与理解,然后可以通过分析这些图表,检查软件有没有存在缺陷或错误。,通常采用以下一些方法进展源程序的静态分析。,1生成各种引用表, 标号穿插引用表, 变量穿插引用表, 子程序宏、函数引用表, 等价表, 常数表,2错误静态分析,错误静态分析主要用于确定在源程序中是否有某类错误或“危险构造。, 类型和单位分析, 引用分析, 表达式分析, 接口分析,2人工测试,静态分析中进展人工测试的主要方法有桌前检查、代码审查和走查。经历说明,使用这种方法能够有效地发现30%70%的逻辑设计和编码错误。,1桌前检查,由程序员自己检查自己编写的程序。程序员在程序通过编译之后,进展单元测试设计之前,对源程序代码进展分析、检验,并补充相关的文档,目的是发现程序中的错误。,2代码审查,代码审查是由假设干程序员和测试员组成一个审查小组,通过阅读、讨论和争议,对程序进展静态分析的过程。,代码审查分两步。第一步,小组负责人提前把设计规格说明书、控制流程图、程序文本及有关要求、标准等分发给小组成员,作为审查的依据。小组成员在充分阅读这些材料后,进入审查的第二步,召开程序审查会。,3走查,走查与代码审查根本一样,其过程分为两步。第一步也把材料先发给走查小组每个成员,让他们认真研究程序,然后再开会。开会的程序与代码审查不同,不是简单地读程序和对照错误检查表进展检查,而是让与会者“充当计算机,即首先由测试组成员为被测程序准备一批有代表性的测试用例,提交给走查小组。走查小组开会,集体扮演计算机角色,让测试用例沿程序的逻辑运行一遍,随时记录程序的踪迹,供分析和讨论用。,其他白盒测试方法简介,1域测试,域测试是一种基于程序构造的测试方法。,域测试正是在分析输入域的根底上,选择适当的测试点以后进展测试的。,2符号测试,符号测试的根本思想是允许程序的输入不仅仅是具体的数值数据,而且包括符号值,这一方法也因此而得名。,3Z路径覆盖,分析程序中的路径是指检验程序从入口开场,执行过程中经历的各个语句,直到出口。,4程序变异,程序变异方法是一种错误驱动测试。所谓错误驱动测试方法,是指该方法是针对某类特定程序错误的。经过多年的测试理论研究和软件测试的实践,人们逐渐发现要想找出程序中所有的错误几乎是不可能的。比较现实的解决方法是将错误的搜索范围尽可能地缩小,以利于专门测试某类错误是否存在。,错误驱动测试主要有两种,即程序强变异和程序弱变异。,最后,归纳一下白盒测试中各种测试方法的应用策略。,在白盒测试中,可以使用各种测试方法的综合策略如下。,1在测试中,应尽量先使用工具进展静态构造分析。,2测试中可采取先静态后动态的组合方式:先进展静态构造分析、代码检查,再进展覆盖率测试。,3利用静态分析的结果作为导引,通过代码检查和动态测试的方式对静态发现结果进展进一步确实认,使测试工作更为有效。,4覆盖率测试是白盒测试的重点,一般可使用根本路径测试法到达语句覆盖标准;对于软件的重点模块,应使用多种覆盖率标准衡量代码的覆盖率。,5在不同的测试节点,测试的侧重点不同:在单元测试阶段,以代码检查、逻辑覆盖为主;在集成测试阶段,需要增加静态构造分析等;在系统测试阶段,应根据黑盒测试的结果,采取相应的白盒测试。,第二局部,黑盒测试,这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑构造和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。,黑盒测试又叫做功能测试或数据驱动测试。,黑盒测试方法是在程序接口上进展测试,主要是为了发现以下错误:,是否有不正确或遗漏了的功能?,在接口上,输入能否正确地承受? 能否输出正确的结果?,是否有数据构造错误或外部信息(例如数据文件)访问错误?,性能上是否能够满足要求?,是否有初始化或终止性错误?,用黑盒测试发现程序中的错误,必须在,所有可能的输入条件和输出条件,中确定测试数据,来检查程序是否都能产生正确的输出。,但这是,不可能,的。,假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。假设X、Y取整数,按黑盒方法进展穷举测试:,可能采用的,测试数据组:,232232,264,如果测试一,组数据需要1毫秒,一年工作365 24小时,完成所有测试需5亿年。,黑盒测试方法主要有,等价类划分,、,边界值分析,、,因果图,、,错误推测,、,功能图法,等,主要用于软件确认测试。,等价类划分法,等价类划分是一种典型的黑盒测试方法。使用这一方法时,完全不考虑程序的内部构造,只依据程序的规格说明来设计测试用例。由于不可能用所有可以输入的数据来测试程序,而只能从全部可供输入的数据中选择一个自己进展测试。如何选择适当的子集,使其尽可能多地发现错误,解决的方法之一就是等价类划分。,等价类划分方法把所有可能的输入数据,即程序的输入划分成假设干类,然后从每一类中选取少数有代表性的数据做为测试用例/数据。,等价类是某个输入的子集合。,在该子集合中,各个输入数据对于揭露程序中的BUG都是等效的。,测试某等价类的代表值就等价于对这一类其它值的测试。,等价类的划分有两种不同的情况: 有效等价类:代表对程序的有效输入。, 无效等价类:代表的那么是其他任何可能的输入即不合理的,无意义的输入值。,使用等价类设计测试用例要经历划分等价类列出等价类表和选取测试用例/数据两步。,(1)如果输入条件规定了取值范围,或值的个数,那么可以确立一个有效等价类和两个无效等价类。,例如:在ATM机取款时,只供给100元面值的纸钞,最少取100元,一次最多取2000元.,有效等价类是“100=取款额=2000,无效等价类是“取款额100,无效等价类是“取款额2000。,(2) 如果输入条件规定了输入值的集合或者规定了“必须如何的条件的情况下,可以确立一个有效等价类和一个无效等价类。,例如:在提款机主界面,系统只承受查询、取款和取消按钮,并分别进入对应的功能。那么可以划分为,三个有效等价类:查询、取款、取消 。,一个无效等价类:其它按钮。,(3) 如果输入条件是一个布尔量,那么可以确定一个有效等价类和一个无效等价类。,例如:安装程序时,询问客户是否承受“软件许可协议。,一个有效等价类是,一个无效等价类否,(4) 在规定了输入数据的一组值假定n个,并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。,例如:在注册信息界面,要求登录名必须是“汉字,字母,数字,不能包含特殊符号,n个有效等价类:汉字、字母、数字或者三者组合 。,一个无效等价类:特殊符号。,(5) 在规定了输入数据必须遵守的规那么情况下,可确立一个有效等价类(符合规那么)和假设干个无效等价类(从不同角度违反规那么)。,例如,用户名由字符和数字组成,必须以字符开头,不能包括特殊字符或空格,不能为空,长度介于位之间。,那么可以确立一个有效等价类符合规那么,假设干个无效等价类:以数字开头;包括空格;包括特殊字符;为空;小于位,根据等价类划分选取用例/数据,根据上述原那么,列出所有的有效等价类和无效等价类,设计一个新的测试用例,使其尽可能多地覆盖那些尚未被涵盖的有效等价类,重复这一步,直到所列出的所有有效等价类都被覆盖为止,设计一个新的测试用例,使其覆盖一个且仅一个尚未被涵盖的无效等价类,重复这一步,直到所列出的所有无效等价类都被覆盖为止。,输入条件,有效等价类,无效等价类,密码字符数,(1),4-12,(2),12,密码组成,(4),字母数字,(5),字母、,(6),数字、,(7),用户号、,(8),其他字符,第一个字符,(9),字母,(10),数字、,(11),其他字符,在证券柜台系统中规定:“用户密码是由字母开头,后跟字母或数字的任意组合构成。最少字符数为4个,最大字符数为12个。,并且规定:“用户密码不能与用户注册号一样,且不能全为字母。,用等价类划分方法,建立输入等价类表:,某工厂公开招工,在报名系统年龄输入框中规定报名者年龄应在1967年02月1986年03月之间。即出生年月不在上述范围内,将拒绝承受,并显示“年龄不合格等出错信息。,输入,数据,有效等价类,无效等价类,出生年月,6位数字字符,有非数字字符,少于6个数字符,多于6个数字符,对应数值,在196702198603之间,198603,月份对应数值,在112之间,等于“0”,12,根据下面给出的规格说明,利用等价类划分的方法,给出足够的测试用例。,“一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,说明这个三角形是不等边的、是等腰的、还是等边的。,我们可以设三角形的3条边分别为A,B,C。如果它们能够构成三角形的3条边,必须满足:,A0,B0,C0,且A+BC,B+CA,A+CB。,如果是等腰的,还要判断A=B,或B=C,或A=C。,如果是等边的,那么需判断是否A=B,且B=C,且A=C。,输入条件,有效等价类,无效等价类,是否,三边都大于0,(A0) and (B0)and (C0) (1),(A0), (2),(B0), (3),(C0), (4),是否,两边之和大,于第三边,(A+BC)and(B+CA)and(A+CB) (5),(A+BC), (6),(B+CA), (7),(A+CB), (8),是否,等腰三角形,(A=B), (9),(B=C), (10),(C=A), (11),(AB)and (12),(BC)and,(CA),是否,等边三角形,(A=B)and(B=C)and(C=A) (13),(AB), (14),(BC), (15),(CA), (16),序号,【A,B,C】,覆盖等价类,输出,1,【3,4,5】,(1),(5),一般三角形,2,【0,1,2】,(2),不能构成三角形,3,【1,0,2】,(3),4,【1,2,0】,(4),5,【1,2,3】,(1),(6),6,【1,3,2】,(1),(7),7,【3,1,2】,(1),(8),8,【3,3,4】,(1),(5),(9),等腰三角形,9,【3,4,4】,(1),(5),(10),10,【3,4,3】,(1),(5),(11),11,【3,4,5】,(1),(5),(12),非等腰三角形,12,【3,3,3】,(1),(5),(13),是等边三角形,13,【3,4,4】,(1),(5),(10),(14),非等边三角形,14,【3,4,3】,(1),(5),(11),(15),15,【3,3,4】,(1),(5),(9), (16),思考题-设计出测试用例,保险费率计算,人 人 保 险 公 司 承 担 人 寿 保 险 已 有 多 年 历 史 , 该 公 司 保 费 计 算 方 式 为 投 保 额 保 险 率 , 保 险 率 又 依 点 数 不 同 而 有 别 , 10 点 以 上 费 率 为 0.6 % , 10 点 以 下 费 率 为 0.1 % :,思考题,输入数据说明。,边界值分析法,人们从长期的测试工作经历得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。,使用边界值分析方法设计测试用例,首先应确定边界情况。,边界值分析也是一种黑盒测试方法,是,对等价类划分方法的补充。,所谓边界值,,是指输入和输出等价类中那些恰好处于边界、或超过边界、或在边界以下的状态。,选择测试用例的原那么如下。,1、 如果输入条件规定了值的范围,那么应该取刚到达这个范围的边界值,以及刚刚超过这个范围边界的值作为测试输入数据。,2、 如果输入条件规定了值的个数,那么用最大个数、最小个数、比最大个数多1个、比最小个数少1 个的数作为测试数据。,3、 如果程序的规格说明给出的输入域或输出域是有序集合如有序表、顺序文件等,那么应选取集合的第一个和最后一个元素作为测试用例。,4、如果程序用了一个内部构造,应该选取这个内部数据构造的边界值作为测试用例。,5、分析规格说明,找出其他可能的边界条件。,使用边界值分析方法设计测试用例,首先应确定边界情况。应中选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据,依据边界值分析法确定测试用例,Id 110个字母,地址 010个汉字,6个数字,如果输入条件规定了一个输入值范围,那么应针对范围的边界值设计测试用例。,假设输入值的有效范围是-1.0至+1.0,那么应针对-1.0、1.0、-1.001和1.001的情况设计测试用例,不要忘了0这个数值。,如果输入条件规定了输入值的数量,,那么应针对最小数量输入值、最大数量输入值,以及比最小数量少一个、比最大数量多一个的情况设计测试用例。,例如某个输入文件可容纳1-255条记录,那么应根据0,1,255和256条记录的情况设计测试用例。,思考题-设计出测试用例,找零钱最正确组合,假 设 商 店 货 品 价 格 (R) 皆 不 大 於 100 元 且 为 整 数 , 假设 顾 客 付 款 在 100 元 内 (P) , 求 找 给 顾 客 之 最 少 货币 个张 数 ? 货 币 面 值 50 元 (N50) , 10 元 (N10) , 5 元 (N5) , 1 元 (N1) 四 种 ,因果图法,使用前提:,如果在测试时必须考虑输入条件的各种组合,就可使用因果图来设计测试用例。它适合于描述“对于多种条件的组合,会相应产生多个动作的情况。,因果图方法最终生成的就是判定表。它适合于检查程序输入条件的各种组合情况。,生成根本步骤:,(1)将软件规格说明用例分解成可执行,的片断。,(2)确定软件规格说明用例中的因果关系。,(3)分析软件规格说明用例的语义内容,并将其转换为连接因果图关系的布尔图。,生成根本步骤:,(4) 给图加上注解符号,说明由于语法或者环境的限制而不能联系起来的“因和“果。,(5) 通过仔细的跟踪图中的状态变化情况,将因果图转换为一个有限项的判定式。,(6) 将判定式表中的列转换为测试用例,在因果图中出现的根本符号通常在因果图中用Ci表示原因,用Ei表示结果,各结点表示状态,可取值“0或“1。“0表示某状态不出现,“1表示某状态出现。,假设a1,那么b1,假设a1,那么b0,假设a或b或c1,那么d1,假设ab1,那么c1,互斥:表示不同时为1,即a,b中至多只有一个1。,为了表示原因与原因之间,结果与结果之间可能存在的约束条件,在因果图中可以附加一些表示约束条件的符号。,包含:,a、b、c中至少有一个应为1,a、b、c不能同时为0,唯一:表示a、b中必须有一个且仅有一个为1,要求:如果a=1,b也必须为1,即不可能a=1且b=0.,对于输出条件的约束只有M约束。,屏蔽:如果结果a为1,那么b强制为0,例如,有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:,假设投入5角钱的硬币,按下橙汁或啤酒的按钮,那么相应的饮料就送出来假设投入元钱的硬币,同样也是按下橙汁或者啤酒的按钮,那么自动售货机在送出相应饮料的同时退还5角硬币,(1)分析这一段说明,列出原因和结果:,1. 投入1元硬币,2. 投入5角硬币,3. 押下橙汁按钮,4. 押下啤酒按钮,(3)结果:,21. 退还5角硬币,22. 送出橙汁饮料,23. 送出啤酒饮料,(4) 画出因果图。所有原因结点列在左边,所有结果结点列在右边。,(5) 由于 1 与 2 ,3 与 4 不能同时发生,分别加上约束条件E。,(6)转换成因果图判定表。,已投币,已按钮,判定表又称为决策表。,当模块中包含,复杂的条件组合,,并要根据这些条件,选择动作,时,使用判定表能清晰地表示出复杂的条件组合与各种动作之间的对应关系。,条件桩,条件项,(条件的组合),动作桩,动作项,一张判定表的田字型构造:条件桩、条件项、动作项、动作桩规那么。,决策表的读表方法:顺时针方向。,条件桩:列出了问题的所有条件。通常认为列出,的条件的次序无关紧要。,动作桩:列出了问题规定可能采取的操作。这些,操作的排列顺序没有约束。,条件项:列出针对它所列条件的取值,在所有可,能情况下的真假值。,动作项:列出在条件项的各种取值情况下应该采,取的动作。,判定表的绘制步骤:,判定表中列出多少组条件取值,也就有多少条规那么,条件项和动作项就有多少列。,确定规那么的个数。假设有n个条件,每个条件有两面个取值(0,1),故有2n种规那么。,列出所有的条件桩和动作桩,填入条件项,填入动作项。制定判定表,简化。合并相似规那么或者一样动作。,举例,问题说明:“某货运站收费标准如下:如果收件地点在本省,那么快件每公斤5元,慢件每公斤3元;如果收件地点在外省,那么在20公斤以内含20公斤快件每公斤7元,慢件每公斤5元,而超过20公斤时,快件每公斤9元,慢件每公斤7元。,条件,取值,含义,收件地址在本省?,Y,是,N,否,邮件重量,20,公斤?,Y,是,N,否,快慢件?,Y,快件,N,慢件,条件取值分析表,1,2,3,4,5,6,7,8,条件桩,收件地址在本省?,Y,Y,Y,Y,N,N,N,N,条件项,邮件重量,20,公斤?,Y,Y,N,N,Y,Y,N,N,快慢件?,Y,N,Y,N,Y,N,Y,N,动作桩,3元,/,公斤,X,X,动作项,5元,/,公斤,X,X,X,7元,/,公斤,X,X,9元,/,公斤,X,判定表,Y,Y,N,N,Y,N,*,*,Y,N,-,*,简化判定表,1,2,3,4,5,6,条件桩,收件地址在本省?,Y,Y,N,N,N,N,条件项,邮件重量,在口令输入框输入,点击“登录按钮,结果:,用户名,口令,结果,张三,123456,进入论坛,张三,234561,提示密码错误,不能进入论坛,举例,优点,大大简化了测试步骤,通过别离测试逻辑和测试数据,使设计测试逻辑和数据时分别关注于使用各自的设计方法,有利于测试分工的细化,测试逻辑更加简洁易懂,很容易转化成自动测试脚本,样例,一个简单的转账业务:,用户输入信息:转出账户的账号和密码、转入账号、金额以及备注信息,点击转账按钮进展转账,检查提示信息是否正确,Action:,Simple Transfer Demo,Author:,YANGLINXI,Date:,2007.6.21,Type:,Normal Testing,No.,Test Step,1,Enter 1000000001 in Source Acc Edit Box,2,Enter 123456 in Password Pass Box,3,Enter 1000000002 in Target ACC Edit Box,4,Enter 1000 in Amount Edit Box,5,Enter some comments in Remark Edit Box,6,Click Transfer button,7,Transfer Success should be showed in Message MsgBox,样例:普通测试用例,Action:,Simple Transfer Demo,Author:,yanglinxi,Date:,2007.6.21,Type:,Data Driven Testing,No.,TestStep,1,Enter in Source Acc Edit Box,2,Enter in Password Pass Box,3,Enter in Target ACC Edit Box,4,Enter in “Amount” Edit Box,5,Enter some comments in Remark Edit Box,6,Click Transfer button,7, should be showed in Message Box,Data,No.,Source Account,Password,Target Account,Amount,Return Message,1,1000000001,123456,1000000002,1000,Transfer Success,2,10001,123456,1000000002,100,Invalid Source Account,3,1000000001,123456,100002,100,Invalid Target Account,4,1000000001,1000000002,1000,Password is blank,5,思考题,QQ登录功能的数据驱动测试用例设计,规划其参数。,第三局部,其他测试类型,功能测试 (functional testing),对一个应用软件的功能模块进展黑盒测试。这种测试应当由测试人员进展。但这并不意味着程序员在推出软件之前不进展代码检查。(这一原那么适用于所有的测试阶段。),包括逻辑功能测试、界面测试、易用性测试、安装测试、兼容性测试。,可用性测试 (usability testing),是专为“对用户友好的特性进展测试。这是一种主观的感觉,取决于最终用户或顾客。可以进展用户会见、检查、对用户会议录像、或者使用其他技术。程序员和测试人员通常不参加可用性测试。,安装/卸载测试 (install/uninstall testing),对安装/卸载进展测试 (包括全部、局部、升级操作)。,恢复测试 (recovery testing),在系统崩溃、硬件故障、或者其他灾难发生之后,重新恢复系统的情况。,兼容性测试 (compatability testing),测试在特殊的硬件/软件/操作系统/网络环境下的软件表现。,平安测试 (security testing),测试系统在应付非授权的内部/外部访问、成心的损坏时的防护情况。这需要精细复杂的测试技术。,性能测试 (performance testing),经常可以与“压力测试或“负荷测试相互代替。理想的“性能测试(也包括其他任何类型的测试) 都应在质量保障和测试方案的文档终予以规定。,包括时间性能与空间性能,可靠性测试 (reliability testing),也称为稳定性测试,是指连续运行被测系统,检查系统运行时的稳定程度。通常用MTBF错误发生的平均时间间隔来衡量系统的稳定性,MTBF越大,系统的稳定性越强。,稳定性测试的方法也很简单,采用24小时*7天的方式让系统不连续运行。,负荷试验 (load testing),在大负荷条件下对应用软件进展测试。例如测试一个网站在不同负荷情况下的状况,以确定在什么情况下系统响应速度下降或是出现故障。,压力测试 (stress testing),经常可以与“负荷测试或“性能测试相互代替。这种测试是用来检查系统在以下条件下的情况:在非正常的巨大负荷下、某些动作和输入大量重复、输入大数、对数据库进展非常复杂的查询,等等。,回归测试 (regression testing),每当软件经过了整理、修改、或者其环境发生变化,都重复进展测试。很难说需要进展多少次回归测试,特别是是到了开发周期的最后阶段。进展此种测试,特别适于使用自动测试工具。,健全测试 (sanity testing),也称为冒烟测试,是一种典型的初始测试。判断一个新的软件版本的运行是否正常,是否值得对它作进一步的测试。例如,如果一个新的软件每 5 分钟就破坏系统、大大降低系统的运行速度、或者破坏数据库,那么这样的软件就算不上是“健全的,不值得在目前状态下进展进一步的测试。,健全测试通常与回归测试结合使用,当软件出现一个新版本时,首先进展健全测试,如果通过,再进展回归测试。,随机测试 (random testing),指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性错误。,也有人将随机测试称为猴子测试。,随机测试有很多缺点:例如测试不系统,无法统计代码覆盖率和需求覆盖率,很难回归测试等。,在实际工程中,一般先进展正规测试,在时间允许的情况下,进展随机测试辅助。, 测试 (alpha testing),测试是指软件开发公司组织内部人员模拟各类用户行对即将面市软件产品称为版本进展测试,试图发现错误并修正。测试的关键在于尽可能逼真地模拟实际运行环境和用户对软件产品的操作并尽最大努力涵盖所有可能的 用户操作方式。, 测试 (beta testing),测试是由软件的多个用户在实际使用环境下进展的测试,这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,测试是在开发者无法控制的环境下进展的软件现场应用。在测试中,由用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。测试着重于产品的支持性,包括文档,客户培训和支持产品生产能力。,确认测试Validation Testing,确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。,对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的根底。,进展有效性测试黑盒测试,有效性测试是在模拟的环境 (可能就是开发的环境) 下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。,首先制定测试方案,规定要做测试的种类。还需要制定一组测试步骤,描述具体的测试用例。,通过实施预定的测试方案和测试步骤,确定,软件的特性是否与需求相符;,所有的文档都是正确且便于使用;,同时,对其它软件需求,例如可移植性、兼容性、出错自动恢复、可维护性等,也都要进展测试,在全部软件测试的测试用例运行完后,所有的测试结果可以分为两类:,测试结果与预期的结果相符。这说明软件的这局部功能或性能特征与需求规格说明书相符合,从而这局部程序被承受。,测试结果与预期的结果不符。这说明软件的这局部功能或性能特征与需求规格说明不一致,因此要为它提交一份问题报告。,软件配置复查,软件配置复查的目的是保证,软件配置的所有成分都齐全;,各方面的质量都符合要求;,具有维护阶段所必需的细节;,而且已经编排好分类的目录。,应当严格遵守用户手册和操作手册中规定的使用步骤,以便检查这些文档资料的完整性和正确性。,思考题,熟悉每种的测试术语及其所测试的内容。,谢谢!,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 压缩资料 > 药学课件


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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