`
dtrex
  • 浏览: 139567 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

思考自动化测试--开始(一)

 
阅读更多
Edit

思考自动化测试--开始(一)

自动化测试的开始

自动化测试,从一个大家陌生的概念,到现在越来越多的人在关注使用自动化测试。似乎自动化测试已经成了一个“高级"。但是其实很多人对自动化测试本身有很多误解,自动化测试不是银弹,不是瑞士军刀。自动化测试并不能代替测试本身。很多领导或者客户了解到自动化测试,就都会有用自动化测试覆盖测试的冲动。在这种冲动下,投入大量的人力财力,经常是无功而返的。自动化测试到底怎么了?

自动化测试并没有想象的那么完美

自动化测试到底都有哪些问题?我们为什么会经常感觉做不下去了?为什么投入那么多,效果总是那么一点点。
自动化测试本身有自动测试自己的问题,随着大量投入地去做自动化测试,这些问题会越来越明显,比方说:

  • 编写维护自动化测试脚本成本太高了
  • 天天在跑自动化测试,发现的缺陷数量怎么就那么少
  • 自动化测试为什么就没有节约人力成本
  • 自动化测试为什么就你们几个能用,那么多手工测试人员就不能用起来吗?
    这些问题,其实本身不是自动化测试的问题,而是把自动化测试本身放错了位置。就像开篇说的,自动化测试其实不是这样的。

我们拿自动化测试怎么办

自动化测试一般都是需要编写脚本,通过脚本的执行来达到测试的目的,一般被测系统稳定的话,那么脚本是不需要怎么维护的,反之的话,就比较恐怖了。所以要进行自动化测试,就需要下工夫去开发维护脚本,而且工作量不小。由于他有这种特性,所以自动化测试,尤其是针对业务的功能测试中,最好不要去拼命地覆盖全业务,覆盖所有案例,而且抓住重点核心业务进行回归测试。这样可以减少开发维护工作量,还能尽量保证重点业务的测试质量,测试性价比是最高的。
原则1: 针对重点业务,进行回归的自动化测试
另外,尽量针对较为稳定的业务,或者较为稳定的测试方式进行自动化测试,这样人力的投入主要集中的初期脚本的编写,而之后由于较为稳定,那么脚本的维护工作量也不会太大。当然,这种投入不是越早越好,很多项目经理都觉得自动化测试及早投入,这样我们在项目研发中就可以及早用,及早的享受到自动化测试带来的便利。其实自动化测试,一般要做环境比较稳定的情况再投入开发,这样可以减少维护的成本,另外对于不稳定的环境,执行自动化测试也没有太好的效果,经常跑出的脚本一堆问题,分析来半天其实就是不能用,这样测试的意义就不大了。
原则2:针对稳定的业务(或接口),在环境比较稳定的情况,前期投入脚本开发,有利于减少后期维护成本
还有很多自动化测试,几乎每天都在跑,老是发现脚本错误,怎么就没有真正的缺陷呢,出缺陷的概率这么多,就盲目地增加校验点,结果还是一样。其实不用为了发现不了缺陷而烦恼,自动化一般都是保证主要功能完整可用,这些是他的核心价值,而不是发现多少缺陷。
原则3:自动化测试主要是为了保证主要功能完整可用,而不是为了多发现缺陷
当然,还有些人,做自动化就是为了节约手工测试人员的人力成本,做着做着,发现做了那么长时间自动化测试,为什么人力成本没有减少。不减少我为什么做自动化测试啊?这也是一个误区,自动化测试并不能减少测试的人力成本,而是为了加快测试反馈,提升测试质量。我建议自动化测试可以跟自动化部署工具绑定,在每日构建的时候,自动化执行,可以更早的发现产品的问题,自动地反馈开发人员,从而提升开发修复缺陷的效率。
原则4:自动化测试并不能减少测试的人力成本,而是为了加快测试反馈,提升测试质量
还有一个问题,这个问题在初期开始做自动化测试的人,会比较容易走上的误区----录制回放最好了。其实录制回放,并不好,录制的脚本很多时候是不能直接使用,而且业务或者系统发生变化,很有可能很难修改脚本需要重新录制恢复,这样的工作量也不小。而且还有很多人,自动化测试脚本应该跟业务能挂钩起来,让人一目了然我自动化测试脚本都做了些什么,脚本最好能做到"可视化"。其实这些看似的方便,都给脚本维护带来很多困难,业务和系统是在变化的,脚本是要不断维护,可视化和录制回放其实并不能提升效率,反而是为脚本维护增加工作量。建议如果有能力的话,对脚本本身进行管理即可,编写脚本不用录制回放,使用一些辅助工具,或者设计一些框架,编写脚本会更好。
原则5:不要对录制回放抱有幻想了,可视化也不是一个好的想法
最后一个问题,有很多人任务自动化测试执行这么方便,是否手工测试人员可以进行自动化测试啊?可以吗?很多人持不同观点,有的人任务测试其实要成为开发测试,有开发能力,去写自动化测试脚本;还有的人,觉得测试和自动化测试要分开,两个团队管理;还有的人任务,测试执行,测试数据编写等可以让手工人员参与。其实我觉得这都不是最好的想法。真正应该参与自动化测试的应该是开发。
原则6:开发参与自动化测试,让开发和测试融合在一起

最佳实践

说了这么多芝麻绿豆的,原则也好想法也好,是否有一套方法来支撑整个自动化测试呢,我想简单的说,我比较支持现在比较流行的说法分层测试。利用适宜的测试框架,按照分层测试的范围理论,结合较好的CI工具整合自动化测试。具体的做法我想在下面的章节一一解释说清。

分享到:
评论

相关推荐

    QTP自动化测试-相关练习(操作视频)

    练习如下: 1、使用数据驱动脚本/结构化脚本两种方式,测试飞机订票系统,证明使用4-10位的用户名就可以正常登陆 2、使用结构化脚本订购明天、...3、在上一题的基础上,添加分别购买头等舱、经济舱、商务舱(思考题)

    <<自动化测试培训教程>>

    #### 关于自动化测试的两个思考 1. **什么样的项目适合自动化测试?** 项目的选择对于自动化测试的成功至关重要。通常,长期维护的项目、具有重复测试需求的项目、以及界面稳定且业务逻辑复杂的项目更适合自动化...

    selenium2自动化测试文档

    总之,《selenium2python自动化测试实战》一书适合初学者和有技术背景的读者学习自动化测试和Python+Selenium的实战应用,提供了丰富的实例和深入的思考方式,对想要深入了解Web自动化测试的人员具有一定的指导意义...

    对国内开发自动化测试工具的几点建议和思考

    自动化测试工具的开发是一项复杂而艰巨的任务,需要长时间的技术积累和研发投入。尽管国家在“支撑软件和质量保障”项目上给予了支持,但国内尚未有成熟的自动化测试工具产品面世。与此同时,国外厂商在自动化测试...

    嵌入式系统软件自动化测试.pptx

    自动化测试的思考包括目标—提高测试的效率、利用工具实现全部或部分测试对象、高可靠高安全性要求的嵌入式软件准确描述对象的特征与测试要求途径、建立可重用的有领域特征的测试框架等。 五、测试需求模型 测试...

    浅谈软件自动化测试技术

    软件自动化测试技术是当今软件开发过程中不可或缺的一部分。随着软件应用范围的扩大和软件复杂度的提高,软件测试的重要性日益突出。软件测试是对软件规格说明、软件设计和编码的最后复审,目的是在软件产品交付前,...

    04-自动化测试1

    2. **实现工具**:占35%,要求学生能够熟练使用至少一种自动化测试工具,并能实现实际的测试脚本。 3. **期末考试**:占40%,通过理论知识的考核,评估学生对自动化测试原理的理解。 4. **课堂报告和小测试**:分别...

    自动化软件测试.pdf

    10. **自动化测试项目案例**:这一部分通过一个实际的RUP(Rational Unified Process)迭代开发项目,展示了如何运用前面章节介绍的知识和工具进行需求分析、单元测试、自动化日构建、白盒自动化回归测试、UI自动化...

    selenium2-python自动化测试

    根据给定文件信息,以下是对“selenium2-python自动化测试”知识点的详细说明: ...通过阅读这篇文档,读者可以对如何使用selenium2和Python进行Web自动化测试有一个全面的了解,并能通过实践来进一步提升自己的技能。

    自动化测试程序之自定义键盘的模拟测试程序

    在IT行业中,自动化测试是提升效率、确保软件质量的关键手段之一。本文将深入探讨一个具体的自动化测试场景——自定义键盘的模拟测试程序。这个程序,正如标题“自动化测试程序之自定义键盘的模拟测试程序”所示,是...

    自动化测试学习历程感悟--.pdf

    对于初学者来说,通常是从手工测试开始,逐步过渡到自动化测试。 1. 手工测试是基础:在自动化测试之前,理解并熟练掌握手工测试的方法和技巧至关重要。这包括测试用例设计、缺陷跟踪和测试报告编写等,这些基础...

    构建简单的web自动化测试模型

    随着软件开发技术的不断发展,Web应用变得越来越复杂,为了确保这些应用的质量,自动化测试成为了一种必不可少的方法。本篇文章将详细介绍如何构建一个简单而健壮的Web自动化测试模型,并通过实际案例来解释其实施...

    软件测试大作业-自动化下载课表

    在本项目中,“软件测试大作业-自动化下载课表”是一个综合性的学习任务,旨在让学生实践软件测试的基本理念和技术,并且结合自动化测试工具来实现一个实际的功能,即自动化下载课表。这个作业涵盖了几大关键知识点...

    Holmos自动化测试

    Holmos自动化测试,作为一款模拟福尔摩斯式的侦探精神的自动化测试工具或方法论,强调通过冷静清晰的头脑、敏锐细致的观察力、极强的推理能力和丰富的专业知识来进行高效的软件测试工作。其目标是培养具备类似...

    自动化测试工具介绍.ppt

    自动化测试工具介绍 自动化测试工具是软件测试过程中不可或缺的一部分,它可以帮助测试人员快速、准确、...自动化测试工具是软件测试过程中不可或缺的一部分, LoadRunner 是一种功能强大且广泛应用的自动化测试工具。

    【2021】Python3+Selenium3自动化测试(不含框架)

    本视频系列与《从零开始学selenium自动化测试(基于python)》书籍相配套,两者结合起来学习,效果更加; 2. 每天2小时,1.5周即可学习完毕; 3. 结合课程(书籍中提供的)软件,多练习,多思考 课程目标: 旨在将...

    HiKari的游戏自动化测试笔记

    因此,笔者HiKari决定编撰《HiKari 的游戏自动化测试笔记》这一系列,以UE4+Python的技术栈为主要背景,分享自己近年来做游戏自动化测试的技术经验和业务思考,并为各位做游戏测试行业的同学,尤其是做游戏自动化...

    《自动化功能测试(selenium)》学生实验报告

    本实验旨在让学生深入理解并掌握自动化测试的核心概念和技术,特别是如何利用Selenium这一强大的自动化测试工具来完成Web应用的功能测试。实验的最终目的是让学生能够独立设计测试用例、编写测试脚本,并运用...

    狠狠地聊一下UI自动化测试

    我发现了,大家极度关心自动化测试,尤其是UI自动化测试,虽然现在作为专项测试,离开这些越来越远了,但总能遥想以前,我总能想起自己做nokia的WindowsLive的ui自动化,做web的自动化测试,后面加入腾讯,写过pc的...

Global site tag (gtag.js) - Google Analytics