1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【软件测试技术】黑盒测试步骤设计详解

【软件测试技术】黑盒测试步骤设计详解

时间:2021-10-05 14:02:33

相关推荐

【软件测试技术】黑盒测试步骤设计详解

文章目录

一、因果图法二、判定表法【判定表驱动法】三、场景法四、正交实验法五、功能图法(状态迁徙图)【会用就行】六、其他用例设计方法七、用例设计方法综合选择

一、因果图法

因果图法是一种适合于描述多种输入条件组合的测试方法根据输入条件的组合、约束关系和输出条件的因果关系,分析输入条件的各种组合情况,从而设计测试用例的方法它适合于检查程序输入条件涉及的各种组合情况

设计步骤

第一步:根据功能说明书中规定的原因和结果之间的关系画出因果图

原因和结果的关系

恒等:原因A成立,结果B一定成立非:原因A成立时,结果B一定不成立或:原因A、B、C只要有一个成立,结果D就一定成立与:原因A、B、C都成立时,结果D才会出现

第二步:根据功能说明在因果图中加上约束条件

因果图使用实例

案例:自助售货机卖啤酒和橙汁,处理单价5角;投五角硬币,按下按钮,出饮料;投下一元硬币,按下按钮、出饮料,并且找零

步骤:

分析原因和结果 画出原因和结果之间的关系(部分关系) 按照需求描述原因、结果间的约束 列出所有的原因和结果的列表,设计初步的测试用例步骤

【C5:这是一种bug,不能作为测试设计】

通过综合案例的分析发现:

只选择饮料没有投币的时候,软件没有任何结果只投币没有选择饮料的时候,软件也没有任何结果我们不能把软件的bug设计成测试用例

因果图使用中的局限性:当原因和结果很多的时候,他们之间的关系连线就会很多,导致因果图的可读性变差。因此因果图法用作局部的小功能(原因和结果不是很多的时候)分析

因果图的优势在于:能够发现设计中存在的不足

二、判定表法【判定表驱动法】

是分析和表达逻辑条件下执行不同操作的情况的工具,它由以下几个内容组成:

条件桩:列出了问题的所有条件,通常认为列出的条件的次序无关紧要动作桩:列出了问题规定可能采取的操作,这些操作的排列顺序没有约束条件项:列出针对它左列条件的取值,在所有可能情况下的真假值动作项:列出在条件项的各种取值情况下应该采取的动作在实际使用中,因果图法和判定表法结合使用 应用场合:主要适用于多条件的内容组合与结果分析组成:由条件项、动作项、条件桩、动作桩四部分组成使用的条件:所有的条件桩在表中的位置和顺序互相不影响;所有的动作桩的顺序不会因为条件顺序的变化而产生不同

建立判定表的步骤:

确定规则的个数【假如有n个条件,每个条件有两个取值(0,1),共有2^n种规则】列出所有的条件桩和动作桩【1、填入条件项;2、填入动作项,制定初始判定表】简化,合并相似规则或者相同动作

判定表使用实例:

1、分析条件和动作

2、写入条件桩、动作桩、条件项、动作项

3、对判定表进行简化和优化(对其中不合理或者重复的进行取舍)

从步骤2的表格中可以看到:不管金额高低,只要未过期,就会发送批准单和提货单(在测试时间不充足的情况下,可以选二者中的一个情况进行测试),所以优化之后,条件项就减少为3个

4、将判定表中的每一列(条件项和对应的结果项)作为测试用例的数据和操作,以及对应的预期结果

适合使用判定表设计测试用例的条件:

规格说明以判定表的形式给出,或很容易转换成判定表条件的排列顺序不影响执行哪些操作规则的排列顺序不影响执行哪些操作当某一条规则的条件已经满足,,并确定要执行的操作后,不必检验别的规则如果某一规则要执行多个操作,这些操作的执行顺序无关紧要

测试用例的设计方法:没有哪一种方法是单独使用的

所有的软件,都是因为某种操作才会导致一定的结果----考虑使用因果图法所有的软件都有文本框----考虑一定使用等价类、边界值

判定表的实例题目:该判定表为一个杂志的阅读指南判定,指导读者能够良性阅读

读完表格后,请对表格内容进行优化,将重复的内容去掉,并且说明原因

解答:

合并1、2、3、4为一项在疲倦的情况下,一律休息即可合并7、8为一项,在都不疲倦的情况下,不感兴趣就跳下一章

合并后的表格如下:

三、场景法

原理:

现在的软件几乎都是用事件触发来控制流程的。测试时,可以生动地描绘出事件触发的场景,有利于设计测试用例,同时使测试用例更容易理解和执行基本流:软件功能按照正确的事件流实现的一条正确流程,通常一个业务仅存在一个基本流,且基本流仅有一个起点和一个终点备选流:除了基本流之外的各支流,包含多种不同情况场景列表:【场景1基本流】【场景2基本流备选流1】【场景3基本流备选流1备选流2】【场景4基本流备选流3】【…】

场景法分析小笔记:

基本流(软件功能正确实现的流程)备选流(基本功能流程之外的过程)场景中必须有基本流场景中必须有内容从用例的开始到用例的结束

场景法案例分析:ATM取款机

基本流:

包含了备选流的过程:

基本流:插卡->输入密码->选择取款服务->选择取款金额->等待出钞->取出卡片

备选流:

卡片不是银行卡卡片不是银联的卡密码输错一次密码输错两次,第三次输入正确密码输入错误三次,冻结账号或吞卡选择存款服务选择查询服务选择转账服务选择修改密码服务选择取款金额账户金额ATM机没钱了账户取款金额达到取款机的当如取款上限取款机掉线取款机停电

找到基本流和备选流就进行场景设计:

场景1:基本流场景2:基本流,备选流5场景3:基本流,备选流7…

场景法设计用例的步骤:

根据说明,描述出程序的基本流及各项备选流根据基本流和各项备选流生成不同的场景对每一个场景生成相应的测试用例对生成的所有测试用例重新复审,去掉多余的测试用例测试用例确定后,对每一个测试用例确定测试数据值

场景法适用于解决业务流程清晰的系统或者功能

四、正交实验法

原理

日本人发明,统计学家提出概念:正交实验法就是利用排列整齐的表-正交表来对试验进行整体设计、综合比较、统计分析,实现通过少数的实验次数找到较好的生产条件,以达到最好效果这种实验设计法是从大量的实验点中挑选适量的具有代表性的点,利用已经造好的表格-正交表来安排实验并进行数据分析的方法【统计和分析实验数据,从大量实验中找到合适的实验数据组合】数学原理:《线性代数》《概率论和数理统计》

基本思想

影响实验结果的-----实验因素(因子)每一个因素的不同取值(状况)-----水平正交表特点:每列中,同一个数字(水平)在表中出现的次数相等,任意两列组成的数字对(水平对)出现的次数也是相同的 n k m三者之间没有任何的数学关系仅适合用于每一个因素的水平数都相同的正交表

实现步骤

分析所有对结果有影响的因素;从多个角度和方式进行分析(不要放过文本框、按钮等需求中提及的或没有提及)分析每个因素的水平数量;充分利用等价类、边界值(需求中说明的和未说明的都要分析)选择正交表;只有特定的因素数和水平数的组合才有对应的正交表;所以在现实中用到的时候,找最贴近的正交表(正交表的因素数和水平数一般要大于实际的因素数和水平数)

案例

完全排列组合:333=27使用小工具【latin blend(混合)】完成正交实验的设计:【L9:3:4】 每一列中,同一个数字出现的次数相等任意两列中,同一个数字对出现的次数相等

正交实验助手

latinblend

五、功能图法(状态迁徙图)【会用就行】

原理

在遇到有事务流或由于某种条件成立导致状态改变的软件时,一般使用功能图法目标:设计足够多的测试用例达到对系统状态的覆盖、状态条件组合的覆盖以及状态迁徙路径的覆盖

功能图法步骤

识别和列举所有的输入(操作)事件,以IP N(N为1 2 3)定义空闲状态(初始状态),一般以软件刚启动时打开的界面状态为空闲状态为空闲状态加操作(只加一次)为第三步所产生的新状态加操作(只加一次),并且曾经加过的操作,不再重复添加循环给所有的新增状态加操作,直到没有新状态产生为止组合任意的状态,以列表的形式展现,设计和编写测试用例

案例

1、识别出可以进行的操作:

IP1:输入账号IP2:输入密码IP3:点击登录IP4:点击关闭按钮

2、定义QQ登录界面为空闲状态

3、给空闲状态加操作

4、为第三步所产生的新状态加操作(曾经加过的操作,不再重复添加)

5、得到一个新的状态,继续添加操作

6、虽然得到了一个全新的界面(状态),但和空闲状态发生了隔断,因此将其视为空闲状态的结束,可以结束分析过程

7、将状态过程列表化,准备设计测试用例

A列:从QQ的登录界面,直接点击关闭按钮,QQ登录推出D列:从QQ的登录界面,先输入QQ号(状态变为QQ号已输入);再输入密码(状态变为QQ号、密码已输入);点击登录,状态就会变为QQ主界面

测试用例的设计越自然越好“大道至简,大巧若拙”

六、其他用例设计方法

测试大纲法

一种着眼于需求的方法为列出各种测试条件,将需求转换为大纲的形式一般用于快速的测试和过程记录;用例一般进行后补

探索性测试法

基于经验和直觉是计划内测试用例设计的补充执行前也需要设计测试用例

猴子测试法(随意测试)

没有测试用例(无意识的测试)不能达到一定的覆盖率许多测试都是冗余的需要使用同样的随机数才能重建测试

七、用例设计方法综合选择

首先进行等价类划分在任何情况下都必须使用边界值分析法如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法和判定表驱动法对于参数配置类的软件,要用正交实验法选择较少的组合方式达到最佳效果状态迁徙图法也是很好的测试用例的设计方法,我们可以通过不同时期条件的有效性设计不同的测试数据对于业务流清晰的系统,可以利用场景法贯穿整个测试案例的过程可以用错误推测法追加一些测试用例对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,如果没有达到要求的覆盖标准,应当再补充足够的测试用例

软件测试工程师面试如何应对测试用例设计方法怎么用?

首先明确用例方法有哪些

等价类划分法边界值分析法因果图法判定表法场景法正交实验法功能图法用例设计方法的使用不是孤立存在的,而是存在项目中,尤其是一个项目中所有测试用例的设计方法,没有独立使用的,都是融合在一起使用,往往在一个软件的界面中,都可以使用好几种测试用例的设计方法

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。