作者:朱金灿

来源: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文件即可。这样做的好处是充分利用服务器的计算资源和晚上的时间,测试人员只需要把精力放在分析处理结果的对错和精度方面。

一种结合hudson的算法自动化测试构想的更多相关文章

  1. JS中几种常见的数组算法(前端面试必看)

    JS中几种常见的数组算法 1.将稀疏数组变成不稀疏数组 /** * 稀疏数组 变为 不稀疏数组 * @params array arr 稀疏数组 * @return array 不稀疏的数组 */ f ...

  2. java讲讲几种常见的排序算法(二)

    java讲讲几种常见的排序算法(二) 目录 java讲讲几种常见的排序算法(一) java讲讲几种常见的排序算法(二) 堆排序 思路:构建一个小顶堆,小顶堆就是棵二叉树,他的左右孩子均大于他的根节点( ...

  3. java讲讲几种常见的排序算法

    java讲讲几种常见的排序算法(一) 目录 java讲讲几种常见的排序算法(一) java讲讲几种常见的排序算法(二) 以数组array={6,3,20,8,15,1}为例 冒泡排序 思路:从第0个到 ...

  4. java几种常见的排序算法总结

    /*************几种常见的排序算法总结***************************/ package paixu; public class PaiXu { final int  ...

  5. IPVS和Nginx两种WRR负载均衡算法详解

    动机 五一临近,四月也接近尾声,五一节乃小长假的最后一天.今天是最后一天工作日,竟然感冒了,半夜里翻来覆去无法安睡,加上窗外大飞机屋里小飞机(也就是蚊子)的骚扰,实在是必须起来做点有意义的事了!    ...

  6. C语言几种常用的排序算法

    /* ============================================================================= 相关知识介绍(所有定义只为帮助读者理解 ...

  7. 曼孚科技:AI领域9种常见的监督学习算法

    监督学习是机器学习中一种十分重要的算法.与无监督学习相比,监督学习有明确的目标.​ 分类与回归是监督学习两个主要任务,常见的监督学习算法主要有以下9种: 1 朴素贝叶斯 分类 2 决策树 分类 3 支 ...

  8. 七种常见经典排序算法总结(C++实现)

    排序算法是非常常见也非常基础的算法,以至于大部分情况下它们都被集成到了语言的辅助库中.排序算法虽然已经可以很方便的使用,但是理解排序算法可以帮助我们找到解题的方向. 1. 冒泡排序 (Bubble S ...

  9. Java实现操作系统中四种动态内存分配算法:BF+NF+WF+FF

    1 概述 本文是利用Java实现操作系统中的四种动态内存分配方式 ,分别是: BF NF WF FF 分两部分,第一部分是介绍四种分配方式的概念以及例子,第二部分是代码实现以及讲解. 2 四种分配方式 ...

随机推荐

  1. udhcp源码详解(二)--转

    定义的数据结构对于C程序的重要性,不言而喻.面向对象设计的程序是一个个对象的集合,而面向过程语言设计的程序则是数据结构与算法的集合. 下面来分析的是dhcp server中的定义结构体: 1).在pa ...

  2. cmd下复制粘贴

    cmd下复制粘贴的快捷操作方式 工具/原料 系统cmd 步骤/方法 1 如右图,右键命令提示符窗口的标题栏,选择属性. 2 选择“编辑选项”里的“快速编辑模式”,并确定之: 3 在弹出的应用选择提示框 ...

  3. select case when if

    select case when if 的一些用法 - 马丁传奇 - 博客园 https://www.cnblogs.com/martinzhang/p/3220595.html Write a SQ ...

  4. [m() for i in range(8)]

    import time def m(): print(time.time()) time.sleep(1) [m() for i in range(8)] 一行 list

  5. js实现加密(?!)

    <script src="yourUrl/md5.min.js"></script> 或者: <script src="http://cdn ...

  6. Buildroot构建指南--快速上手与实用技巧【转】

    本文转载自:http://blog.csdn.net/zhou_chenz/article/details/52335634 Buildroot官方全英文使用手册的链接是https://buildro ...

  7. 织梦dedecms将指定图片自动生成指定尺寸的小图、缩略图、图片的方法

    对于普通企业网站来讲,织梦原来的程序只是提供了一个缩略图,但是这样对于一些相对来说图片会比较多的网站来说,图片太大当缩略图会导致网站整体的访问速度,所以我今天就来教你织梦把一张大图转换成生成一张小图或 ...

  8. 路由器的LAN、WAN、WLAN的区别

    路由器的LAN.WAN.WLAN的区别 好多朋友在群内问我路由器如何配置,本来还耐心解答,但是他竟然连LAN.WAN都分不清,瞬间就没了帮助的热情.借这篇经验,小编简单讲一下路由常见的LAN.WAN. ...

  9. POJ - 1986 Distance Queries(离线Tarjan算法)

    1.一颗树中,给出a,b,求最近的距离.(我没考虑不联通的情况,即不是一颗树的情况) 2.用最近公共祖先来求, 记下根结点到任意一点的距离dis[],这样ans = dis[u] + dis[v] - ...

  10. ssh 无密码互通

    节点n1 n2 n3 互通 第一步:n1->n2互通 admin@n1 > ssh-keygen -d