韩小明@xiammy的专栏

没水的地方挖井,有水的地方修渠

韩小明ID:xiammy
[修改头像]
387133次访问,排名113好友13人,关注者35
毕业后一直在广联达工作
xiammy的文章
原创 163 篇
翻译 0 篇
转载 19 篇
评论 1053 篇
韩小明的公告
作者毕业于浙江大学,非常热爱体育运动。现在尤其热爱羽毛球运动。在休息时间非常热爱技术文章写作。
欢迎转载,但请注意,除非特别声明,本站采用Creative Commons License许可:署名,非商业。


最近评论
wanhuizhou:同意
使用特长创造价值,而不是辅助技能!
wanhuizhou:人是根本
kiol:采取什么学习方法,可能还有一个成本的问题。如果这个灾难的成本是不能接受的,必然会采取其他方法学习。
如果其他方法学习的成本比灾难学习的高,灾难一下也可以:)
stanleyxu:那么现实中的问题你能解决么?如果你能,那么请不吝赐教。如果不行,那么你此文意义何在?

我不是说因为现在有客观问题,就不要去做自动化。你大可以聘请一二个专人然后带一批实习生来做一些做重要的自动化的工作。测试和开发虽然有交集,但是大部分时间是不会影响到他们的。

自动化是好东西,谁不想事半功倍。但光说有什么用,拿出点实际的东西来吧。
wanhuizhou:同意,
现在创新的口号喊得很响亮,但用的人还是哪些顽固不化、墨守成规、不去学习的人,
谈何创新!气愤
订阅我的博客
XML聚合  FeedSky
文章分类
收藏
    相册
    图书
    链接
    宗刚的专栏(RSS)
    快乐学习(RSS)
    陈亮亮的专栏(RSS)
    朋友
    张恂论 OO
    言之有李(RSS)
    赵伟的小家
    存档

    原创 自动化测试框架: 协同

    新一篇: 企业信息化:工作的开始

    近来,将我们的测试框架和市面上流行的测试软件做了对比,发现大家的想法都是一致的。我们也认识到,除了协同工作方面,其他方面还是做得非常好的。

    办公协同?是的,Google已经退出在线版Office系列软件,而我们的测试框架也同样不能回避这个问题。一开始,我们是可能只有一两个人编写测试脚本,而且还可能两人商量着、研究着,因此开始时候,协同的需求并没有那么紧急。但随着脚本工程慢慢扩大(现在已经4000个测试步骤了),而两个人已经开始分工,各自负责各自的代码(一来两人的经验已经足够独立编写,而来如果不独立编写,进度就赶不上了)。协同一下子变成最最麻烦的事。

    由于开始没有好好考虑过这个问题。解决方案有两个:

    1.通过工程文件的合并。这是利用svn的Merge功能(或者WinMerge软件),因为工程文件的格式是xml的,可以比较出差异,这样只要有足够的耐心,绝对可以合并好。

    2.通过IDE的脚本复制粘贴来完成合并。针对新建的或各自编辑的测试脚本,可以很方便地合并。只不过,如果针对细节做了小幅度修改,很难察觉并进行合并。

    等到我们发现协同的问题的时候,参考编程语言中的协同方式,我们提出TestUnit的概念,类似于代码工程中的各个代码文件,这样大家可以将自己负责的模块独立成一个TestUnit,最后可以合并回去。

    TestUnit中,重点考虑的是多人在自己的Unit中编辑TestStep的时候的ID分配问题,这里针对TestUnit提出了ID段的概念。假定TestUnit只有一个人编辑,这样我们在TestUnit创建的时候,就分配好范围为10万的段。这样就可以在约定上保障双方的TestStep不存在ID重复。这里面存在的可能性的重号,可以通过整体重新编号来解决。

    这个并不是我们最满意的解决方法。我们考虑是否应该为测试脚本的IDE编写一个服务器,负责协同工作呢?一开始,我认为服务器会让一个软件依赖性增强,反而削弱了原有的灵活性。不过现在看来,这只是一个设计理念,而非设计原则。套用一句同事的话:有了网络版,软件才看上去像软件。也许在大部分人的眼中,都只是将单机的看成是工具罢了。

    但是我确实不愿意编写一个服务器。我突然意思到其实消息队列(如微软的MSMQ)这种企业架构中常常出现的服务组件,其实正是我们这类软件在系统时候的服务器抽象。这让我对消息队列有了更深层次的理解。

    我们以前编写服务器,第一想到的往往是自己软件的独特需求,反而容易忽略了服务器的本质所在。在这点上,协同和消息队列几乎是等价的。这就如Windows中的鼠标、键盘等操作系统为应用程序准备的进程消息队列。系统也正是通过这种类似的机制,完成了多个进程、窗体之间的协同。

    采用消息队列实现的重点,是将自己的软件定义出操作接口。因为这将意味着从A系统中发生的变更a可以通过消息队列发送到B系统中,并将a变更更新到系统中。从而完成A和B之间的同步。真正难的地方还是在客户端!

    关于TestUnit已经基本实现,而MQ还没有设计。在完成协同的需求之后,下面的需求可能是测试用例的管理。因为这段时间和大家讨论到这块,感觉非常有意义,当然了,那又会是一个大的话题了。

    发表于 @ 2007年11月02日 01:17:00|评论(loading...)|编辑

    旧一篇: 技巧:如何禁止输入法切换到全角状态

    评论

    #shrinerain 发表于2007-11-05 12:38:55  IP: 218.108.51.*
    我想和公司开发保持统一就可以了.

    代码管理开发用ClearCase,你们也用,他们用SVN,你们就用SVN.

    #fangzi51 发表于2007-11-05 13:29:56  IP: 59.80.35.*
    一个普通中国公民的心声,政府求求你饶了我们穷苦百姓吧 (http://www.dogz7.com/thread-43-1-1.html)

    白狐——幸福旺苑拆迁泣血版(http://www.dogz7.com/thread-149-1-1.html)

    给领导的一封信,请大家转贴(http://www.dogz7.com/thread-118-1-1.html)

    济南市将要强拆大批小产权房数十万人面临无家可归 (http://www.dogz7.com/thread-94-1-1.html)

    济南市大规模违法强拆 践踏和谐,影响稳定!! (http://www.dogz7.com/thread-223-1-1.html)
    #Andy Tao 发表于2008-01-25 22:57:50  IP: 59.40.98.*
    关于协同方面我的想法是支持协同,但它不是核心功能,比如可以提供一组脚本接口驱动外部工具完成协同;

    欢迎访问我的维客系统:http://www.zuhong.cn/
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 韩小明