自动化测试难点案例分析,其实自动化你用错方向还不如不用

news2024/11/16 11:43:35

随着国内企业软件开发及测试水平的提升,许多企业开始尝试开展自动化测试的应用,以提高测试效率和测试质量。虽然在国外自动化测试工具应用已经很普遍,但国内许多企业对于软件自动化测试的理解还停留在表面上,没有深入的理解到企业实施自动化测试所要具备的条件以及自动化测试本身的局限性,导致自动化并没有给企业带来多少实际的价值,反而还浪费了资源。 下面是两个企业推行自动化失败的案例:

   案例1:L公司是中国一家专注医疗设备与软件研发的高科技企业,产品包括超声,放射,检验和医疗IT。医疗IT软件产品包括超声工作站、放射工作站、叫号工作站、信息系统等。整个软件产品线有80多名工程师,测试工程师有15人。以前公司的测试大部分是手工测试,现在由于软件的版本发布较多,测试团队很难跟上开发的节奏。产品线王总找到测试部经理李华,看是否能开展自动化测试,并要求在下个季度完成自动化技术的预研和实践。测试部经理李华经过与部门两名自动化测试工程师的讨论,决定使用QTP和Winrunner作为测试工具,经过三个月的预研之后,工具可以使用了,但在使用过程中遇到了以下的问题:

1)  自动化工具在录制脚本的时候很多对象无法识别。

2)  由于软件的需求变更较多,程序界面变更较快,原来录制的脚本很难重用。

3)  软件程序的BUG很多,使用测试工具时出现很多的异常,无法顺利跑完脚本。。。。

   案例2: K公司是一家主要从事网络游戏咨询服务及相关游戏增值业务,是全球著名,中国最大的游戏增值服务提供商之一,主要提供游戏点卡、游戏装备、虚拟货币、网游账号等网上交易服务。该公司开发团队采用的开发模式为敏捷开发,每周需要发布一个版本,对软件测试团队的要求较高,不但需要快速的测试每一个新版本,而且要找出BUG,这样对于本来偏向于手工测试的质量保证团队是一个非常大的挑战,负责质量的陈副总为了提高测试的效率,直接从IBN公司挖了一个自动化测试高手刘军过来,作为整个测试部门的负责人,意在提高公司自动化测试技术和软件质量水平。但刘军经过6个月的努力,发现自动化测试在K公司根本派不上用场,大部分的项目带是采用手工测试,原本想把测试效率提升一下的刘军,在6个月之后,选择离职。。。。。究其原因,有以下几个:

1)刘军虽然是自动化测试高手,但对于K公司的业务不太熟悉。

2)敏捷开发过程中自动化测试很难派上用场。

3)企业对于自动化能带来的收益过于短视,没有给予一定的时间进行技术积累。

    以上两个案例,是目前中国软件企业遇到的普遍性的问题,一方面想提高软件测试的效率,一方面又不想增加测试资源,想走捷径,比如通过一些自动化工具进行辅助测试等等。上个月笔者在北京测试公开课上也遇到了一家中国互联网企业的研发总监,他们面临的问题跟以上两家企业的问题基本上类似,想开展自动化测试但不知从何下手,如:自动化测试团队与开发人员的关系,自动化测试人员的绩效指标,自动化测试团队究竟需要领导哪些支持?自动化测试的人员如何培养?自动化测试能做到什么程度。。。。。。。

带着这些问题,笔者根据以往在华为和阿里巴巴两家著名公司的测试管理经历,和近期对多家企业进行自动化测试辅导的经验,分别从“技术、组织、流程、人”四个方面对自动化测试实施难点进行简要的分析:

1)  从技术方面,目前国内从事自动化测试的工程师还不多,这跟国内一种浮燥的开发氛围有关系。因为企业开展自动化测试,不但需要购买工具,还需要招聘具备开发能力的测试工程师,并且回报周期较长,有的需要半年,有的需要一两年,这一点是很多企业无法实现的。国内自动化测试做得比较好的企业腾讯、阿里巴巴、百度等公司,无不投入了较高的成本,自动化测试技术包括测试工具开发和自动化测试工具应用两类。 测试工具开发是指开发适合自已产品的测试工具,像一些脚本语言PHP、PYTHON、TCL/TK、SHELL等等,主要用于集成测试和单元测试;另一种自动化测试技术是指自动化测试工具的应用,主要是应用各种成熟的测试工具,如QTP,LR,Silktest等等, 这类技术只需要掌握工具即可。由于国内“重开发、轻测试”思想依然存在,很多企业不愿花钱购买自动化测试工具和招聘高素质自动化测试人才。导致测试水平低下,测试跟不上开发的情况屡见不鲜。 企业要想实施自动化测试,必须先过技术关,案例1中的L公司显然技术的积累不够,没有成功自动化测试经验的技术人员很可能导致自动化测试失败。

2)  组织方面,很多公司都建立了系统测试部,但真正有独立自动化测试小组的公司廖廖无几,有的公司也试图让系统测试人员来从事自动化测试,这是一个误区。因为系统测试人员往往偏向于黑盒测试, 他们对于代码逻辑和模块接口方面了解非常少, 很难从事测试工具的开发和自动化测试工具的应用。共创力咨询认为, 自动化测试小组应独立于测系统测试团队, 自动化测试小组更多的职责在于提高测试用例的自动化率, 和维护自动化测试脚本。测试工具开发小组可以独立于测试工具应用小组, 因为前者更偏向于开发, 这个团队的身份其实跟开发团队没有什么两样,他们负责收集自动化工具开发需求,并进行设计开发和验证。后者主要负责工具应用, 他们需要把工具应用到公司的业务中去。自动化测试工具应用小组可以参与一部分的系统测试工作,以撑握和熟悉具体的业务知识, 更好的提高软件自动化率。因此,在组织方面,共创力建议企业开发过程中自动化测试和手工测试分开, 自动化测试分为两个小组, 一个是做工具开发, 一个是自动化工具的应用,两个小组如果人数不多,可以合二为一, 如果人数超过一定规模, 如10个以上, 则可以成立两个单独的小组。

3)  在流程方面, 自动化测试需要有相关测试流程的保障。自动化测试不再跟手工测试一样, 在软件打完包之后进行测试, 自动化测试在编写脚本或写测试用例的时候需要跟开发人员人间作深入的沟通, 了解软件的逻辑实现和模块之间的接口, 如UI的控件实现方式变化之后,开发人员应及时通知测试开发人员, 对测试的脚本进行调整和维护, 对开发人员提交文档的规范性有更高的要求。案例2中的K公司采用了敏捷开发模式, 对于自动化测试工具的应用,显然不太适合, 因为频繁的UI变更,将导致测试用例的维护工作量较大, 还不如做手工测试, 针对K公司这种情况, 共创力建议除了使用自动化测试做一些后台的测试之外,前台依然采用手工测试。

4)  在人方面,自动化测试如何得到保障呢? 最近笔者统计了一下目前研发职位的招聘情况,软件测试人员的招聘职位较多,尤其是高级测试工程师供不应求, 究其原因, 目前很多企业已经意识到了测试这块短板, 但缺乏高水平的测试工程师, 懂开发的工程师都不愿从事测试, 从事测试的工程师基本不懂开发。。。。。这是一种不好的现象, 在华为公司,许多测试工程师同样懂软件开发,在进入公司前需要考查C++基本编程,而且,测试人员的工资待遇不比开发人员差,这就为公司开展各项自动化测试提供了一个基本条件,人员可以得到保证。国内除了几家大公司如华为,中兴,迈瑞,阿里,腾讯等之外,许多公司的测试人员都是不懂开发的,很难真正的推行自动化测试。。。。。

综上所述, 企业要推行软件自动化测试,不是一件容易的事, 领导不但需要支持建立测试开发团队,而且需要招聘有经验的自测试化测试人员,并树立自动化测试部门的权威性,真正给企业带来效益,降低人工测试的成本。随着国内软件企业对质量意识的提升,相信自动化测试逐渐会取代一部分的手工测试,自动化测试的地位也将逐渐显现出来。

最后,笔者根据多年的自动化测试实践经验, 总结出一些经验和教训, 给大家分享:

1)              并不是所有的软件都适合自动化测试, 像有些需要人机界面进行测试的, 只能使用手工测试。如需要通过眼睛判断颜色或通过人操作键盘等等。

2)              自动化测试工具并不能帮助我们找出更多的BUG, 而只能提高测试的效率和质量。自动化测试工具也是需要人去操作和维护的,它只能机械的重复人的动作,而并不比人聪明。

3)              对于版本频繁变更或需求变化较快的软件,尽量不要使用自动化测试工具,因为使用工具维护的成本太高。

4)              对于自动化测试尽量在版本稳定后进行,如前面三轮采用人工测试,软件基本稳定后再使用自动化工具进行回归测试,如果版本不稳定,使用自动化工具将事倍功半,得不偿失。

5)              对于自动化测试技术,需要做长期的规划,针对自身业务的发展状况和开发技术的规划,组织自动化测试小组研究测试方面新的技术,在产品测试的过程中,慢慢积累,不断总结,让测试技术得以沉淀。

6)              自动化测试工程师最好有开发的背景和经验,对于自动化测试工具应用的工程师最好有成功的工具实践经验。因为只有具备成功的经验,对于自动化工具在软件开发过程中的应用会如鱼得水,取得事半功倍的效果。

B站2023年最详细的python接口自动化测试全栈测试开发技术入门到精通教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/381377.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringMVC的常用组件和工作流程及部分注解解析

一丶SpringMVC常用的组件 1.前端控制器DispatcherServlet 作用:统一处理请求和响应。除此之外还是整个流程控制的中心,由 DispatcherServlet 来调用其他组件,处理用户的请求 接收请求,响应结果,相当于转发器&#xff…

参考 Promise/A+ 规范和测试用例手写 Promise

前言 这可能是手写promise较清晰的文章之一。 由浅至深逐步分析了原生测试用例,以及相关Promise/A规范。阅读上推荐以疑问章节为切入重点,对比Promise/A规范与ECMAScript规范的内在区别与联系,确定怎样构建异步任务和创建promise实例。然后开…

JavaSE18-面向对象-内部类

文章目录一、局部内部类二、成员内部类三、静态内部类四、匿名内部类一、局部内部类 把类定义在方法中。对象创建格式:直接在定义内部类的方法中创建。如果在该方法外就不能使用该局部内部类了。应用场景:如果需要定义一个在方法中临时使用的类可以使用…

SpringCloud(微服务)学习篇(一)

SpringCloud(微服务)学习篇(一) 1 nacos的下载和配置 1.1 进入官网 nacos官网 1.2 点击nacos➡点击最新稳定版本 1.3 往下翻并点击nacos-server-2.2.0.zip,此时就已经开始下载了 1.4 把下载好的压缩包解压到没有中文路径的目录里面 1.5 修改application.properties文件 1.…

Testlink相关功能使用部分总结

1.首页面(普通用户,测试用例创建用户的权限) 右上角切换具体的项目;页面上方包含主页、用例、测试执行、测试结果;左侧包含测试项目管理、关键字管理、编辑测试用例、搜索测试用例、每用户创建的测试用例;…

Element UI的基本使用

学习来源,传送门 目录创建vue项目Element UI主要的标签Vue router 来动态创建左侧导航栏为何会发生嵌套menu与router的绑定设置默认展开设置默认打开页面创建vue项目 以管理员身份,在选定目录下,使用vue ui 按照正常配置配好,可…

Linux(ubuntu)系统搭建docker下的LNMP环境

系统环境 系统:Ubuntu 18.04.4 LTS x86_64 管理面板:宝塔面板7.9.8 下载镜像 通过面板下载docker和docker-compose 下载完毕后通过docker->镜像->从仓库拉取拉取镜像ubuntu:20.04 或者通过docker pull ubuntu:20.04拉取镜像 通过docker->容…

代码随想录算法训练营第四十一天 | 01背包问题-二维数组滚动数组,416. 分割等和子集

一、参考资料01背包问题 二维 https://programmercarl.com/%E8%83%8C%E5%8C%85%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%8001%E8%83%8C%E5%8C%85-1.html 视频讲解:https://www.bilibili.com/video/BV1cg411g7Y6 01背包问题 一维 https://programmercarl.com/%E8%83%8C%E5…

大功率分流电阻器产品阵容进一步扩大,助力大功率应用小型化

全球知名半导体制造商ROHM(总部位于日本京都市)面向车载、工业设备及白色家电等大功率应用,开发出大功率低阻值分流电阻器“GMR 系列”中额定功率最大的、10W 电阻器“GMR320”。近年来,在车载领域和工业设备领域中,应…

什么是敏捷测试

敏捷 反应快速灵敏。 在敏捷软件开发领域,更注重的以人为核心,迭代,循序渐进的开发方法。相比传统的开发方法,这种方法能更快速的开发,上线,反馈,调整、迭代。以敏捷的姿态去发展产品。 敏捷与…

基于java+swing+mysql员工工资管理系统

基于javaswingmysql员工工资管理系统一、系统介绍二、功能展示1.用户登陆2.员工主要功能3.管理员主要功能三、系统实现1.StudentFrame .java四、其它1.其他系统实现2.获取源码一、系统介绍 该项目功能相对完善,有管理员和普通用户两个角色,分别实现了一…

磷脂酰丝氨酸的作用;CAS:383907-32-2;磷脂酰丝氨酸(phosphatidylserine,PS)

磷脂酰丝氨酸(phosphatidylserine,PS)又称丝氨酸磷脂,二酰甘油酰磷酸丝氨酸,简称PS,是一类普遍存在的磷脂,通常位于细胞膜的内层,磷酯化合物中的磷酸甘油酯类,是细胞膜组…

数字化时代,企业如何通过技术改造传统客户服务模式

B端产品要从流量思维到客户思维上转变,良好的客户服务能够让B端企业走的越远走的越多,当然,对于所有产品或者企业来说,也唯有客户服务才是走的更远更久的保证,优秀的客户服务团队是企业的潜在优质财富。 搭建客服团队…

ATTO 647N-NHS ester,ATTO 647N SE,ATTO 647N NHS酯,适用于单分子检测应用

基础产品数据(Basic Product Data):CAS号:N/A中文名:ATTO 647N-琥珀酰亚胺酯,ATTO 647N-活性酯,ATTO 647N NHS酯英文名:ATTO 647 N-NHS,ATTO647N-NHS,ATTO 64…

为什么转行IT行业都会选择学习Python?

现在学习Python的人越来越多了,很多人都疑惑为什么这么多人转行IT都会选择学Python?为什么学Python要参加Python培训班呢?接下来蛋糕为大家答疑解惑一下吧。 虽然Python已经非常普及,但是大部分的大学都还没有开设Python课程,如果想要学习…

XGBoost学习-应用案例

文章目录一、过拟合:剪枝参数与回归模型调参二、XGBoost模型的保存和调用使用Joblib保存和调用模型三、分类案例:XGB中的样本不均衡问题四、 XGBoost类中的其他参数和功能总结一、过拟合:剪枝参数与回归模型调参 class xgboost.XGBRegressor…

2023前端vue面试题(边面边更)

Vue中key的作用 vue 中 key 值的作用可以分为两种情况来考虑: 第一种情况是 v-if 中使用 key。由于 Vue 会尽可能高效地渲染元素,通常会复用已有元素而不是从头开始渲染。因此当使用 v-if 来实现元素切换的时候,如果切换前后含有相同类型的…

只用最适合的 | 主流 .NET 报表控件全面对比

随着 .NET 平台的出现,报表相关的开发控件随着而来,已经有若干成熟的产品可供开发人员使用,本文旨在通过从不同维度对比目前最流行的3款 .NET报表控件:FastReport、Stimulsoft、水晶报表,给所有报表开发人员在做产品选…

家用洗地机哪款最好用?全球洗地机十大品牌

近年来,智能家用电器洗地机已经融入到我们生活中了,成为最受欢迎的清洁工具了,家用洗地机吸拖洗一体,不用先扫后拖那么麻烦,只需轻轻一推,就能把扫地、拖地、擦地的活全干了,操作简单&#xff0…

【iOS】—— 初识RAC响应式编程

RAC(ReactiveCocoa) 文章目录RAC(ReactiveCocoa)响应式编程和函数式编程的区别函数式编程响应式编程响应式编程的优点RAC操作1.利用button点击实现点击事件和传值2.RACSignal用法RACSignal总结:3.对于label的TapGestur…