软件测试方法

等价类划分

属于黑盒测试,它将不能穷举的测试过程进行分类,从而保证完整性和代表性;思考步骤:

  1. 确定有效等价类和无效等价类
  2. 有效等价类划分(题目条件,还要注意边界值(极值),中间甲堕意找个值)
  3. 无效等价类划分(跟有效等价类相反,其他特殊的情况【中文、英文、特殊符号、空格、空】)

注意: 两个框要一个正确,一个错误,这样才能准确的判断;一定要根据需求来判断预期结

http://qukuailine.com/的注册页面

等价类细节考虑

1、考虑输入长度2、考库输入类型3、组成规则4、是否为空5、是否区分大小写…
6、是否重复7、是否去除空格

边界值划分

  1. 如果输入条件规定了值得范围,则应取刚到到这个范围的边界值,以及刚刚超越这个范围边界的值作为输入数据。
    • 两位整数加法器数的范围为99-99,则应测试99,-100和099,100
      1. 输入条件规定了值得个数
      • 姓名要求1-20个字符,需要测试0、1、2个字符和19、20、21个字符
      • 某商品信息查询系统,每页最多呈示10条商品信息,我们就应该准备商品信息,使能够查询出10条、11条、1条、0条商品记录
      • 边界值和等价类区别:边界值分析不是从某等价类中随便挑一个作为代表,而是这个等价类的每个边界都要作为测试条件

银行密码案例

需求:
密码必须是数字密码组合
且长度在8-24

常见的边界值

  • 文本框接收字符个数,比如用户名长度,密码长度等
  • 报表的第1行和最后1行;
  • 数值元素的第1个和最后1个;
  • 循环的第1次、2次和倒数第1次、2次。

因果图法

因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况
因果图法比较适合输入条件比较多的情况,测试所有的输入条件的排列组合。所谓的原因就是输入,所谓的结果就是输出。

1
2
因果图的“因”—输入条件
因果图的“果”—输出结果因果图法要注意考虑:

所有输入/输出条件的相互制约关系以及组合关系输出结果对输入条件的依赖关系,也就是什么样的输入组合会产生怎样的输出结果,即“因果关系”

特点:

  • 考虑输入条件的相互制约及组合关系
  • 考虑输条件对输入条件的依赖关系

    因果图中的符号

  1. 恒等一有因就有果,没有因就没有果
  2. 非一有因没有果,没有因有果
  3. 或一条件有一个是真,结果就是真,条件都是假,结果才是假
  4. 且(与)-条件都为真,结果才为真

    因果图中的约束条件

  • E(互斥、排他)。a、b两个原因不会同时出现,最多只有一个出现。
  • I(包含、或)。a、b、c三个原因至少有一个出现。
  • O(唯一)。a、b两个原因必须有一个出现,且仅有一个出现。
  • R(需求)。a出现时b必定出现。
    从结果方面考虑主要有1种约束条件:
  • M(屏蔽)。a出现时,b必定不出现;a不出现时,b则不确定。

因果图导出测试用例

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

  1. 找出所有的原因,原因即输入条件或输入条件的等价类。
  2. 找出所有的结果,结果即输出条件。
  3. 明确所有输入条件之间的制约关系以及组合关系。
    • 哪些条件不能组合到一起,哪些条件可以组合到一起
  4. 明确所有输出条件之间的制约关系以及组合关系。
    • 哪些输出结果不能同时输出,哪些输出结果可以同时输出
  5. 找出什么样的输入条件组合会产生哪种输出结果
  6. 把因果图转换成判定表/决策表。
  7. 为判定表/决策表中的每一列表示的情况设计测试用例。

案例参考

交通一卡通案例

  • 系统只接收50或100元纸币,一次只能使用一张纸币,一次充值金额只能为50元或100元
  • 若输入50元纸币,并选择充值50元,完成充值后退卡,提示充值成功;
  • 若输入50元纸币,并选择充值100元,提示输入金额不足并退回50元;
  • 若输入100元纸币,并选择充值50元,完成充值后退卡,提示充值成功,找零50元;
  • 若输入100元纸币,并选择充值100元,完成充值后退卡,提示充值成功;
  • 若输入纸币后在规定时间内不选择充值按钮,退回输入的纸币,并提示错误;
  • 若选择充值按钮后不输入纸币,提示错误

判定表

判定表的组成

  • 条件桩:问题的所有条件
  • 动作桩:问题的所有输出
  • 条件项:针对条件桩的取值
  • 动作项:条件项的各种取值情况下的输出结果

    相当于将输入改为条件装桩,输出改为动作桩

判定表法的步骤

  1. 列出所有条件桩和条件桩
  2. 填入条件项
  3. 填入动作项
  4. 简化判定表(合并相同或相似规则)

案例

怎样称为一个好学生?遵纪守法的前提下,学习成绩好是一个好学生、品德高尚也是一个好学生;(只要违法乱纪就绝对不是一个好学生;成绩和品德有一项,再加遵纪守法也是好学生)

-代表任意值

场景法

概述

场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。

  • 当拿到一个测试任务时,我们不是先关注某个控件的边界值、等价类是否满足要求而是先要关注它的主要功能和业务流程是否正确实现,这就需要使用场景法来完成测试
  • 当业务淘程测试没有问题,也就是该软件的主要功能没有问题时,我重点从边界值、等价

    在冒烟测试时也主要采用场景法进行测试
    案例

    用例场景的定义

  • 场景法中两个重要的概念
    • 基本流:按照正确的业务流程来实现的一条操作路径(模拟正确的操作流程
    • 备选流:导致程序出现错误的操作流程(模拟错误的操作流程)
    • 还有补充一些异常情况
  • 用例场景是用来描述流经用例路径的过程,这个过程从开始到结束遍方用例中所有基本流和备选流。
  • 场景法设计测试用例时,需要覆盖系统用例中的主成功场景扩展场景
  • 事件的触发时的情景便形成场景
  • 同一事件的不同触发顺序和处理结果形成了事件流

案例

1
2
3
4
5
6
7
8
9
使用场景法测试QQ登录功能。
- 输入正确的账号和密码后点击“登录”按钮,程序能正常登录
- 输入正确的账号,错误的密码后点击“登录”按钮,程序应给出错误提示
- 输入正确的账号,不输入密码,点击“登录”按钮,程序应给出错误提示
- 不输入账号和密码,直接点击“登录”按钮,程序给出错误提示“请您输入账号后登陆”
- 不输入账号,输入正确的密码,点击“登录”按钮,程序应给出错误提示
- 输入错误的账号,正确的密码,点击“登录”按钮,程序应给出错误提示
(更多……)
*********列出测试用例矩阵*************

流程分析法

流程分析法主要是针对测试场景类型属于流程测试场景的测试项下的测试子项进行设计,是从白盒测试设计方法中的路径覆盖分析法借鉴过来的一种方法。

  • 在白盒测试中,路径就是指函数代码的某个分支组合,路径覆盖法需要构造足够的用例覆盖函数的所有代码路径。(就是测试所有分支)
  • 在黑盒测试中,若将软件系统的某个流程看成路径的话,则可以针对该路径使用路径分析的方法设计测试用例

优点

  • 降低了测试用例设计难度,只要搞清楚各种流程,就可以设计出高质量的测试用例来,而不需要太多测试方面的经验
  • 在测试时间较迫的情况下,可以有的放矢的选择测试用例,而不用完全根据经来取舍

    流程分析法步骤

  • 第一步:详细了解需求;
  • 第二步:根据需求说明或界面原型,找出业务流程的各个页面以及各页面之间的流转关系;
  • 第三步:画出业务流程(产品经理使用 Axure软件制作);
  • 第四步:写用例,覆盖所有的路径分支
    案例

流程分析法的总结

流程分析法适用于有先后顺序的测试:常用于业务流程、安装流程等
流程测试没有问题并不能说明系统功能没有问题
还需要针对每步功能进行测试。对于包含复杂流程的系统,只有功能点和处理流程都进行测试覆盖,才算是比较充分的测试。

错误推测法

错误推测法是指利用直觉和经验猜测出出错的可能类型,有针对性列举出程序中所有可能的错误和容易发生错误的情况,它是测试经验丰富的测试人员喜欢使用的一种测试用例设计方法

正交表

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

正交表的概述

正交表:一种特制的表,一般的正交表记为:Ln(mk

  • n是表的行数,也就是需要测试组合的次数+
  • K是表的列数,表示控件的个数(因素的个数,或因子个数)
  • m是每个控件包含的取值个数(各因素的水平数,即各因素的状态数)
    如:L9(34
  • 有4个控件
  • 每个控件有3个取值
  • 9为需要测试的组合个数
  • 叫4因素3水平
    常用正交表

正交表使用步骤

  1. 根据所测程序千控件的个数(因素)以每个控件的取值个数(水平),选取适的正交排
  2. 把控件及其取值列举出来,并对其进行编号
  3. 把控件及其取值映射到正交排列表中
    1. 把正交排列表中的ABCD(因子)分别替换成4个控件
    2. 把每列中的1.2.3(状态)分别换成这个控件的3个取值(水平),排列顺序要按照表中给出的顺序
  4. 根据映射好的正交排列表编写测试用例
  • 使用正交排列法的局限性 目前常见的正交排列表只有前面附录文件中给出的几种即使是已有的正交排列表,基本都要求每个控件中取值的个数要相等,这在实际软件中很少遇到。
  • 没有现成的正交排列表怎么办?

    通过正交排列法的学习,我们更多的应该学习到一种测试思想,也就是在从所有组合集合中选取测试数据时,应该均匀的选取其中的组合作为测试用例,而不要只在某个局部选取数据。

    混合正交表

    正交表生成工具Allpairs

    很对多情况下无法找到合适的正交表,就要使用正交表生成工具使用步骤
    1
    2
    3
    4
    5
    6
    7
    8
    9
    1、制作取值表(只列出数据即可,不用编号)
    2、复制取值表的数据,放到文本文档中保存
    (注意不要更改任何格式,例如文件叫Test2.txt)
    3、把文本文档放在 allpairs文件夹中
    4、 win+r后输入cnd进入控制台
    5、进入 allpairs文件夹6、在控制台中输入
    allpairs. exe Test2.txt>Test21.txt
    (Test21是自己起的名字,用来存放生成的组合用例,
    可以自动生成,不必提前建好)

    测试方法的选择

    在确定测试方法时,应遵循以下原则
  • 根据程序的重要性和一旦发生故障将造成的损失来确定测试等级和测试重点。
  • 认真选择测试策略,以便能尽可能少的使用测试用例,发现尽可能多的程序错误。因为一次完整的软件测试过后,如果程序中遗留的错误过多并且严重,则表明该次测试是不足的,而测试不足则意味着让用户承担隐藏错误带来的危险,但测试过度又会带来资源的浪费。因此测试需要找到一个平衡点。
  • (1)拿到一个测试任务时,先关注它的主要功能和业务流程、业务逻辑是否正确实现,考虑使用场景法
  • (2)需要输入数据的地方,考虑采用等价类划分法,包括输入条件和输出条件的等价划分,将无限测试变成有限测试。
  • (3)在任何情况下都必须采用边界值分析法。这种方法设计出的测试用例发现程序错误的能力最强。
  • (4)如果程序的功能说明中含有输入条件的组合情况,则一开始就应考虑选用因果图和判定表法
  • (5)对于参数配置类的软件,需要考虑参数之间的组合情况,考虑使用正交排列法选择较少的组合方式(最少的测试用例获得最大的的测试覆盖率)。
    (6)对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。
    如果没有达到要求的覆盖标准,则应当再补充更多的测试用例。
    (7)采用错误推断法再追加测试用例—依靠测试工程师的经验和智慧。

如何选择?

  1. 如果测试功能和流程,要使用场景法
  2. 需要输入数据的地方,我们使用等价类划分法,要注意配置边界值划分来测试
  3. 如果有条件组合的情况,我们需要使用因果图法制作判定表
  4. 配置类软件,组合比较多的。我们使用正交表来科学的选择测试用例
  5. 如果没有达到覆盖标准,就增加一些测试用例
  6. 依靠经验追加一些测试用例(错误推断法)

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×