基于搜索的测试数据生成工具

covgen的Python项目详细描述


基于搜索的测试输入生成

自动化测试数据生成的python实现。

目前,它只适用于满足以下条件的python函数的子集:

  • 只接受整数参数

  • 只有整型局部变量

  • 包含仅涉及关系运算符(=,)的谓词!=、<;、>;、<;=、>;=、整数变量和对整数返回类型的函数的调用

从源运行

如果直接克隆源并运行包,请在项目根目录下运行下面的命令。

python -m covgen <file>

可以提供其他选项(您可以将其保留为默认值):

--function (-f) <target_function_name> 

--method (-m) <avm or hillclimbing> 

--retry-count (-r) <retry count> 

--int-min <minimum value of initial arguments for heuristic methods> 

--int-max <maximum value of initial arguments for heuristic methods>

例如:

python -m covgen target/triangle.py -m avm --retry-count 10 --int-min 0 --int-max 1000

打印出包含检测到的分支的生成输入列表, 从目标文件中定义的每个函数。

使用pip

这个输入生成器包在名为covgen的pypi上可用。

安装依赖项后:

pip install anytree
pip install astor

您可以使用以下命令安装此软件包:

pip install covgen

然后用你的python在任何地方运行它。

python -m covgen <target file location>

或者,可以使用生成的输入构建自己的程序。

fromcovgen.run.inputgeneratorimportInputGeneratorgenerator=InputGenerator('target/triangle.py',function_name='triangle')inputs=generator.generate_all_inputs()print(inputs['triangle'])

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java OnResizeListener或OnDrawListener或类似的东西   java Orika映射嵌套子列表   保存时java Heroku请求超时代码H12   数据库在Java中出现socket读取超时异常的原因是什么?   java如何更改来自Sqlite数据库的特定数据在Listview中的行颜色   java JAXB解组器无法正确处理XML中的列表   java Android日期时区让我抓狂   java不透明属性在Swing中如何工作?   eclipse从JavaEE代码生成流程图   java如何在Hibernate中从相关表中获取计数   java Glassfish部署了项目的依赖项库   java使内容适合JavaFx中的WebView   java不满意的链接错误libcrypto。所以1.0.0   循环中java数组的使用   java找出哪个包调用服务