基于模型测试01

作者&投稿:利哄 (若有异议请与网页底部的电邮联系)
~ 一、概述

    MBT中文名称为基于模型的测试,基于模型的测试属于软件测试领域的一种测试方法。

二、背景

      软件测试是一款软件产品质量的最后一道防线,是产品线上前必不可少的、最重要的一环。每一款高质量的软件产品背后,都蕴含了大量的测试工作。而且测试工作很可能是软件开发过程中最昂贵、劳动最密集的工作。在设计测试用例的过程中,或多或少的存在着问题,使得软件测试结果不那么理想。下面引入新的测试方法,基本模型的测试,是自动化测试的一个分支,它将测试用例的设计依托于被测系统的模型,并基于该模型自动生成测试用例的技术。从质量保证的角度来看,我们可以制定测试的内容,但是无法保证测试会覆盖所有可能的组合,而MBT则允许软件开发和测试人员,只关注建立系统的正确性及模型的规范性,再通过专门的MBT工具根据不同的测试用例设计策略从系统模型生成可靠的测试用例。

    与传统测试相比,优点:

         (1)测试用例的维护更轻松:维护好模型,无需关注测试用例的细节

         (2)软件缺陷发现的更早:在构建被测系统模型的过程中,需要对被测系统有比较全面的理解,那么在早期建模过程中就可以发现被测系统中的一些问题,不需要等到执行大量用例时才发现;

         (3)测试自动化的水平更高:建模后,MBT可以自动生成测试用例,不需要人工编写测试文档;

         (4)测试覆盖率变得更高,使得彻底的测试(即:穷尽测试)成为可能:传统测试设计的过程中依赖人工,MBT生成测试路径时会避免人工设计测试用例时的思维局限性,生成更丰富的测试路径用例,但是是否需要执行“彻底”的测试由漏测对业务的影响决定。MBT只是从技术上提供了穷尽测试可能性。

         (5)基于模型间接维护测试用例的方式更高效:传统维护时需要依赖人工,需要耗费大量的人力和时间成本,重新测试设计。使用MBT只需要维护好测试模型即可,生成测试用例的工作可以由MBT工具自动完成;

     缺点,即未广泛推广的原因:

         (1)学习成本较高:要求开发人员、测试人员都精通建模,和工具的选型;

         (2)使用MBT的初期投资较大:已有的MBT工具不一定适合自己产品,定制的话需要考虑扩展性,和处理复杂逻辑,也就是要花费大量时间和精力;

         (3)用例爆炸

   总结下,测试方法多种多样,MBT和传统测试相比,各有优劣。如果一个应用的任何组件都可以通过模型来模拟、通过驱动程序来驱动,并可以通过测试结果来比较的话,那么这个应用是MBT的最佳候选者。

   2.1  通用流程

 2.2  Model design (模型设计)

  模型设计,目的是用来为构造测试用例而进行的被测系统描述

(1)模型关注点:

     (2) MBT模型分类:

2.3  Tests selection ( 测试需求选择)

             指导测试用例生成器( test generation)如何生成用例

2.4   Tests  paths generation(测试用例生成)

           按模型及测试需求选择来生成测试用例。GraphWalker就是完成这部分工作的一个开源的java工具。

2.5   Tests execution(执行测试)

           执行测试,并比较预期

2.6  FSM举例:海拍客mallpc 登录相关功能建模,如下

一个箭头,代表一次测试动作;

一个节点,代表一次测试验证;

2.7 常见工具 :BPM-X、fMBT、GraphWalker

三 、GraphWalker简介

 

 GraphWalker就是一个基于测试模型的用例生成工具,主要支持于FSM, EFSM模型。它以有向图的形式读取模型,生成测试路径,适合于多状态以及基于事件驱动的状态转换的系统。

四、使用GraphWalker建模

有向图中,顶点(或节点)表示一些期望的状态,并且边(弧,箭头,过渡)表示为了实现期望的状态需要做的任何动作;

 4.1 建模工具:yEd

4.2 建模规则1

      4.3 建模规则2

    4.4 建模keywords

4.5 支持多模型:

     GraphWalker可以在一个会话中使用几个模型。这意味着在生成路径时,GraphWalker可以选择跳出一个模型到另一个模型。当将不同的功能分为多个模型时,这是非常方便的。

     

多模型offilne运行举例:

java -jar graphwalker-cli-4.0.0-SNAPSHOT.jar -d all offline -m Model_A.graphml random(edge_coverage(100)) -m Model_B.graphml random(edge_coverage(100)) -m Model_C.graphml random(edge_coverage(100)) -m Model_D.graphml random(edge_coverage(100)) –o

当路径生成到达模型A中的顶点v_B时,它必须考虑关键字SHARED:B ..这将告诉GraphWalker使用相同的名称搜索所有其他模型的同一个关键字:B.在我们的例子中,只有一个,它在模型B中。

现在GraphWalker决定是跳出模型A,进入模型B中的顶点v_B,还是留在模型A中。这个决定是基于随机的。

多模型特性:

五、路径生成器和结束条件

六、GraphWalker工作方式

以作为第三方库为例: 使用GraphWalker第三方库实现模型自动化测试

七、GraphWalker命令行:此处省略

八、Restful或WebSocket服务的区别:此处省略

九、Web Socket API接口:此处省略

十、REST API接口:此处省略

十一、GraphWalker源码:

GraphWalker工具核心:graphwalker-core

参考资料:官网 http://graphwalker.github.io/

备注:

FSM :有限状态机 Finite State Machine

EFSM:扩展有限状态机


高达模型TV和MG有什么区别?那个更完美?
高展示性和高可动性于一体的完美模型系列。 价格会很高,常常需要1万日元以上... 最后,TV与MG虽然都是1:100,但TV版是没有内构的,所以可动性不如MG,...但有此一说为此系列是近年来BANDAI新技术的测试品。 ◆GUNDAM SEED TV版1\/60 & 1\/100 SCALE MODEL GUNDAM SEED TV版是在SEED动画热播后派生出的系列...

盘点组织诊断必备5个模型,它最受阿里欢迎!
盖洛普公司发明的Q12方法在国际大企业中引起了很大反响,其主旨是通过询问企业员工12个问题来测试员工的满意度,并帮助企业寻找最能干的部门经理和最差的部门经理...韦斯伯德的六盒模型是以组织内部视角、不断检视业务实现过程的利器。它可以帮你“盘点现状”、“打开未来可能性”,以及搭建起现实与未来的桥梁。 相较于前...

GraphPadPrism统计教程如何理解数学模型
背景:比色化学分析基于一个简单的原理。向样本中加入适当的反应物,引发化学反应,反应产物是有色物质。终止反应时,有色产物的浓度与待检测的物质的初始浓度成正比。模型:由于光密度与有色物质的浓度成正比,光密度也与所检测的物质的浓度成正比。现实检查:从数学上讲,该方程适用于任何x值。但结果...

02 隐马尔可夫模型 - HMM的三个问题 - 概率计算问题
这个时候,我们不知道隐含条件,即不知道状态值:①→③→②→②→③ ; 我们如何根据π、A、B求出测序列为“白黑白白黑”的概率? 下面给出解决方案。前向-后向算法 给定模型λ=(A,B,π)和观测序列Q={q1,q2,...,qT},计算模型λ下观测到序列Q出现的概率P(Q|λ);回顾上面的案例...

2022年私域运营必须掌握的20个模型
8.TOFA模型 9.用户上瘾模型 10.A\/B测试 11.数据分析六步法 12.社群裂变模型 13.留存分析模型 14.用户裂变病毒系数K值模型 15.组织架构模型 16.PDCA复盘模型 17.私域标签模型 18.卡诺KANO模型 19.OKR 20.FAST模型 01.AARRR模型 适用场景:用户增长\/社群运营 AARRR模型是私域流量运营中最为常见的模型之一。从获...

如何建立胜任力模型?
也就是说,胜任力模型相当于是在不带任何有色眼镜的情况下,直接拿着录像机把员工的行为、言谈等细节都录下来,然后再总结和提炼出来的。 胜任力素质最终都能归结为某种行为。现在,一般借助冰山模型来帮助大家理解素质。从浮在水面上的知识、技能,依次到水面下的价值观、自我认知、个性,直到最底层的动机,都综合在素...

logistics模型拟合的好坏用一般线性回归中的判定系数判断吗
λ²统计量很小就意味着预测值之间没有显著差别,表示这一模型很好地拟合了数据,相反统计量很大时,统计检验就显著,于是提供拟合不佳的证据。当拟合不好时,可以用残差和其他诊断测量来说明每个案例对模型拟合的影响以便寻找模型不合理的原因。1.2 Hosmer-Lemeshow拟合优度指标 Hosmer和Lemeshowv于...

广州车展极越01公布OCC方案,“纯视觉”方案领先全球
    但最被车主和行业关注的点仍然在于:相比传统认知的智能驾驶汽车,极越01作为全球首台AI汽车机器人,新在何处,强在何处?实际上,在车展现场体验感受下来,实车给人的感觉更像是能够自然交流、自由移动、自驱学习的新物种,在算力、大模型和智能应用的支持下,极越01已然...

【ZBrush教程】01-ZB基础操作(下)
保存项目 会保存材质,渲染设置,摄像机角度,动画,贴图,背景颜色等信息。【文件】——【另存为】文档文件 (格式:zbr)【文档】——【另存为】相当于保存的是一个2.5D的图片,保存后如果再重新打开该文件,是无法再编辑模型的。所以千万不要用这个模式来保存还需要修改的模型。

【投资之道】查里芒格的思维格栅模型
03 思维格栅模型 思维格栅模型是很多投资者耳熟能详的概念,严格意义上说,思维格栅模型属于多元思维的一种,不过格栅思维模型集众多学科于一体,在多元思维的基础上注重综合学科的交互和新旧思想相结合等特点。格栅模型是一种对纵横交错的栅栏的比喻,越是理解这种比喻,越是容易感受到思维栅栏模型的复杂性...

章丘市18917334199: 什么是基于模型测试 -
苑命川立: 机电产品的复杂程度越来越高,为缩短研发周期、降低成本,工程师需在设计早期综合考虑产品的一维模型、三维模型、控制模型等,在概念阶段对复杂产品的架构进行验证和优化,并能够在研发早期发现和解决机-电-液-控系统设计中的问题.基于模型的系统工程的解决方案,为复杂产品的研制提供了一个模型驱动的系统工程工作环境,从需求阶段开始即通过模型(而非文档)的不断演化、迭代实现产品的设计,为各方提供一个公共、通用、无二义性的设计信息交流.通过模型的结构化定义可在设计初期清晰刻画产品架构、功能与行为等各方面的需求,并通过仿真测试对设计方案进行验证和优化.

章丘市18917334199: 软件测试评估的方法有哪些;分析这些方法有哪些特征. -
苑命川立: 1. 黑盒测试 黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出.整个测试基于需求文档,看是否能满足需求文档中的所有要求.黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适...

章丘市18917334199: 用matlab建立一个二阶系统模型,测试在不同输入下的响应 -
苑命川立: 参考代码: % 用传递函数的形式创建二阶系统 1/(s^2+s+1) G=tf(1,[1 1 1]);% 求阶跃响应 subplot 221 step(G)% 求脉冲响应 subplot 222 impulse(G)% 求余弦输入响应 subplot 223 t = 0:0.1:10; u = cos(t); lsim(G,u,t);% 求正弦输入响应 subplot 224 t = 0:0.1:10; u = sin(t); lsim(G,u,t);都是很基础的东西,直接调函数就行,似乎没什么好解释的了,如果实在看不明白再问吧.

章丘市18917334199: 软件测试工程师考试要考哪些内容 -
苑命川立: 软件测试工程师考试 分几项考试 都考什么内容的 基本要求: 1.熟悉软件质量、软件测试及软件质量保证的基础知识; 2.掌握代码检查、走查与评审的基本方法和技术; 3.掌握白盒测试和黑盒测试的测试用例的设计原则和方法; 4.掌握单元测试...

章丘市18917334199: 期货模型测试如何应对换月 -
苑命川立: 一般来说,相应的软件都有一个叫"当月连续“的合约,又或者是”主力连续“”等等,如文华,开拓者,金字塔这些都有对应的当月主力合约的连续指数.用这个测试模型即可.如果是隔月隔季合约就比较麻烦了,但一般来说都用主力合约为主.

章丘市18917334199: 面向对象测试模型包括哪几个要素 -
苑命川立: 面向对象只是程序设计的一种方法、思想,对于测试而言,基本还是 黑盒、白盒、灰盒这三种,是否面向对象对测试影响不会很大,不过很多时候看要基于UML的测试模型来定的

章丘市18917334199: v模型、W模型、H模型有什么区别? -
苑命川立: 1.软件测试过程模型-V模型 是软件开发瀑布模型的变种,主要反映测试活动与分析和设计的关系;51Testing软件测试网局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现 软件测试过程模型-...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网