What is Tool Robogenerator?

Test Data generator for `Robot Framework <http://www.robotframework.org>`

What is the tool’s purpose?

You know those ugly bugs that users report that somehow were missed by all your
ATDD-, TDD- and exploratory testing?
Those bugs that lurk in the corners of complexity of the system that you are building.
Those bugs that will make users of your application hate you..

This tool is here to help you seek and destroy those bugs before the users will find them.

It gives you the ability to generate a huge number of tests that can go through
a very vast number of similar (or not so similar) test scenarios.

What is it exactly?

If you know Regular Expressions:
A regular expression is a pattern that represents all the possible strings that match that pattern.
Robogenerator works in a similar way. A machine represents a set of tests in a compact way.
This machine can be used to generate all (or part of) the tests that it represents.

If you know Model-Based Testing or automata theory:
With Robogenerator you define an extended finite state machine (in a python grammer) that represents a set of tests.
Robogenerator also contains algorithms that can be used to generate real executable Robot Framework tests from a Robogenerator model.

If you know Combinatorial Testing or like data driven testing:
With Robogenerator you can define sets of data and rules about that data, that can be used to generate data driven tests
(and also keyword driven tests). This allows you to keep your data in compact sets and let the system generate the real
test data vectors from there.

The language used to describe the model

It will use pure python grammar, there are advantage and disadvantage about this.

Advantage:

Very flexible, all python related grammar could be  used here

Disadvantage:

For tester who totally has no programming experience or weak competence on it, it is a barrier for them to use this framework and turn their test ideas into test automation case.

Here I would like to introduce this tool by several actual examples

No1: using combinatorial techniques

1. How we describe our test

2. How to filter out invalid test data

3 Currently we support 4 kinds of data generation algorithm.

random ----generate test data randomly

DFS---- deep first search, generate all of possible combinations

pairwise--- generate test data in pairwise algorithm

smart-random-------generate test data randomly, and in next run, it will only select un-tested combination in all possible combination

4.  Could indicate how many test case to generate

5. Could indicate the style which is used to display test data

normal---- normal Robot Test Case

atdd--------use Robot Template method, so the input/output model in test case would be more visible

6. The test case name would adapt with actual data combination

7. The output filename could be indicated

5.1the output file could be indicated inside model file, or indicated as a command-line argument

5.2 The output file could be in TXT, HTML,or other valid Robot Case format

8. The case step should be a  keyword which has been defined inside Robot Resource file or python test library

9. Could indicate actual test device info, such as ip, could test data could come from actual test device,  it could be well adapted to different hardware topology.

You could use your own test library to control how to use this feature

9.How to generate test case:

Assume the model filename is create_and_delete_volume_test.py , and randomly generate 10 test case, output file is show.html

robogenerator  - g random –t 10 –o show.html –ip *.*.*.*  create_and_delete_volume_test.py

No2: using model-based testing with finite state machine

1. How to describe our MBT test model

2. different strategy to test

    ShortestPath  ----- Generate case according to China Postman graph algorithm, which could balance test feedback cycle and test coverage 
    StateCoverage ------- When need to select next step, it will select the minimum state as their next State
    ActionNameCoverage ------- Select least covered Action Name To test
    DynamicRandom ------------- Randomly select next State but try to avoid already tested
 
 
    
     generate test case with shortest path cost,assume each step has same weight,and output to show.html
        robogenerator SIP_Call_Service.py –-strategy ShortestPath –o show.html 
     generate test case with ActionName coverage, and generate 1 case, each case will limit test steps to 100
        robogenerator SIP_Call_Service.py –-strategy ActionNameCoverage –t 1 –n  100 –o show.html 
 
 

No3:using both combinatorial and state-machine model techniques

At first it will generate test data according to actual test env, and update parameters, and then generate test case according to specified test strategy.

robogenerator –g dfs –ip *.*.*.* –strategy ShortestPath –o show.html

Other extended Function (Could generate State-machine based graph)

If you have installed tool GraphViz, then you could use robograph (a tool inside robogenerator)  to generate state-activity graph by your state-machine model.

1. At first

robograph  SIP_Call_Service    # without .py suffix

then there will be a file SIP_Call_Service.dot in current directory

Then you use Gvedit.ext to open file  SIP_Call_Service.dot .

It will show following picture:

From the picture we could see, there are a lot of  possible sequence to execute all possible test case, if we don’t have tool help, it will be difficult for us to design test procedure which could balance test cost and test coverage.

转载于:https://www.cnblogs.com/blue_energy/archive/2012/10/22/2734003.html

Introduce MBT tool robogenerator相关推荐

  1. 牛人,多看看他们写的东西

    计算机大师 Donald E. Knuth(高德纳) 算法大师,我最崇拜的计算机科学家,没有之一!不认识高爷爷的人别说自己是学计算机的.<The Art of Computer Programm ...

  2. php array_key_exists() 与 isset() 的区别

    一个基本的区别是isset()可用于数组和变量,而array_key_exits()只能用于数组. 但是最主要的区别在于在设定的条件下的返回值. 现在我们来验证一下这个最主要的区别. array_ke ...

  3. ssis工具_SSIS中的DTExec实用工具概述

    ssis工具 DTExec is a tool used to configure and execute SQL Server Integration Services (SSIS) package ...

  4. 一些牛人榜样,多看看他们写的东西(后续整理牛人的blog等)

    一些牛人榜样,多看看他们写的东西(后续整理牛人的blog等) 分类: 1.2.1.1 职业规划 1.2.1 政法经管 1.2.1.2 行业知识2012-06-27 22:51 5832人阅读 评论(0 ...

  5. 一些牛人榜样,多看看他们写的东西

    计算机大师 Donald E. Knuth(高德纳) 算法大师,我最崇拜的计算机科学家,没有之一!不认识高爷爷的人别说自己是学计算机的.<The Art of Computer Programm ...

  6. 【论文阅读】An Extrinsic Calibration Tool for Radar, Camera and Lidar

    目录 An Extrinsic Calibration Tool for Radar, Camera and Lidar Abstract I. INTRODUCTION II. RELATED WO ...

  7. iOS开发8:使用Tool Bar切换视图

    之前讨论的都是单视图应用程序,而在实际应用中,我们可能要多个视图,并根据用户的需要切换视图. iOS中几种典型的多视图程序: (1)Tab Bar Application:程序的底部有一排按钮,轻触其 ...

  8. 安装 Enthought Tool Suite 时遇到的问题

    文:fasiondog  来源:http://blog.csdn.net/KongDong/archive/2009/05/26/4217942.aspx 因想研究一下Enthought Tool S ...

  9. RHEL5.1安装VM TOOL及中文乱码终极解决方案

    VMWARE tool 主要的功能就是让用户在虚拟机和真实系统之间实现无缝切换,这个功能很方便,当然VMware Tools最主要是实现linux和windows的文件共享. 1.挂载VM tool的 ...

最新文章

  1. 我的新浪微博,顺便总结下近况
  2. ThinkPHP5 Model分层及多对多关联的建立
  3. 以软件开发生命周期来说明不同的测试的使用情况
  4. ZBrushCore中文版
  5. 64位指针膨胀 java_Java 程序优化知识笔记
  6. 关于UNION ALL与 UNION 用法和区别
  7. 一个字稳,云原生产品家族支撑冬奥会九大业务场景,打造云上奥运新体验
  8. 自动化测试工具selenium python_自动化测试工具之Selenium(一)-----Selenium的介绍以及安装...
  9. YUV与像素值之间的关系
  10. php文件上传前端页面样式,HTML实现美化上传文件样式
  11. 【零基础学Java】—Scanner类的使用( 十)
  12. 浏览器桌面通知(notifications)
  13. abb变频器如何拷贝_教你变频器参数怎样简单设置
  14. 2. Linear Model
  15. 滚动电梯卡延期复制教学
  16. [音乐天堂]爱尔兰的小童星Declan
  17. 公司中常见的项目类型
  18. 【浅谈递归(一)】递归的基本思想
  19. 手机软件开发环境种类介绍(转)
  20. Proxmox VE(PVE) 添加Web控制台显示CPU和主板温度

热门文章

  1. 课代表|支付500万美元,为什么连FBI都无法解开美国油管的勒索软件密码?
  2. 哪些是MySQL用于放置一些头文件的目录_下面选项中,哪些是MySQL用于放置一些头文件的目录?...
  3. 故障分析 | 从 data_free 异常说起
  4. 无线Mesh网络 介绍
  5. 公司建网站多少钱?【网站多少钱】
  6. 最大化最小值和最小化最大值
  7. c 语言 批量更改文件名,rename 批量修改文件名
  8. 拒绝忽悠——Python帮你来网购
  9. [论文阅读1]Re-identification with RGB-D sensors
  10. June's English