之前基于DBT的page-model模式,在页面数量和功能很大的情况下的伸缩性,扩展性都比较的差。

  需要更多的mapping来减少工作量,想到了新的测试模式。

  在MBT中提到了FSM对于web service测试的优越性

  首先在MBT对于web service的测试中,总结了几点主要的优点:

  更准确的描述Web 服务之间的动态交互行为。

  有利于测试用例的生成和测试结果的分析。

  基于FSM的测试用例,有利于自动化的实现。

  基于FSM的测试覆盖率准则,有利于Web服务测试的充分性。

  定义一个FSM,FSM为一个六元组(S,S0,δ,λ,I,O),其中:

  S 为一个有限集合;

  S0∈S是起始转台;

  δ:S×I×O->S是状态状态函数;

  λ: 是输出函数;

  I 为输入字符集;

  O 为输出字符集;

  状态集 Q={q0,q1,q2,q3,a4……}

  输入集 I={userinfo, continue_operate, buy, finish}

  输出集 O={Verifi_ACC,Invalid_ACC,showinfo,showresults,showboughtlist}

  字母表 R={userinfo/Verifi_ACC,userinfo/Invalid_ACC,continue_operate/showinfo,buy/showresults,finish/showboughtlist}

  函数表

  q0 = userinfo/Verifi_ACC × hasitem -> q1

  q0 = userinfo/Verifi_ACC × noitem -> q2

  q0 = userinfo/Invalid_ACC × true -> q3

  q1 = continue_operate/showinfo × true -> q4

  q2 = continue_operate/showinfo × true -> q5

  ……

  这样产生的状态集即为相对应的测试用例。而函数即为相应的逻辑处理,这样对于web service的自动化测试框架资本成型了。

  那MBT对于web ui自动化测试是否适用呢?之后Jason会详细地介绍。

  当自动化测试如火如荼的时候,测试2.0时代已经悄然来临。

  更多的时间是花在自动化测试脚本编写上,还是其他?让自动化更加自动化。之前jason已经介绍了相关的基于有限状态机的测试(MBT)的测试,在工具的实践上留下点memory.

  model测试在国外不少公司已经应用起来了。 NModel,JunitModel,PyModel越来越多的语言实现了MBT的理论。

  介绍下JunitModel,JunitModel的理论还是基于FSM的机制,对于已知的状态和步骤进行自动化case的生成和执行。

  这里我们可以使用HtmlUnit集成JunitModel来实现对于web工作流的测试。

  为什么选择HtmlUnit, UI操作的繁琐和高异常性更多的选择内存化自动化测试工具与JunitModel对接。