文章目录

  • 3.3 基于组合技术和组合优化的方法
    • 3.3.1 判定表(决策表)测试
    • 3.3.2 因果图法
    • 3.3.3 两两组合(Pair-wise)方法
    • 3.3.4 正交实验法
    • 3.3.5 基于场景的测试
  • 黑盒测试方法比较

3.3 基于组合技术和组合优化的方法

3.3.1 判定表(决策表)测试

使用决策表测试方法的原因
  因为等价类测试独立性假设,忽略输入条件的相互关联,所以测试用例存在严重的冗余。
  决策表是功能性测试方法中最严格的。决策表的完备性保证一种完备的测试。

  对于多因素,有时可以直接对输入条件进行组合设计,不需要进行因果分析,即直接采用判定表方法。

  决策表的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合。基于决策表的测试是以等价类为基础的,测试的完备性和无冗余性通过决策表可以得到较为完美的体现。

  判定表:由“条件和活动”两部分组成,即列出一个测试活动执行所需的条件组合,所有可能的条件组合定义了一系列的选择,而测试活动需要考虑每一个选择。

判定表 元素

  • 条件桩,列出问题的所有条件
  • 动作桩:列出可能针对问题所采取的操作
  • 条件项:针对所列条件的具体赋值
  • 动作项:列出在条件项(各种取值)组合情况下应该采取的动作。
  • 规则:任何一个条件组合的特定取值及其相应要执行的操作。


例:

判定表方法步骤

决策表的化简
前提条件:1.输出完全相同; 2.输入相似:仅一个输入条件可不同,其他完全相同。
例子:
例1
对功率大于50马力的机器、维修记录不全或已运行10年以上的机器,应给予优先的维修处理

基于决策表的测试注意事项

  1. 输入条件不存在相关性,不需要使用决策表测试方法。
  2. 不处理无效等价类。
  3. 针对输入域,需要对输出域进行细化,保证测试用例更加准确。

总结

  • 目标:在特定条件下消除等价类测试的冗余
  • 基本思想:基于强组合等价类测试得到有效域上完整的测试用例集合,并通过合并化简消除用例间的冗余
  • 以强组合等价类测试为基础,遵循独立性假设

3.3.2 因果图法

适用于多种输入条件的组合,产生多种结果设计测试用例

使用步骤:

  1. 分析软件规格说明文档描述的哪些是原因(输入条件),哪些是结果(输出条件),给每个原因和结果赋予一个标示符。
  2. 找出原因与结果,原因与原因之间的对应关系,画出因果图
  3. 在因果图上标上哪些不可能发生的因果关系,表明约束或限制条件
  4. 根据因果图,创建判定表,将复杂的逻辑关系和多种条件组合很具体明确的表示出来
  5. 把判定表的每一行作为依据设计测试用例。

基本符号
原因——》结果

原因——》原因

结果——》结果

例1:某个软件规格说明书中包含以下的要求:第一个字符必须是A或B,第二个字符必须是一个数字,在此情况下进行文件的修改;但如果第一列字符不正确,则输出信息L;如果第二列字符不是数字,则给出信息M。采用因果图方法进行分析,可根据下表获得图的各种组合。


3.3.3 两两组合(Pair-wise)方法

大部分缺陷是在两个变量取值冲突的测试时被发现的 。
“Pair-wise Testing”基本原理:不测试所有的组合,测试所有的“Pair-wise ”即可。

可使用一些测试工具:CATS,OATS,AETG等

3.3.4 正交实验法

测试步骤:

  1. 确定影响功能的因子与状态
  2. 选择一个合适的正交表
  3. 利用正交表构造测试数据集

使用原因:测试组合会变得很多,如果按照传统的测试方法,会导致很大的测试工作量

设计方法:从大量的(实验)数据(测试例)中挑选适量的、有代表性的点(条件组合),从而合理地安排实验(测试)的一种科学实验设计方法 。

例子:

3.3.5 基于场景的测试

基本原理:

基本流:从系统的某个初始状态开始,经一系列状态变化后到达终止状态的过程中最主要的一个业务流程
备选流:以基本流为基础,在经过基本流上每个判定节点(包括条件判定和循环判定)处满足不同的触发条件,而导致的其他事件流

区别

场景设计的基本原则

  • 最少的场景数等于事件流的总数,即基本流与备选流的总数
  • 有且唯一有一个场景仅包含基本流
  • 对应某个备选流,至少应有一个场景覆盖该备选流,且在该场景中应尽量避免覆盖其他的备选流

例子:

测试用例设计:

测试数据设计:

总结
该法主要用于功能测试

黑盒测试方法比较

  1. 测试工作量
    测试执行工作量:

    测试用例标识工作量:

      容易使用的方法将生成大量测试用例,执行时间长,而若将工作量投入到更精细的测试方法,则执行时间会缩短。

  2. 测试效率
    局限性:存在未测试的功能漏洞和冗余测试。
    结论:功能性测试有漏洞,使用更精细的手段可缩小这些漏洞。

  3. 测试有效性
    研究测试有效性的困难:不知道程序中的所有缺陷,因此永远也不会知道给定方法所产生的测试用例是否能够发现这些缺陷。

黑盒测试使用方针

  1. 若变量引用的是物理量§,可用定义域测试和等价类测试;
  2. 若变量是独立的,可采用定义域测试和等价类测试;
  3. 若变量不是独立的,可采用决策表测试;
  4. 若可保证单缺陷假设,可采用边界值分析和健壮性测试;
  5. 若保证多缺陷假设,可用最坏情况、健壮最坏和决策表测试;
  6. 若程序包含大量例外处理,可采用健壮性和决策表测试;
  7. 若变量引用的是逻辑量(L),可采用等价类和决策表测试。

第3章 软件测试方法--基于组合技术和组合优化的方法(决策表、因果图、场景测试)相关推荐

  1. 第3章 软件测试方法--基于直觉和经验的方法

    3.1 基于直觉和经验的方法   基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例. ALAC测试:ALAC,是Act-like-a-customer(像客户那样做)的简写, ...

  2. 第3章 软件测试方法--基于输入域的测试方法(等价类、边界值)

    文章目录 3.2 基于输入域的测试方法 3.2.1 等价类测试方法 3.2.2 边界值分析方法(BVA – Boundary Value Analysis) 3.2 基于输入域的测试方法 3.2.1 ...

  3. 软件系统测试方法方案,软件测试方法及系统技术方案

    [技术实现步骤摘要] 本专利技术涉及软件测试领域,尤其涉及一种软件测试方法及系统. 技术介绍 区间运算作为一种有效的程序变量取值范围的分析方法,已经被广泛的应用到面 向路径的程序结构化测试中,如测试程 ...

  4. python面对对象建立自己的电子宠物的编码_一种基于Kinect技术的电子宠物的制作方法...

    本发明涉及电子宠物技术领域,特别涉及一种基于Kinect技术的电子宠物. 背景技术: 目前人工智能发展迅速,现在的电子宠物动作单一,并且不能够与人进行交互,对周围的环境不能够准确识别,面对用户的动作只 ...

  5. php做一个学生管理系统,基于php技术的学生管理系统实现方法

    标签和路由Route::get("dologin","Admin\\login@dologin")连接控制器loginController并加载dologin( ...

  6. 第3章 软件测试方法-- 软件度量

    文章目录 3.8 软件度量 3.9 软件质量度量 3.9.1 影响软件质量的因素 3.9.2 质量保证模型 3.9.4 缺陷排除效率 3.10 软件过程度量 3.10.1 软件过程度量概念 3.10. ...

  7. 基于智能网卡的vhost-user优化接收方法-学习笔记

    本文是对阿里云文档的学习笔记 1. 为什么需要智能网卡 2. 智能网卡解决方案 3. 接受端的数据通路 4. 零拷贝优化方案 5. 待续 流程图很清楚,不过具体细节没有吃透,后续会有整理

  8. 《软件测试方法和技术》 读书笔记

    <软件测试方法和技术> 读书笔记 2014-07-17 第一章 引论   1.3 什么是软件测试   1.4 软件测试与软件开发的关系 第二章 软件测试基本概念   2.1 软件缺陷   ...

  9. 软件测试 atp,基于SCADE模型的车载ATP软件测试方法

    摘要: 列车自动防护(Automatic Train Protection,ATP)是列控系统的核心,负责监控列车速度,防止列车超速,是典型的安全苛求系统.作为安全苛求系统,对车载ATP进行严格的测试 ...

最新文章

  1. 推特雪花算法 java实现
  2. 阻止应用继承的NTFS权限
  3. Ollydbg 中断方法浅探
  4. seleniumpython定位网页元素方法_使用Selenium对网页元素进行定位的诸种方法
  5. php学校成员,php访问成员变量和成员方法
  6. 波士顿动力又有新视频:机器狗要开门,人类真是拽不回来
  7. [GCN] Modification of Graph Convolutional Networks in PyTorch
  8. Set A Light 3D Studio 2.0 for Mac(3D摄影棚布光软件)
  9. SpringMVC:学习笔记(7)——验证器(JSR303)
  10. java读取txt生成excel_读取TXT文件内容,生成Excel文件
  11. 考研数学易错知识点总结
  12. SpringBoot项目网页加载出现Whitelabel Error Page
  13. mac关闭VPN之后,浏览器就不能够正常上网了(图解)
  14. 关注博主即可阅读全文?不存在的
  15. 百战程序员python资源_【百战程序员】Python 文件I/O
  16. matlab自带函数实现高斯滤波
  17. python miio 连接小米网关_智能家居沟通不再难,小米米家智能多模网关发布,三种协议全支持...
  18. 纯前端实现下载xlsx.js实现下载
  19. 计算机里的游戏怎么输入,电脑版悟饭游戏厅金手指怎么输入 | 手游网游页游攻略大全...
  20. 2018年全球人工智能十大融资事件:最高单轮超150亿

热门文章

  1. 电商平台大数据分析指标
  2. 竣工测量心得体会_修改中
  3. 八步构建跨渠道归因分析
  4. aws mysql迁移_AWS Data Migration Service-AWS数据库迁移服务-AWS中国区域
  5. struts新人培训1
  6. javascript常用的小技巧
  7. angular实现div盒子高度自适应
  8. 用户代理字符串_用户代理字符串(或者,不要让我追随您)
  9. 华为LAB实验室4-朴素贝叶斯
  10. 京东APP鸿蒙版开发实践,有点牛逼哦!