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

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如何通过jamod读取控制器的输入状态?   java Back bean方法在使用两个h的单一表单时未调用:selectonemenus和command button   mockitojava中的单元测试Mock继承方法   java在不传递到构造函数的情况下,将一个类的实例使用到另一个类中的最佳方法是什么   java Spring MVC:如何通过API在Dozer的toplevel字段中允许空值?   java hibernate到MSSQL服务器的连接被拒绝:连接   java动态调用现有变量   在java中扩展多个类的泛型   java使用JNA Ptrace获取linux中外部进程的信息?   eclipse获取Java项目中所有构建错误的最快方法是什么?   java将动态数组拆分为多个数组   java安卓:将json保存到sqlite   java获取最近时间Android   java如何为多对多关联编写HQL查询?   java Docker compose for mysql和spring应用程序拒绝访问   java查找数组(如果它是另一个数组的子集)   java如何在另一个具有相同数据类型参数的泛型类(或接口)中使用泛型类(或接口),而无需强制转换   Apache POI java。lang.NoClassDefFoundError:org/apache/commons/compress/utils/InputStreamStatistics   java使用Jackson将JSON反序列化为异构元素列表   使用MapReduce实现java规范化