首页 > 其他分享 >八、用例设计方法--正交试验法、状态图、场景法、测试大纲法

八、用例设计方法--正交试验法、状态图、场景法、测试大纲法

时间:2022-09-03 15:46:12浏览次数:59  
标签:场景 变量 -- 正交 用例 测试用例 状态图 测试 备选

(五)正交试验法

1.应用场景:一个界面上有很多个控件,每个控件又包含多个取值,测试时,需要测试所有的组合情况,但是一般组合数量较大(>20种),并且不同的组合测试的基本是同一段代码,这个时候为了选择最优的组合(能达到最大的测试覆盖率)进行测试,需要选择正交试验法;

2.判定表和正交表的区别:

(1)共同点: 都需要测试控件的组合情况

(2)不同点: 判定表适用于组合数量较少,不同组合测试的是不同的代码;正交表适用于组合数量较大,不同组合测试的基本是同一段代码

3.正交表是研究数学的人为了解决数学问题而研究的,目前只有9种,作为测试人员,只要会应用即可;

(1)如何查找正交表:

  Technical Support (support.sas.com) http://support.sas.com/techsup/technote/ts723_Designs.txt;

  查Dr. Genichi Taguchi设计的正交表, http://www.york.ac.uk/depts/maths/tables/orthogonal.htm上面查询;

  数理统计、试验设计等方面的书及附录中;

4.正交表的概念:因素和水平

(1)什么是因素(Factor):在一项试验中,凡欲考察的变量称为因素(变量)

(2)什么是水平(位级)(Level):在试验范围内,因素被考察的值称为水平(变量的取值)

(3)什么是正交试验设计:是研究多因素多水平的一种设计方法,它是根据正交性从全面试验中挑选出部分有代表性的点进行试验,这些有代表性的点具备了“均匀分散,齐整可比”的特点,正交试验设计是一种基于正交表的、高效率、快速、经济的试验设计方法

5.正交表的构成

(1)行数(Runs):正交表中的行的个数,即试验的次数。

(2)因素数(Factors):正交表中列的个数。

(3)水平数(Levels):任何单个因素能够取得的值的最大个数。正交表中的包含的值为从0到数“水平数-1”或从1到“水平数”

(4)正交表的表示形式: 

  

6.正交表的正交性

(1)整齐可比性 在同一张正交表中,每个因素的每个水平出现的次数是完全相同的。由于在试验中每个因素的每个水平与其它因素的每个水平参与试验的机率是完全相同的,这就保证在各个水平中最大程度的排除了其它因素水平的干扰。因而,能最有效地进行比较和作出展望,容易找到好的试验条件。

(2)均衡分散性 在同一张正交表中,任意两列(两个因素)的水平搭配(横向形成的数字对)是完全相同的。这样就保证了试验条件均衡地分散在因素水平的完全组合之中,因而具有很强的代表性,容易得到好的试验条件。

7.用正交表设计测试用例--步骤

(1)有哪些因素(变量)

(2)每个因素有哪几个水平(变量的取值)

(3)选择一个合适的正交表

(4)把变量的值映射到表中

(5)把每一行的各因素水平的组合做为一个测试用例

(6)加上你认为可疑且没有在表中出现的组合

8.如何选择正交表

(1)考虑因素(变量)的个数

(2)考虑因素水平(变量的取值)的个数

(3)考虑正交表的行数

(4)取行数最少的一个

9.正交表测试--设计测试用例时的三种情况

(1)因素数(变量)、水平数(变量值)相符(水平数(变量的取值)相同、因素数(变量)刚好符合正交表)

例:假设查询某个人时有三个查询条件:根据“姓名”进行查询、根据“身份证号码”查询 、根据“手机号码”查询

  A.因素数和水平数:

  

  B.选择正交表:

  

  C.变量映射:

  ---->

   D.用L4(23) 设计的测试用例--测试用例如下:  

  

(2)因素数不相同(水平数(变量的取值)相同但在正交表中找不到相同的因素数(变量) (取因素数最接近但略大的实际值的表))

例:114系统查询企业单位

  

   A.因素数和水平数:

  

  B.选择正交表:

  

  C.变量映射:

  ---->

  D.用用L8(27) 设计设计的测试用例:

  

(3)水平数不相同(因素(变量)的水平数(变量的取值)不相同)

例:假设有一个系统有5个独立的变量(A,B,C,D,E)。变量A和B都有两个取值( A1 、 A2和B1、 B2 )。变量C和D都有三个可能的取值( C1、 C2、 C3和D1 、 D2 、 D3 )。变量E有六个可能的取值( E1、 E2、 E3、 E4、 E5、 E6)。

  A.因素数和水平数:

  

  B.选择正交表:

   

  C.变量映射:

  ----->-->

 D.用L18(3661)设计的测试用例:

  

(六)状态图(状态测试)

1.软件状态(software state)是指软件当前所处的条件或者模式;

2.测试软件的逻辑流程:运用等价划分技术选择状态和分支;

  A.测试软件的逻辑流程有这样的问题:访问所有的状态通常是可以 实现的。困难在于除了及其简单的程序之外,基本上不可能走遍所有的分支,达到所有的状态。软件日益复杂化,尤其是为了迎合日 益丰富的用户界面,提供了太多的选择和选项,致使程序分支呈指数级增长。

  B.对于软件测试,解决方法是运用等价划分选择状态和分支。因为选择不做完全测试,所以要承担一定风险,但是可以通过合理选择减少风险。

3.建立状态转换图

(1)第一步:建立状态转换图。

(2)第二步:软件可能进入的每一种独立状态。

(3)第三步:从一种状态转入另一种状态所需的输入和条件。

  可能是按键,菜单选择等等。状态不可能无缘无故地存在,其原因正是我们这里所要寻找的。

(4)第四步:进入或者退出某种状态时的设置条件及输出结果。

  包括显示的菜单和按钮,设置的标志位,产生的打印输出,执行的运算等等。这些是状态转换是发生的部分或全部现象。

4.减少要测试的状态及转换的数量

(1)为大型软件产品建立状态图是一项艰巨的任务。但愿只测试整个软件的一部分,使建立状态图成为可能。

(2)如果有足够的时间,可能会想去测试软件的每一个分支——不仅仅连接两个状态的每一条线,而是一种线路组合,翻来覆去,循环往复。

(3)正如对数据进行等价划分一样,需要将大量的可能性减少到可以操作的测试用例集合。有以下5中实现方法:

  A.每种状态至少访问一次。

    如何到达的没有关系,但是每一种状态都必须测试。

  B,测试看起来是最常见和最普遍的状态转换。

    尽管听起来可能很主观,但是测试最常见的也是最管用的。

  C,测试状态之间最不常用的分支。

    这些是设计者和程序员最容易忽视的。软件测试员可能是第一个测试它的人。

  D.测试所有错误状态及其返回值。

    如果错误没有得到正确处理,修复错误时未正确恢复软件的情况经常发生。

  E.测试随机状态转换。

    把状态及其转换的假定与项目小组的产品说明书作者和程序员讨论。他们可以提供软件测试员可能想不到的、表面现象背后的状态内幕。

(七)场景法

1.应用场景

(1)界面特点: 界面上没有太多的填写项(甚至没有),基本都是通过鼠标的单机、双击、拖拽等操作完成;

(2)测试特点: 测试人员把自己当做最终的用户,模拟用户的两类操作;

  两类操作分别是:

  A、针对程序正确的操作---验证程序基本功能是否实现;

  B、针对程序错误的操作---验证程序的健壮性;

2.应用方法

(1)业务层面:测试人员对被测系统的需求要非常精通;

(2)技术层面:基于等价类:

  有效等价类(基本流):正确的操作;

  无效等价类(备选流):错误的操作;

3.什么是场景设计法

(1)事件触发时的情景便形成了场景;

(2)不同的事件,其触发和处理结果就形成事件流;

(3)上图中,直黑线表示基本流,是经过用例的最简单的路径;

(4)备选流用不同的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中(如备选流1和3);

  也可能起源于另一个备选流(如备选流2),或者终止用例而不再重新加入到某个流(如备选流2和4);

4.测试树

(1)场景可以遍历所有从用例开始到结束的包含基本流和备选流的路径:

  场景1:基本流;

  场景2:基本流、备选流1;

  场景3:基本流、备选流1、备选流2;

  场景4:基本流、备选流3;

  场景5:基本流、备选流3、备选流1;

  场景6:基本流、备选流3、备选流1、备选流2;

  场景7:基本流、备选流4;

  场景8:基本流、备选流3、备选流4。

  注:为简单起见,场景5、6和8只考虑了备选流3循环执行一次的情况;

(2)从上面的实例我们就可以了解场景是如何利用基本流和备用流来确定的。

  基本流:采用直黑线表示,是经过用例的最简单的路径(无任何差错,程序从开始直接执行到结束);

  备选流:采用不同颜色表示,一个备选流可能从基本流开始,在某个特定条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不在加入到基本流中;(各种错误情况)通过运用场景来对系统的功能点或业务流程的描述,从而提高测试效果。

  场景法一般包含基本流和备用流,从一个流程开始,通过描述经过的路径来确定的过程,经过遍历所有的基本流和备用流来完成整个场景;

  为什么场景法能如此清晰的描述整个事件?因为,现在的系统基本上都是由事件来触发控制流程的。如:我们申请一个项目,需先提交审批单据,再由部门经理审批,审核通过后由总经理来最终审批,如果部门经理审核不通过,就直接退回。每个事件触发时的情景便形成了场景。而同一事件不同的触发顺序和处理结果形成事件流。这一系列的过程我们利用场景法可以清晰的描述清楚;

5.测试思想:根据需求规格说明书中的用例所包含的事件流信息构造场景并设计相应的测试用例使每个场景至少发生一次;

6.场景法的基本设计步骤

(1)根据说明,描述出程序的基本流及各项备选流;

(2)根据基本流和各项备选流生成不同的场景;

(3)对每一个场景生成相应的测试用例;

(4)对生成的所有测试用例重新复审,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值;

 7.例:有一个在线购物的实例,用户进入一个在线购物网站进行购物,选购物品后,进行在线购买,这时需要使用帐号登录,登录成功后,进行付钱交易,交易成功后,生成订购单,完成整个购物过程。

(1)第一步我们来确定基本流和备选流:

  

(2)第二步我们根据基本流和备选流来确定场景:

  

(3)设计测试用例(V--有效,I--无效,n/a--不适用):

  

 (4)第四步 设计数据,把数据填入上面的用例表中:

  

(八)测试大纲法

1.应用场合:有很多个窗口,每个窗口上又有很多操作,操作与操作之间又有联系,为了弄清楚窗口之间的关系,可以使用测试大纲法(提纲法);

2.步骤

(1)分析需求: 列出所有的窗口,以及每个窗口上的操作 主窗口、帮助窗口、地图窗口、专卖店窗口;

  说明: 列窗口以及窗口上的操作时,注意操作顺序;

(2)找操作之间的联系(测试路径);

3.测试大纲方法(举例)

---

(1)测试的内容:对该系统中有关购物者对系统的操作进行功能性测试。

(2)编写输入项:

  

(3)根据输入项,重 新组织输入信息:

   

(4)根据测试大纲,针对每一个叶节点都可以产生一个相应的测试用例;

(5)通过大纲导出测试用例表:

 

标签:场景,变量,--,正交,用例,测试用例,状态图,测试,备选
From: https://www.cnblogs.com/zhuo-90/p/16652773.html

相关文章

  • 献芹奏曝-Python面试题-算法-链表篇
    上一篇:献芹奏曝-Python面试题    开篇的话:本文目的是收集和归纳力扣上的算法题,希望用python语言,竭我所能做到思路最清奇、代码最简洁、方法最广泛、性能最高效,了解......
  • 饮冰三年-人工智能-Pandas-79-Pandas 数据处理
    上一篇:饮冰三年-人工智能-Pandas-78-Pandas新增、统计、排序 数据准备可参考:饮冰三年-人工智能-Django淘宝拾遗-75-数据准备一、对缺失值处理1.1检测1.2丢弃1.3......
  • leetcode202-快乐数
    https://leetcode.cn/problems/happy-number/一开始的错误代码int sum;        if(n==1)    return true;        while(n>9)       ......
  • Django CBV源码执行流程
         ......
  • Sketch for mac(矢量绘图UI设计软件)中文版sketch绘图软件
    Sketchformac是一款强大的移动应用矢量绘图设计工具,对于网页设计和移动设计者来说,尤其是在移动应用设计方面,Sketch的优点在于使用简单,学习曲线低,并且功能更加强大易用,支......
  • geoserver如何配置图层样式(SLD格式)
    一、基本样式点(se:PointSymbolizer)线(se:LineSymbolizer)面(se:PolygonSymbolizer)<?xmlversion="1.0"encoding="UTF-8"?><StyledLayerDescriptorxmlns="http://......
  • 37.介词
    1、表示地点位置的介词(1)at、in、on、to、forat:①表示在小地方;②表示“在……附近,旁边”in:①表示在大地方;②表示“在……范围之内”on:表示毗邻,接壤,“在……上面”to:表......
  • JavaScript的变量命名规则和关键字的介绍
    JavaScript的变量命名规则和关键字的介绍规则一:开头必须是字母或$或_规则二:关键字和保留字不能用做变量名那么能不能使用typeof做为变量名呢?想都别想!那么能不能......
  • HCNP Routing&Switching之IP安全
    前文我们了解了DHCP安全相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/16637627.html;今天我们来聊一聊IP安全相关话题;技术背景随着网络规模越来......
  • ElasticSearch-全文检索
    1.ElasticSearch-全文检索1.1简介:Elasticsearch是一个分布式的开源搜索和分析引擎,在ApacheLucene的基础上开发而成。Lucene是开源的搜索引擎工具包,Elasticsearch......