script src="http://static.tctip.com/tctip-1.0.0.min.js"> 1 2 3 4

五.黑盒测试和测试用例设计方法

1.测试用例综述

        测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,即测试方案,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求。

      测试用例(Test Case)是将软件测试的行为活动做一个科学化的组织归纳,目的是能够将软件测试的行为转化成可管理的模式;同时测试用例也是将测试具体量化的方法之一,不同类别的软件,测试用例是不同的

测试用例测试用例
编写测试用例的唯一标准就是客户需求,具体的参考资料是《需求规格说明书》

1.1 为什么需要测试用例:

    1.在开始实施前设计好测试用例,以避免盲目测试,从而提高测试效率
    2.测试用例的使用令软件测试的实施重点突出,目的明确   
    3.根据测试用例的多少和执行难度,估算测试工作量,便于测试项目的时间和资源管理与跟踪
   4.减少回归测试的复杂程度,在软件版本更新过后只需修正少量的测试用例以便可展开测试工作,降低工作强度、缩短项目周期
   5.功能模块的测试用例的通用化和复用化则会使软件测试易于展开,并随着测试用例的不断细化其效率也不断攀升
   6.根据测试用例的操作步骤和执行结果,为分析软件缺陷和程序模块质量提供依据,可以方便书写软件测试缺陷报告
   7.可以根据测试用例的执行等级,实施不同级别的测试

1.2 测试用例的因素

    1.测试目标:Why--为什么而测?功能、性能、易用性、可靠性、兼容性、安全性等
    2.测试对象:What--测什么? 被测试的项目,如对象、菜单、按钮等
    3.测试环境: Where--在哪里测? 测试用例运行时环境包括系统配置和设定等要求,也包括操作系统、浏览器、网络环境等。
    4 .测试前提:When -- 什么时候开始测? 测试用例运行的前提或条件限制
    5.输入数据: Which --哪些数据?在操作时系统所接受的数据
    6.操作步骤:How--如何测?执行软件的先后次序步骤
    7.预期结果 :--判定依据?执行测试用例后

1.3 测试用例组成元素:

    1.测试用例编号
    2.测试用例名称
    3.测试用例设计者
    4.软件版本号
    5.测试目的
    6.参考信息
    7.测试条件
    8.测试坏境
    9.输入数据
   10.操作步骤
   11.预期结果

1.4 测试用例的范例:

         登录功能测试用例:用户名为 user 密码为987654

1.5测试用例的分类

   1.接口测试用例

    2.路径测试用例

    3.功能测试用例

    4.容错能力测试用例

    5.性能测试用例

    6.界面测试用例

     7.安全性测试用例

    8.压力测试用例

    9.可靠性测试用例

    10.安装/反安装测试用例

  1.5.1 功能测试用例设计步骤

 

2.黑盒测试  

2.1

 黑盒测试又被称为数据驱动测试,完全不考虑程序内部结构和内部特性,注重于测试软件的功能需求。由于黑盒测试不需要了解程序内部结构,所以许多高层测试,如确认测试、系统测试、验收测试都采用黑盒测试

2.1.1 黑盒测试能发现以下几类错误;

   1.功能不对或功能遗漏

   2.界面错误

   3.数据结构或数据库访问错误

   4.性能问题

   5.初始化和终止错误

2.1.2 黑盒测试的优点:

   1.有针对性的找问题,并且定位问题更准确

   2.黑盒测试可以证明产品是否达到用户要求的功能,是否符合用户的工作要求

   3.能重复执行相同的操作,测试中最枯燥的部分可由自动化来完成

2.1.3 黑盒测试的缺点:

  1.需要充分了解产品用到的技术,测试人员需要具有较多的经验

  2.在测试过程中很多都是手工操作

  3.测试人员需要大量的文档

 

2.2 等价类设计方法

等价类:是指某个输入域的子集合

等价类划分为:

    1.有效等价类:指符合(需求规格说明书),输入合理的数据集合

    2.无效等价类:指符合(需求规格说明书),输入合理的数据集合

等价类测试:如求1-100之间任意两个整数的和

分为一个有效等价类,和两个无效等价类,进行编号并选取代表值进行测试

 (<1) (1-100) (>100)

 

以上的等价类并不完善,还有小数,字母,特殊字符,空格,空白等

等价类划分的步骤;

  1.先考虑输入数据的数据类型(合法的和非法的)

  2.再考虑数据范围(合法类型中的合法区间和非法区间

  3.画出示意图,区分等价类

  4.为每一个等价类编号

  5.在一组等价类中选择一对值来进行测试

2.3 边界值设计方法

  程序的很多错误发生在输入或输出范围的边界上,因此针对各种边界情况设置测试用例,可以发现不少程序缺陷。

设计方法:

   1.确定边界情况(输入或输出等价类的边界

   2.选取正好等于、刚刚大于或刚刚小于边界值作为测试数据

边界值与等价划分的区别:

   1.边界值分析不是从某等价类中随便挑选一个作为代表,而是这个等价类的每个边界都要作为测试条件

   2. 边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况

常见的边界值:

   1.文本文框接收字符个数,比如用户名长度,密码长度等

    2.报表的第一行和最后一行

    3.数组元素的第一个和最后一个

    4.循环的第一次、第二次和倒数第二次、最后一次

2.4错误推测方法 

基本思想:利用直觉和经验猜测出出错的可能类型,列举出程度中所有可能的错误和容易发生错误的情况,基本思想是列举出可能犯的错误或错误易发生的清单,然后根据清单编写测试用例

 这种方法很大程度上是凭经验进行的

2.5 因果图设计方法

  因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出

利用因果图导出测试用例需要经过几个步骤:

    1.分析程度规格说明的描述中,哪些是原因,哪些是结果原因,常常是输入条件或输入条件的等价类,而结果是输出条件

    2.分析程度规格说明的描述中语义内容,并将其表示成连接各个原因与各个结果的“因果图”

    3.标明约束条件。由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的。

    4.把因果图转换成判定表

    5.为判定表中的每一列表示的情况设计测试用例

基本图形符号:

    1.恒等:若原因出现,则结果出现;原因不出现,则结果不出现

    2.非(~)

    3.或(V)

    4.与(^):若几个原因都出现,结果才出现;若其中有一个原因不出现,则结果不出现

约束符号:

    1.E(互斥)

    2.I(包含)

    3.O(唯一)

    4.R(要求)

    5..M(屏蔽)

例:有一个处理单价为2.5元的盒装饮料的自动售货机软件。若投入2.5元硬币,按“可乐”、“啤酒”、“奶茶”按钮,相应的饮料就送出来。若投入的是3元硬币,在送出饮料的同时退还5角硬币

原因(输入):

     1 投入2.5元硬币

     2. 投入3元

     3.按“可乐”按钮

     4.按“啤酒”按钮

     5.按“奶茶”按钮

中间状态:

     1.已投币

     2.已按钮

结果(输出):

    1.退还5角硬币

    2.送出“可乐”饮料

   3.送出“啤酒”饮料

   4.送出“奶茶”饮料

将因果图转换成判定表:

根据判定表设计测试用例

因果图缺点:

    1.有些问题无法用因果描述

    2.太过复杂,太过庞大 

 

2.6 正交试验设计方法(GUI)

正交试验设计,是一种成对测试交互的系统的设计方法。它提供了一种能对所有变量对的组合进行典型覆盖的方法。可以从大量的试验点中挑出适量的、有代表性的点,利用“正交表”,合理的安排试验的一种科学的试验设计方法

正交表的构成:

   1.行数:正交表中的行的个数,即试验的次数,也是我们通过正交实验法设计的测试用例的个数

   2.因素数:正交表中列的个数,即要测试的功能点

   3.水平数:任何单个因素能够取得的值的最大个数,即要测试功能点的取值个数

   4.正交表的形式:L行数(水平数因素数)如 L8(27)

用正交设计测试用例的步骤:

  1.有哪些因素(功能点)

   2.每个因素有哪几个水平(功能点的取值)

   3.选择一个合适的正交表

   4.把变量的值映射到表中

   5.把每一行的各因素水平的组合作为一个测试用例

   6.加上你认为可以且没有在表中出现的组合

2.7 流程图法

我们在编程是,一般都需要画程序的算法流程图,可以将这一思想应用到黑盒测试领域。算法流程图是针对程序内容结构的,而黑盒测试的流程图是针对整个业务功能流程的

 

2.8 总结

  测试用例的设计方法不是单独纯在的,具体到每个测试项目里都会用到多种方法,每种类型的软件有各自的特定,每种测试用例设计的方法也有各自的特点,针对不同软件如何利用这些黑盒方法是非常重要的,

在设计测试中,往往是综合使用各自方法才能有效的提高测试效率和覆盖率。

 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2019-12-13 11:07  第365号回归者  阅读(583)  评论(0)    收藏  举报