@TOC
《测试架构师修炼之道》是我的一本枕边书,每次看的时候总是有不同的感触。明天来整顿下书中提到的自动化测试相干的常识,更多的是详情、认知或者实践方面的货色。
前言
书中说测试架构师把握自动化测试的目标不是设计自动化架构或是具体来部署自动化,而是用好自动化。其实这一点我感觉对波及自动化测试的人员都是通用的,只是偏重点不同。
往往自动化测试后期投入老本可能会大一点,比方框架设计、技术选型、人力老本等等,然而这个步调确定好了之后,更多就是怎么去用好自动化,把它和业务联合起来。
书中次要从以下方面发展:
- 建设正确的自动化观点;
- 如何评估自动化收益;
- 自动化工具的选型。
## 1、自动化测试假相
一提到自动化测试,大家很容易就想到 “7*24 小时不间断测试”、“ 重复测试 ”、“ 效率高”等等,然而发现,自动化测试做的人多,胜利的却不多。其实起因有很多。
### 1.1、自动化并不便宜,相同,自动化很贵
- 开发自动化脚本须要不少工夫,往往很多团队部署自动化的起因是因为我的项目紧,想通过自动化测试晋升效率,既然工夫都不够用了,哪有工夫去开发脚本呢?这无疑于 缘木求鱼;
- 自动化测试须要懂技术的人来操作,其过程也是 开发代码,也须要业余的人才能胜任此工作;
- 某些自动化工作须要 购买和二次开发;
总结为工夫老本、技术老本、人力老本,都是自动化测试须要思考的。所以说它很贵。在部署之前,肯定要思考团队的生产能力。
1.2、自动化脚本往往没有设想中的那么牢靠
很多团队部署自动化另一个起因是想通过自动化来验证不会漏掉用例中的步骤,感觉自动化是忠实可靠的。但自动化测试给你的“OK”,可能真的只是空想,因为脚本只会依照指定的步骤去运行和确认后果,不会去捕获一些突发异样(至多不能全面的捕获)。
另外,自动化工作或者环境可能并不是那么牢靠。
无论是正确的自动化测试后果,还是谬误的自动化测试后果,都须要人再去确认。
1.3、自动化测试不是单靠测试就能搞定的事儿
自动化测试须要 SE、开发、测试、自动化工程师紧密配合能力无效运作起来。开发自动化脚本之前有很多先决条件:
- “需要”要确定分明,特地是用户的数去和输入,肯定要确认分明,这时候 SE 就要给力 些;
- “UI”后者“命令行”须要确定下来,而且确定了最好不要随随便便批改,这样才利于自动化脚本中的一些“中间层”的设计,这须要 开发给力;
- 测试用例要尽快写进去,这须要 测试给力。
## 2、如何评估自动化收益?
2.1、自动化测试的施行老本
公式:自动化施行老本 = 后期开发成本 + 前期的保护老本
2.1.1、后期开发成本
- 人力老本:和自动化开发人员相干的费用老本;
- 工夫老本:自动化筹备工夫,自动化脚本开发、调试的工夫老本;
- 金钱老本:工具购买、开发、保护的费用老本。
#### 2.1.2、前期保护老本 - 产品变更 引起的自动化测试 脚本变更 的老本;
- 定位、修复自动化运行环境引起的 脚本的健壮性问题 的老本;
- 定位、修复自动化运行环境引起的 可靠性问题 的老本;
- 其它未知的引起测试 脚本变更 的因素引发的老本。
### 2.2、自动化测试的运行次数
自动化测试的收益和自动化测试运行的次数是成正比的,脚本可能被运行的越多,自动化测试的收益才会越高。
公式:自动化测试的收益 = 自动化测试运行的次数
2.3、自动化测试施行老本
计算公式:p = (k*n) / (c1+c2)
k : 手工执行自动化用例所破费的工夫老本;n:自动化测试用例执行的次数;c1:破费在自动化测试后期的老本(工夫老本 + 人力老本 + 金钱老本);c2:破费在自动化测试前期的老本(工夫老本 + 人力老本 + 金钱老本);
3、自动化测试工具介绍
3.1、单元测试工具
- Parasoft 系列单元测试工具
工具名 | 语言 | 特点 |
---|---|---|
Jtest | Java | 代码剖析和动静类,组件测试 |
Jcontract | Java | 实时性能监控及剖析优化 |
C++Test | C、C++ | 代码剖析和动静测试 |
CodeWizard | C、C++ | 代码动态剖析 |
Insure++ | C、C++ | 实时性能监控及剖析优化 |
.test | .Net | 代码剖析和动静测试 |
- Compuware 系列单元测试工具
工具名 | 语言 | 特点 |
---|---|---|
BoundsChecker | C++、Delphi | APO 和 OLE 谬误查看、指针和泄露谬误查看、内存谬误查看 |
TrueTime | C++、Java、Visual Basic | 代码运行效率查看、组件性能的剖析 |
FailSafe | Visual Basic | 主动错误处理和复原零碎 |
Jcheck | MS Visual J++ | 事件剖析工具 |
TrueCoverage | Java、C++、Visual Basic | 函数调用次数、所占比率统计以及稳定性跟踪 |
SmartCheck | Visual Basic | 函数调用次数、所占比率统计以及稳定性跟踪 |
CodeReview | Visual Basic | 自动化源代码剖析工具 |
- Xunit 系列单元测试工具
工具名 | 语言 | 官方网站 |
---|---|---|
Aunit | Ada | http://www.libre.act-europe.fr |
CppUnit | C++ | http://cppunit.sourceforge.net |
ComUnit | VB、COM | http://comunit.sourceforge.net |
Dunit | Delphi | http://dunit.sourceforge.net |
DotUnit | .Net | http://dounit.sourceforge.net |
HttpUnit | Web | http://c2.com/cgi/wiki?HttpUnit |
HtmlUnit | Web | http://htmlunit.sourceforge.net |
JUnit | Java | http://www.junit.org |
JsUnit(Hieatt) | Java Script 1.4 以上 | http://www.jsunit.net |
PhpUnit | Php | http://phpunit.sourceforge.net |
PerlUnit | Perl | http://perlunit.sourceforge.net |
XmlUnit | Xml | http://xmlunit.sourceforge.net |
3.2、UI 自动化测试工具
工具名 | 公司名 | 官方网站 |
---|---|---|
WinRunner | HP Mercury | http://www.mercuryinteractive… |
QTP | HP Mercury | http://www.mercuryinteractive… |
Robot | IBM Rational | http://www.rational.com |
QARun | Compuware | http://www.compuware.com |
SilkTest | Segue | http://www.segue.com |
e-Test | Empirix | http://www.expirix.com |
3.3、性能自动化测试工具
工具名 | 公司名 | 官方网站 |
---|---|---|
WAS | Microsoft | http://www.microsoft.com |
LoadRunner | HP Mercury | http://www.mercuryinteractive… |
Qaload | Compuware | http://www.compuware.com |
TeamTest:SiteLoad | IBM Rational | http://www.rational.com |
Webload | Radview | http://www.radview.com |
Silkperformer | Segue | http://www.segue.com |
e-Load | Expirix | http://www.expirix.com |
OpenSTA | OpenSTA | http://www.opensta.com |
注:本文内容次要来源于《测试架构师修炼之道》刘琛梅·著,版权归作者所有,本文只是整顿汇总成学习笔记,如有问题,请分割删除,谢谢。