PyModel简介

PyModel是一个用Python编写的基于模型的开源测试(所谓的MBT)工具。

在基于模型的测试中,我们编写一个模型,然后根据这个模型产生用例。模型也会检查测试输出。基于模型的测试之所以有用是因为测试用例如此之多,不太可能全部都手工编写。

在PyModel的所包含的例子中可以看到,有为网络socket建立的模型和相应的测试脚本,一个通信协议,嵌入式控制器,一些数据结构,一个多线程的程序和一个web程序。

PyModel包含一个验证模型的分析器,可视化它们的行为,并且检查它们的安全属性。

PyModel可以生成类似于单元测试的离线测试,但是应用PyModel的典型方式是在运行中进行测试。使用这种方式,test runner会在测试运行时进行计算,所以test runner可以尽可能的长。在运行中进行测试可以解决被测系统的不确定性和异步问题。

PyModel可以使用组合来合并模型,通过场景编程来指导测试,并且根据策略编程来确定重点测试范围。

PyModel提供了3个主要的程序:

pma,PyModel分析器,生成有限状态机(FSM)并且通过探索模型程序来计算属性,FSM,测试套件。

pmg,PyModel制图工具,从FSM生成一个文件或者图形化的命令,生成的结果可以被Graphviz dot命令处理然后生成多种格式的图形化文件,比如

svg,pdf和ps。

pmt,PyModel测试执行程序,显示测试路径,生成离线测试,执行离线测试,生成和执行在运行中测试。

第四个程序是pmv,PyModel查看工具,可以调用pma,pmg和Graphiz dot命令(来显示pmg生成的图形),pmv非常简洁和方便,所以分析和展示只需要一条命令就可以完成。

使用pma和pmg(或者pmv)来可视化和预览pmt中定义的行为。pma所创建的图的每一条路径都会被pmt生成的test run覆盖到,调用pma和pmt的参数完全一样。单独的pma工具在可视化和安全分析方面也非常有用。

正在开发中的PyModel可以从Github上找到https://github.com/jon-jacky/PyModel。

PyModel需要使用Python2.6以上的版本(因为用到了 itertools.product

PyModel的开发受到了NModel的影响,但并非NModel的翻译版本或者再实现。

你可能感兴趣的:(PyModel简介)