基于搜索的测试数据生成工具
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'])