Ⅰ 测试用例设计方法有哪些
1、等价类划分
为每个输入划分等价类,得到等价类表,为每个等价类规定一个唯一编号。设计一个测试用例,使其尽可能多的覆盖所有尚未覆盖的有效等价类。重复这一步骤,使得有效等价类均被测试用例所覆盖设计一个测试用例,使其只覆盖一个无效等价类。重复这一步骤使得所有无效等价类均被覆盖。
2、边界值分析
从测试规格中分析得到输入参数类型,对于输入等价类划分方法进行等价类的划分,运用域测试分析方法确定域范围的边界(上点、离点与内点)。如果存在多个输入域,则需要运用因果图、判定表方法这些输入域边界值的组合情况进行进一步分析,选择这些上点、离点与内点或者这些点的组合形成测试项。
3、判定表
判定表是分析和表达多种输入条件下系统执行不同动作的工具,它可以把复杂的逻辑关系和多种条件组合的情况表达得既具体又明确。
列出所有的条件桩和动作桩,填入条件桩、条件项和动作桩、动作项,化简,合并相似规则,将每条规则转化为用例。
基本格式
1、用例编号
测试用例的编号有一定的规则,比如系统测试用例的编号这样定义规则:PROJECT1-ST-001,命名规则是项目名称+测试阶段类型(系统测试阶段)+编号。定义测试用例编号,便于查找测试用例,便于测试用例的跟踪。
2、测试标题
对测试用例的描述,测试用例标题应该清楚表达测试用例的用途。比如“测试用户登录时输入错误密码时,软件的响应情况”。
3、重要级别
定义测试用例的优先级别,可以笼统的分为四个不同的等级。
4、输入限制
提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
5、操作步骤
提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
6、预期结果
提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过;反之则测试通过。
Ⅱ 请详细阐述决策的方法有哪些,具体内容是什么
(1)头脑风暴法:也称为思维共振法、专家意见法,即通过有关专家之间的信息交流,引起思维共振,产生组合效应,从而导致创造性思维。头脑风暴法一般分三个阶段进行。
(2)特尔菲法:这种方法以匿名的方式,通过几轮函询来征求专家的意见,组织预测小组对每一轮的意见进行汇总整理后作为参考再发给各位专家,供他们分析判断,以提出新的论证。几轮反复后,专家意见趋于一致,最后供决策者进行决策。此法的具体步骤是:①确定预测题目;②选择专家;③制定调查表;④预测过程;⑤作出预测结论。 此种方法的特点是:①匿名性;②多轮反馈;③统计性。
(3)哥顿法:这种方法与头脑风暴法原理相似,先由会议主持人把决策问题向会议成员作笼统的介绍,然后由会议成员(即专家成员)海阔天空地讨论解决方案;当会议进行到适当时机时,决策者将决策的具体问题展示给小组成员,使小组成员的讨论进一步深化,最后由决策者吸收讨论结果,进行决策。
(4)其他定性决策方法:主要有淘汰法、环比法、归类法。
Ⅲ 核心阶段1:软件测试设计(软件测试核心之用例设计)
测试设计是将概括的测试目枝罩卖标转化为具体的测试条件和测试用例的一系列活动。
①评审测试依据(需求,系统架构、设计和接口说明)。
②评估测试依据和测试对象的可靠性。
③通过对测试项、规格说明、测试对象行为和结构的分析,识别测试条件并确定优先级。
④设计测试用例,并确定优先级
⑤确定测试条件和测试用例所需要的必要的测试数据。
①依据在测试策略或测试计划中确定的测试技术。
②通过对测试依据和测试目标的分析,可以确定需要测试的内容,获得测试条件。
测试用例是通过使用在测试计划中确定的测试技术,对于已确定的测试条件进行逐步推敲,精炼而设计出来的重点说明如何具体操作产生何种结果的文档。(指引我们测试的文档)
测试用例应该具有可重复性、可验证性和需求可追踪性。
①前提条件,如项目或局部测试环境的需求,及其交付计划。
②测试步骤。
③测试数据。
④预期结果。
①测试两个参数的值相加后的结果是否正确
②期中:输入的数值在-99到99之间,大于99或小于-99的输入应该被拒绝,并显示错误信息。
根据测试需求,我们开始测试:
①分别给第一个参数和第二个参数输入表中的值,得到的测试加过如表所示:
②如果我们对第一个参数的值分别取从-99到99的199个数,第二个参数的值分别取从-99到99的199个数,我们不可能对两位数相加的所有情况进行穷举测试。
③如果不能进行穷举测试,我们将面临以下的问题:
在测试了1+1,1+2,1+(-1)和1+(-2)之后,还是否有必要测试1+3,1+4呢?
如果不对加法计算器程序进行穷举测试,是否放心的认为所有的参数组合都是正确的呢?
对于以上两个问题,我们可以采用等价类划分法来进行解决。
①等价类划分的办法就是把程序的输入域划分成若干部分。
②从每个部分中选取少数代表性数据当做测试用例。
③每一猛逗类的代表性数据在测试中的作用等价于这一类中的其他值。
④也就是说,如果某一类中的一个例子发现了错误,这一等价类中的其他例子也能发现同样的错误。
⑤繁殖,如果某一类中的例子没有发现错误,则这一等价类中的其他例子也不会发现错误。
①如果输入条件规定了取值范围或值的个数,则可确定一个有效等价类和两个无效等价类。
②如果一个输入条件说明了一个“必须成立”的情况,则可划分一个有效等价类和一个无效等价类。
③如果输入条件规定了输入数据的一组可能的值,而且程序使用不同的方式处理每一种值,则可为每一种值划分一个有效等价类,并划分一个无效等价类。
④如果我们确定,已划分的某等价类中的各元素(例子)在程序中的处理方式是不同的,则应据此将此等价类进一步划分成更小的等价类。
⑤在确定了等价类之后,建立等价类表,列出所有划分出的等价类。
①明确测试对象,非测试对象保证正确。
②为每个等价类规定一个唯一的编号。
③设计一个测试用例,使其尽可能多的覆盖尚未覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖。
④设计一个新的测试用例,使其只覆盖一个无效等价闷坦类。重复这一步使所有的无效等价类均被覆盖。
例子是前面的加法计算机
①一个有效数据等价类,两个无效数据等价类。
有效数据等价类就是:由那些对程序的规格说明有意义的、合理的输入数据所构成的集合。
无效数据等价类就是:那些对程序的规格说明不合理的或无意义的输入数据所构成的集合。
在实际工作中,我们通常在确立了等价类以后,把程序中所有的等价类建立等价类表,一遍在编写测试用例的时候有所依据。
①为等价类表中的每一个等价类分配一个唯一的编号。
②设计一个新的测试用例,使他能够尽量覆盖尚未未覆盖的有效等价类。
③重复这一步骤,从而使所有有效等价类均被测试用例所覆盖。
④与上述类似,设计一个新的测试用例,使它只覆盖一个无效等价类。
⑤重复这一步骤,从而使所有无效等价类均被测试用例所覆盖。
①在测试“-99≤数值99”的这个等价类区间的时候,我们会发现如10+40,-20+30和-30+(-30)这类的正数相加,正数负数相加,负数相加也是不同的等价区间。因此我们可以使用更多的等价类划分。
②根据以上等价类划分的加过,得出下表的等价类表:
根据上面划分的4个等价类,我们至少需要有5个测试用例:
①测试相同的内容。
②如果等价类中的一个测试能够获取一个缺陷,那么选择该等价类中的其他测试也能获取该缺陷。
③如果等价类中的一个测试不能获取缺陷,那么选择该等价类中的其他测试也不能获取缺陷。
④如果正确的花粉都能加了,可以大大降低测试用例的数量,测试会准确有效。
⑤如果错误的将两个不同的等价类当作一个等价类,那就会遗漏一种测试情况。
⑥相反的,把同一个等价类看作了两个不同的等价类,那么测试就会是冗余的。
①不但要考虑有效等价类,也要考虑无效等价类。
②仔细划分,审查划分。
③过于粗略可能会漏掉软件缺陷。
⑤组织评审。
①余额宝体现到银行卡增加新规则:快速到账(2小时)日限额1W元。
②超过1W元只能选择普通到账。
③按照等价类划分方法设计测试用例。
①设计用例:
②细致分析需求,日限额1W,所以要区分两个场景:
边界值分析法是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类便捷的测试用例。
实践证明,在设计测试用例时,对边界附近的处理必给予足够的重视,为检验便捷附近的处理专门设计测试用例,常常去的良好的测试效果。
边界值分析法不仅重视输入条件边界,而且也从输出域导出测试用例。
如果输入条件规定了取值范围,应以该范围的边界内及刚刚超范围的边界外的值作为测试用例。
eg1:以a和b为边界,测试用例应当包含a和b以及略大于a和略小于b的值。
eg2:根据以上计算器的例子,根据边界值分析的方法来看看如何对边界值进行测试:
由于允许输入的额数值在-99到99之间,所以我们可以把-99和99看做两个边界值。我们测试的时候可以去临近边界值的数值和边界值本身作为输入:
eg3:余额宝体现到一囊卡增加新规则:快速到账(2小时)日限额1W元:
等价类划分法和边界值分析方法都是着重考虑输入条件而不考虑输入条件的个各种组合、输入条件之间的相互制约关系。
如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字;因此必须考虑采用一种适合于描述多种条件的组合、产生多个相应动作的测试方法,这就需要利用因果图(逻辑模型)。
因果图法基于这样的思想:一些程序的功能可以用决策表的形式来表示,并根据输入条件的组合情况规定相应的操作;因此,可以考虑为决策表中的每一列设计一个测试用例,以便测试程序早输入条件的某种组合下的输出是否正确。
概括的说,因果图方法就是从程序规格说明书的描述中找出因(输入条件)和果(输出结果或程序状态的改变)。将因果图转换为判定表,为决策表中的每一列设计一个测试用例。这种方法考虑到了输入情况的各种组合以及各个输入情况之间的相互制约关系。
判定表(Decision Table)是分析和表达多逻辑条件下执行不同操作的工具。是编写程序的辅助工具,可以把复杂的逻辑关系和多种条件组合的情况表达得及具体又明确。
判定表通常由四个部分组成:
①条件桩(Condition Stub):列出了问题的所有条件,通常认为列出的条件的次序无关紧要。
②动作桩(Action Stub):列出了问题规定可能采取的操作,这些操作的排列顺序没有约束。
③条件项(Confition Entry):列出针对它左列条件的取值,在所有可能情况下的真假值。
④动作项(Action Entry ):列出在条件项的各种取值取值情况下应该采取的动作。
①分析软件规格说明中哪些是原因(即输入条件或输出条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。
②分析软件规格说明中语义的内容,找出原因与结果之间、原因与原因之间的对应关系,根据这些关系画出因果图。
③由于语法或环境的限制,有些原因和原因之间、原因和结果之间的组合情况不可能出现。为表名这些特定的情况,在因果图上使用一些记号表名约束或限制条件。
④把因果图转换为判定表。
⑤根据判定表中的每一列设计测试用例。
eg:使用因果图+判定表设计测试用例测试两位数计算器。
①输入1: ②输入2:
条件1:0≤X≤99 条件1:0≤X≤99
条件2:-99≤X<0 条件2:-99≤X<0
条件3:X<-99 条件3:X<-99
条件4:X>99 条件4:X>99
输出:
正确计算
错误提示
输入1:
1、2、3、4互斥
输入2:
1、2、3、4互斥
输出:
输出结果正确和错误互斥
得到的测试用例:
正交实验设计法(Orthogonal experimental design),是从大量的试验点中挑选出适量的、有代表性的点,应用依据伽罗卡瓦理论导出的“正交表”,合理的安排试验的一种科学的试验设计方法。
1、提取功能说明,构造因子—状态表
2、加权筛选,生成因素分析表
计算个因子和状态的权值,删去一部分权值较小,即重要性比较小的因子或状态,使最后生成的测试用例集缩减到允许的范围。
3、利用正交表构造测试数据集
① 如果每个因子的状态树是不统一的,几乎不可能出现均匀的情况,必须首先用逻辑命令来组织个因子的状态,作出布尔图。
②根据布尔图得到相应结束的正交表。
③依照因果图上根节点到叶子节点的顺序逐步替换正交表上的中间节点,得到最终的正交表。
4、利用正交表每行数据构造测试用例
正交表:
正交表的表示形式:Ln(t^c)其中:L为正交表的代号,n为行数(试验行数),t为水平数,c为列数(因素数)。
eg:L4(2^3),它表示需做四次实验,最多可观察3个因素,每个因素均为2水平:
1:正确
2:错误
eg:一个正交表中也可以割裂的水平数不相等,我们称它为混合型正交表,如L8(2^4 4^1):
根据正交表的数据结构可以看出吧,正交表是一个n行c列的表,其中第j行由数码1,2,....tj组成,这些数码均各出现n/t次。
第二列的数码个数为2,t=2,即由1、组成,各数码均出现2次。
1、Technical Support (support.saa.com)
http://support.sas.com/techsup/technote/ts723_Designs.txt
2、查Dr.GenichiTaguchi设计的正交表,
http://www.york.ac.uk/depts/maths/tables/orthogonal.htm
3、数理统计、试验设计等方面的书及附录中
关注点:因素数和对应的水平数组组成的矩阵
eg:测试支付宝web网站,该网站点有大量的服务器和操作系统。并且有许多具有各种插件的浏览器需要考虑:
WEB浏览器:IE11、chrome、FireFox
插件:无、Flash、支付宝插件
应用服务器:IIS、Apache、Jetty
操作系统:Windows2000、Windows NT、Linux
1、提取系统功能说明中的因子
①WEB浏览器
②插件
③应用服务器
④操作系统
2、分析个因子的状态
①插件:1=None、2=Flash、3=FireFox
②WEB浏览器:1=IE11、2=Chrome、3=FireFox
③应用服务器:1=IIS、2=Apache、3=Jetty
④操作系统:1=Windows2000、2=Windows NT、3=Linux
3、选择正交表
正交表水平数为3,因素数为4。选择L9(3^4)
4、将因子、状态映射到上面正交表中
现在的软件几乎都是用事件出发来控制流程的。事件触发时的情景形成了场景,而同一事件不同的触发顺序和处理结果就形成了事件流。
这种在软件设计方面的思想可以引入到软件测试中,可以生动的描绘出时间触发时的情景,有利于设计测试用例,同时使测试用例更容易理解和执行。
经过用例的每条路径都用基本流和备选流来表示,之黑线表示基本流,是经过用例的最简单的路径。
备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);
也可能起源于另一个备选流(如备选流2),或者终止用例而不在重新加入到某个流(如备选流2和4)。
每个经过用例的可能路径,可以确定不同的用例场景。从基本流开始,再将基本流和备选流结合起来,可以确定以下用例场景:
场景1:基本流
场景2:基本流 备选流1
场景3:基本流 备选流1 备选流2
场景4:基本流 备选流3
场景5:基本流 备选流3 备选流1
场景6:基本流 备选流3 备选流1 备选流2
场景7:基本流 备选流4
场景8:基本流 从、备选流3 备选流4
①根据说明,描述出程序的基本流及各项备选流。
②根据基本流和各项备选流生成不同的场景。
③对每一个场景生成相应的测试用例。
④对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值。
eg:在淘宝的购物过程:
用户登录到网站后,进行商品的选择,当选好自己心仪的商品后进行购买,这时把所需商品放进购物车,等进行结账的时候,用户需要登录自己注册的账号,登录成功后,进行结账并生成订单,整个购物过程结束。
①通过以上的描述,从中确定哪些是基本流,哪些是备选流:
②根据基本流和备选流来确定场景:
1、测试用例项划分
测试用例划分的经典方法就是瀑布模型,从上到下,逐渐细分,大模块包括小模块,小模块包括更小的模块。
要从更多的角度切入系统,把系统切分成一块一块的,来进行测试,从而确保测试大项的完整性。
2、切面设计
功能点切面:最常见的切面,通常认为页面上的一个按钮就是一个功能点。根据功能的复杂程度,按每个功能进行用例的撰写。
隐含切面:完整业务流程的测试;从需求、业务角度进行编写。
3、功能点用例设计
①任何情况下都必须使用边界值分析方法,经验表明用这种方法设计出测试用例发现程序错误的能力最强。
②必要时用等价类划分方法不从以希望测试用例。
③如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法。
④如果程序业务复杂度比较高,则使用使用场景法补充一部分测试用例。
eg:共享单车充值
1、边界值考虑充值金额:0元,1元,负数,非金额参数,多位小数(小数后3位),银行卡限额。
2、由于充值时可以选择不同的银行支付渠道,所以针对支付宝、微信、通联、银联、银行直连等渠道分别设计测试用例。
3、考虑异常场景,如充值失败、银行卡余额不足、银行返回超时等。
4、如果场景中还包含更复杂的业务场景,如满减、满赠、增加抽奖次数等,还需要结合场景法进行测试。
Ⅳ 黑盒测试的方法有哪些
“黑盒”的两种基本方法 黑盒测试有两种基本方法,即通过测试和失败测试。 在进行通过测试时,实际上是确认软件能做什么,而不会去考验其能力如何。软件
Ⅳ 你所熟悉的测试用例设计方法都有哪些
测试用例常见的设计方法有:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。
一、等价类划分法
顾名思义,顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。
二、边界值分析法
长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。
三、错误推测
错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。
四、判定表法
又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。
五、正交实验法
用语言描述正交实验法会很抽象难懂,简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。
(5)决策表设计输入域时按照什么方法扩展阅读:
功能测试方法还有很多,例如因果图法,状态转换测试法等,他们都略为复杂,像正交实验法一样,有各自的一套东西,不过本质都是通过画图,让我们更好的思考,最后转化成判定表。
实际上常用的是前面五种方法,包括:等价类划分法、边界值分析法、错误推测法、判定表法、正交实验法。
等价类划分法划分标准:
1) 完备测试、避免冗余
2) 划分等价类重要的是:集合的划分、划分为互不相交的一组子集,而子集的并是整个集合
3) 并是整个集合:备性
4) 子集互不相交:保证一种形式的无冗余性
5) 同一类中标识(选择)一个测试用例,同一等价类中,往往处理相同,相同处理映射到“相同的执行路径”。
Ⅵ 软件测试 决策表测试方法
在所有的测试方法中,基于决策表的测试方法是最严格的,因为决策表具有逻辑严格性。
决策表有四个部分,如下图所示:
条件桩 条件条目
行动桩 行动条目(条目中的一列就是一个规则)
所有条件都是二叉条件的决策表称为有限条件决策表,如果条件可以有多个值,则对应的决策表叫做扩展条目决策表。
为了使用决策表标识测试用例,把条件解释为输入,把行动解释为输出。有时条件最终引用输入的等价类,行动引用被测软件的主要功能处理部分。这时规则就解释为测试用例。
对于有限条件决策表,如果有n个条件,则必须有2的n次幂条规则。
在决策表中要小心使用不关心条目。
决策表技术适合具有以下特征的应用程序:
if-then-else逻辑很突出
输入变量之间存在逻辑关系
涉及输入变量子集的计算
输入和输出之间存在因果关系
很高的圈复杂度??
决策表不能很好的伸缩(有n个条件的有限条目决策表有2的n次幂个规则),不过有多个方法可以解决这个问题,如使用扩展条目决策表,代数简化表,将大表分解为小表,查找条件条目的重复模式等。
功能性测试技术碰核的选择:
如果变量引用的是物理量,可采用定义域测试和等价类测试
如果变量是独立的,则可以用定义域测试和等价类测试
如果变量不洞和是独立的,可采用决策表测试
如果可保证是单缺陷假设,则可采用边笑颤掘界值分析和健壮性测试
如果可保证是多缺陷假设,可采用最坏情况测试、健壮最坏情况测试和决策表测试
如果程序包含大量例外处理,可采用健壮性测试和决策表测试
如果变量引用的是逻辑量,可采用等价类测试用力和决策表测试
Ⅶ 决策表法设计测试用例适用于哪种情况()
决策表法设计测试用例适用于分析和表达多逻辑条件下执行不同操作的情况。
决策表能够将各种复杂情况都列举出来,不会产生遗漏,因此,使用决策表设计出的测试用例是完整的测试用例集合。
决策表又称判断表,是一种呈表格状的图形工具,适用于描述处理判断条件较多,各条件又相互组合、有多种决策方案的情况。精确而简洁描述复杂逻辑的方式,将多个条件与这些条件满足后要执行动作相对应。但不同于传统程序语言中的控制语句,决尘橡策表能将多个独立的条件和慎兄掘多个动作直接的联系清晰的表示出来。