自动化测试概况和认知

举报
虫无涯 发表于 2023/01/13 10:08:41 2023/01/13
【摘要】 @TOC《测试架构师修炼之道》是我的一本枕边书,每次看的时候总是有不同的感受。今天来整理下书中提到的自动化测试相关的知识,更多的是概况、认知或者理论方面的东西。 前言书中说测试架构师掌握自动化测试的目的不是设计自动化架构或是具体来部署自动化,而是用好自动化。其实这一点我觉得对涉及自动化测试的人员都是通用的,只是偏重点不同。往往自动化测试前期投入成本可能会大一点,比如框架设计、技术选型、人力成...

@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.com
QTP HP Mercury http://www.mercuryinteractive.com
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.com
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

注:本文内容主要来源于《测试架构师修炼之道》刘琛梅·著,版权归作者所有,本文只是整理汇总成学习笔记,如有问题,请联系删除,谢谢。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。