自动化测试概况和认知

简介: 自动化测试概况和认知

@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

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

目录
相关文章
|
1月前
|
Java 测试技术 数据安全/隐私保护
软件测试中的自动化策略与工具应用
在软件开发的快速迭代中,自动化测试以其高效、稳定的特点成为了质量保证的重要手段。本文将深入探讨自动化测试的核心概念、常见工具的应用,以及如何设计有效的自动化测试策略,旨在为读者提供一套完整的自动化测试解决方案,帮助团队提升测试效率和软件质量。
|
18天前
|
监控 数据可视化 项目管理
关键路径法在项目管理中的实践:从理论到落地的全过程
使用关键路径法(CPM),为你的项目梳理清晰的“优先级”与“全局策略”。
93 2
关键路径法在项目管理中的实践:从理论到落地的全过程
|
4月前
|
测试技术 持续交付 UED
软件测试的艺术与科学:平衡创新与质量的探索在软件开发的波澜壮阔中,软件测试如同灯塔,指引着产品质量的方向。本文旨在深入探讨软件测试的核心价值,通过分析其在现代软件工程中的应用,揭示其背后的艺术性与科学性,并探讨如何在追求技术创新的同时确保产品的高质量标准。
软件测试不仅仅是技术活动,它融合了创造力和方法论,是软件开发过程中不可或缺的一环。本文首先概述了软件测试的重要性及其在项目生命周期中的角色,随后详细讨论了测试用例设计的创新方法、自动化测试的策略与挑战,以及如何通过持续集成/持续部署(CI/CD)流程优化产品质量。最后,文章强调了团队间沟通在确保测试有效性中的关键作用,并通过案例分析展示了这些原则在实践中的应用。
100 1
|
8月前
|
机器学习/深度学习 人工智能 算法
软件测试的演变与未来:从手工到自动化的旅程
【5月更文挑战第31天】本文深入探讨了软件测试领域的历史发展、当前趋势以及未来预测。文章首先回顾了早期软件测试的基本形式,然后分析了自动化测试工具如何改变行业现状,并展望了人工智能和机器学习如何可能塑造软件测试的未来。通过具体案例分析,本文旨在为读者提供一个关于软件测试进化历程的全面视角。
|
8月前
|
数据采集 算法 数据库
软件工程可行性分析报告
软件工程实验报告
181 1
|
机器学习/深度学习 自然语言处理 算法
制定机器学习规划路线:从入门到专业
制定机器学习规划路线:从入门到专业
|
搜索推荐 数据挖掘 数据安全/隐私保护
如何用ChatGPT做团队绩效管理?根据员工的个人优势、不足、目标来生成更具体的绩效反馈
效管理、目标设定、绩效评估、员工优势、员工弱点、反馈机制、个人发展计划、职业规划、评估工具、数据分析、绩效考核、评分标准、KPI指标、成果目标、个人任务、团队任务、激励机制、晋升机会、增量奖励、培训计划、团队建设、人才管理、工作满意度、员工福利、OKR
438 0
|
算法 决策智能
运筹优化学习22:新项目研发项目进度制定与优化研究(二)
运筹优化学习22:新项目研发项目进度制定与优化研究
运筹优化学习22:新项目研发项目进度制定与优化研究(二)
|
监控 项目管理 决策智能
运筹优化学习22:新项目研发项目进度制定与优化研究(三)
运筹优化学习22:新项目研发项目进度制定与优化研究
运筹优化学习22:新项目研发项目进度制定与优化研究(三)
|
监控 算法 安全
运筹优化学习22:新项目研发项目进度制定与优化研究(一)
运筹优化学习22:新项目研发项目进度制定与优化研究
运筹优化学习22:新项目研发项目进度制定与优化研究(一)