51Testing软件测试论坛

标题: SilkPerformer的十一宗罪(上) [打印本页]

作者: 测试积点老人    时间: 2018-12-20 14:35
标题: SilkPerformer的十一宗罪(上)
以前写过一些文章痛批当下流行测试软件的自动化功能。比如Segue的SilkPerformer(现在是Borland的了),Mercury Interactive的Quick Test Professional(QTP),和Segue的SilkTeset。最近CSDN上诸多老大推荐这些工具。俺觉得有必要旧话重提。毕竟我们有更好的选择。所以改写了一下那些文章,在这里帖出来。今天先聊SilkPerformer。以前这篇文章谈到对Web应用的测试自动化工具的要求,而这里我们可以看看SilkPerformer是怎么与那些要求背道而驰的。

SilkPerformer的脚本语言叫BDL,Benchmarking Definition Language。这个语言就像一帮30年前的业余程序员设计的玩具,毫无章法。每次用BDL写测试代码,我都一边奇怪自己上辈子造了什么孽,以至于横遭BDL凌虐,一边想找块豆腐撞死,还一边感叹祥林嫂其实没那么可怜。当时我和同事一致抱怨,测试不是人啊?凭什么用那么下作的编程语言?

用SilkPerformer在线帮助的话来说,BDL是一款用于负载测试的动态语言。我就不明白,BDL到底“动态”在哪里?它是解释语言?它提供了一点,哪怕一点动态语言的特性,以便我们能够轻松写出测试用例?它支持动态类型,有利快速开发?Nah, 通通天方夜谈。BDL代码被执行前得编译为BEX文件。BDL没有提供任何70年代Pascal以外的特性,遑论常见的动态语言特性。BDL只支持类似标准Pascal的静态类型,而且继承了标准Pascal的类型系统的毛病。BDL还有很多其它限制,让写BDL代码的测试员极其痛苦。BDL的缺陷至少有十一条,排名不分先后:







WebFormValueGet()有七个参数!这个函数可以用来取得一个值,取得一个键,取得一个键值对,或者根据上一次运行的历史做出相应的操作。而且取出的值没有被返回,而是放进一个被标记为in的参数里。显然这个SB函数是用COM提供的。这么一个函数都不能用BDL本身实现,也算天大的笑话。更夸张的是,取出某个值以前,我们还得告诉这个函数那个值的大小。Segue的程序员N年如一日地抵制高粘度(high cohesion)原则,也算是业界一大奇观了。

累死了。休息一下先。



作者: Miss_love    时间: 2020-12-29 09:07
学习一下




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2