SilkTest高级进阶系列8 – 放下榔头,立地成佛
在地球尚未毁灭的某天,手动测试的同事找到你所在的自动组,问是否可以帮助他们自动化一个需要连续添加100个条目的测试用例,因为他们觉得这是一个噩梦。你口头上说要先烟酒烟酒才能知道,但是内里早就满心欢喜:这算个啥,难不倒咱,咱有如此powerful的SilkTest,咱自动化组表现的时候到了。
你蹭蹭地打开电脑,新建脚本,准备开始抓取…什么?大部分控件是特殊技术实现的,silktest统统无法识别。什么?你忘记了如何点击右键菜单并且选择菜单上的选项,需要花时间阅读帮助文档和google。什么?时间紧张你需要尽快给个说法。“喂,朋友帮帮忙,你可知道我们需要抓取定义,编写类,实例化对象,接下来处理测试逻辑,加上调试,处理可能遇到的乱七八糟的问题,起码得给我个两三天才行啊。”
慢!
你是不是搞的太复杂了?
好好回想一下,别人只是要求一段可以做事的代码,一个小工具,而并非需要正式release测试用例。而且,这段代码只需要在集成测试时运行一次,也就不存在什么维护问题,你的抓取定义,建类全是为了增强可维护性,在这种情况下统统不给力,完全不是必需的。什么,你还要写复杂的测试逻辑?完全不用,你直接用录制功能即可。到底测试通过与否,执行人员一眼就可以看出来,根本不用你费神地考虑如何在不可识别的控件上用什么位图比较的方法来确定测试是否成功。还记得自动测试定律No.1么,自动测试不是万能的。
所以,自诩熟练使用SilkTest的你(我),千万不要忘记SilkTest还提供了基本的录制功能,也千万不要忘记解决不同的问题要用不同的方法。
你不愧是有经验的自动测试工程师,三下五除二,这次只花了一分钟就录制好了测试脚本。一跑,咦,原来,用户手动操作一次就可以增加两个条目,一共只需要点击50次就可以增加100个条目。这也就是说手工做的话并不是什么噩梦,两分钟即可完成。那赶紧地,把这个消息告诉手动的同事,为这个用例自动化,意义不大!
智者言:如果你手里有一把锤子,所有东西看上去都像钉子。俺说:放下榔头,立地成佛。(锤子实在太难听了)
SilkTest高级进阶系列8 – 放下榔头,立地成佛的更多相关文章
- SilkTest高级进阶系列6-motif tag
看SilkTest代码的时候不小心看到winclass.inc里面的一些类申明使用的是motif tag,例如: [-] winclass MessageBoxClass : DialogBox [ ...
- SilkTest高级进阶系列7-用PostMessage模拟鼠标
SilkTest可以通过调用Windows API来向控件发送消息,从而进行特定的操作.下面这段code使用PostMessage来向计算器上的清除键发送WM_LBUTTONDOWN和WM_LBUTT ...
- SilkTest高级进阶系列9 – 异步执行命令
我们常常会使用sys_execute函数执行一些外部的程序或者命令来做一些事情,但是由于sys_execute是一个同步的函数,它会等待执行的命令完成后才会返回.在大多数情况下,这个函数足够用了. 但 ...
- SilkTest高级进阶系列10 – bitmap工具bitview
SilkTest 提供了一个bitmap的工具,它可以帮助我们捕捉,比较bitmap文件.该bitmap工具的位置是~/SilkTest/bitview.exe 运行该工具后,你会发现它提供了捕捉控件 ...
- 高级T-SQL进阶系列 (一)【上篇】:使用 CROSS JOIN 介绍高级T-SQL
[译注:此文为翻译,由于本人水平所限,疏漏在所难免,欢迎探讨指正] 原文连接:传送门 这是一个新进阶系列的第一篇文章,我们将浏览Transact-SQL(T-SQL)的更多高级特性.这个进阶系列将会包 ...
- C#进阶系列——一步一步封装自己的HtmlHelper组件:BootstrapHelper
前言:之前学习过很多的Bootstrap组件,博主就在脑海里构思:是否可以封装一套自己Bootstrap组件库呢.再加上看到MVC的Razor语法里面直接通过后台方法输出前端控件的方式,于是打算仿照H ...
- C#进阶系列——MEF实现设计上的“松耦合”(二)
前言:前篇 C#进阶系列——MEF实现设计上的“松耦合”(一) 介绍了下MEF的基础用法,让我们对MEF有了一个抽象的认识.当然MEF的用法可能不限于此,比如MEF的目录服务.目录筛选.重组部件等高级 ...
- C#进阶系列——DDD领域驱动设计初探(五):AutoMapper使用
前言:前篇搭建了下WCF的代码,就提到了DTO的概念,对于为什么要有这么一个DTO的对象,上章可能对于这点不太详尽,在此不厌其烦再来提提它的作用: 从安全上面考虑,领域Model都带有领域业务,让Cl ...
- C#可扩展编程之MEF学习笔记(五):MEF高级进阶
好久没有写博客了,今天抽空继续写MEF系列的文章.有园友提出这种系列的文章要做个目录,看起来方便,所以就抽空做了一个,放到每篇文章的最后. 前面四篇讲了MEF的基础知识,学完了前四篇,MEF中比较常用 ...
随机推荐
- JPA相关知识点滴--持续更新中.....
Java 持久化(JPA) •Java EE 5 在EJB 3.0 中包含JPA 1.0 •参考实现:TopLink Essentials •Java EE 6 包含JPA 2.0 •参考实现:Ec ...
- nodejs安装不了和npm安装不了的解决方法
http://caibaojian.com/nodejs-roll-back.html
- linux: Ubuntu安装samba的问题
Ubuntu安装samba的问题 http://blog.csdn.net/jk110333/article/details/8920841 root@ubuntu:~# apt-get instal ...
- Java进阶01 String类
链接地址:http://www.cnblogs.com/vamei/archive/2013/04/08/3000914.html 作者:Vamei 出处:http://www.cnblogs.com ...
- SxsTrace工具用法
Windows7平台上有一个强大的SxsTrace工具,能够跟踪调试应用程序执行时须要的动态库的版本号和路径. SxsTrace使用的方法: 1.首先必须以Administrator用户身份登录,打开 ...
- linux: 可重入函数与不可重入函数
1. 可重入函数与线程安全 摘自 多线程和多进程的区别(小结) http://blog.csdn.net/hairetz/article/details/4281931 要确保函数线程安全,主要需要考 ...
- delphi json(CDS包含了Delta数据包)
在delphi中,数据集是最常用数据存取方式.因此,必须建立JSON与TDataSet之间的互转关系,实现数据之间通讯与转换.值得注意的是,这只是普通的TDataset与JSON之间转换,由于CDS包 ...
- 发掘ListBox的潜力(二):鼠标拖放插入点提示
鼠标拖放插入点提示 鼠标拖放是Windows常见的操作,比如拷贝文件就可用拖放方式进行.在我们编写的应用程序中,有时为了方便用户操作需要支持鼠标拖放.对于大部分的VCL控件只要鼠标将DragMode设 ...
- [置顶] strcpy和memcpy的区别
strcpy和memcpy都是标准C库函数,它们有下面的特点. strcpy提供了字符串的复制.即strcpy只用于字符串复制,并且它不仅复制字符串内容,还会复制字符串的结束符. 已知strcpy函数 ...
- poj 3211 Washing Clothes(背包)
很不错的01背包!!! 不过有点疑问!!!(注释) #include <algorithm> #include<stdio.h> #include<string.h> ...