一种结合hudson的算法自动化测试构想
作者:朱金灿
来源:http://blog.csdn.net/clever101
有时我在思考:未来软件测试的趋势是什么?其实答案和其它行业一样简单:低技术含量的测试工作都将由机器承担,人只能干机器干不了的活。这意味着什么?所有的黑盒测试将不复存在,测试人员将用来分析测试结果。
大话说完了,下面具体谈谈我构想的一种结合hudson的算法动化测试构想。大家知道,在编译完成之后hudson是可以执行一系列的批处理脚本。因此我们可以在编译完成后加入自动化测试的批处理脚本。批处理脚本具体执行哪些内容呢?我们假设这样一个应用场景,软件是由很多算法组成的,也就是说对于测试人员来说算法测试是一个工作量比较大的任务。算法模块以一个个dll的形式存在,因此我们可以开发一个算法加载器(AlgoRun.exe),专门来加载这些算法dll。算法加载器是一个带参数的命令行程序,其带的唯一参数是一个xml文件,具体用法是:
AlgoRun.exe xml文件。
xml文件为一个算法参数配置文件,比如某个算法配置文件内容如下:
<?xml version="1.0" encoding="gb2312" standalone="no"?> <RunConfig> <!—统计算法配置 --> <AlgoDll value="Algo.dll" /> <!--运行的算法库 --> <ParaConfig> <parameter value="E:\TestData\1.txt"/> <!-- 输入文件 --> <parameter value="0.65" /> <!-- 相关系数阈值 --> <parameter value="15" /> <!—迭代次数--> <parameter value="500" /> <!-- 特征点数 --> </ParaConfig> </RunConfig>
然后自动化测试脚本可以写成这样:
AlgoRun.exe algo1.xml AlgoRun.exe algo2.xml AlgoRun.exe algo3.xml
这样可以在每日构建服务器上部署自动化测试的批处理脚本,每天晚上编译好最新的算法后运行算法自动化测试脚本,早上测试人员上班后就可以看到最新的测试输出了。如果要修改算法测试参数,只需要修改对应的xml文件即可。这样做的好处是充分利用服务器的计算资源和晚上的时间,测试人员只需要把精力放在分析处理结果的对错和精度方面。