`
ruby_windy
  • 浏览: 62691 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

走在自动化测试的道路上(二) --我们应该做什么?

阅读更多
引用

    前言:
  • 自动化测试不只是测试的自动化,应当是流程的自动化
  • 自动化测试是一种软件开发交付过程
  • 自动化测试成败在于自动化项目的质量与可维护性


自动化测试对于在黑盒与手工测试工作的大部分人来说,都会比较向往,因为自动化测试很有成就感; 对于直接在自动化测试行业工作的新人来说,会比较迷茫,因为这个较为新生的领域不像开发行业那么成熟;
其实,自动化测试和手工测试一样,是一种测试方法,只是你智力与思维转化的结果; 关键看你是否适合,心态是否正确.
同时,它的发展前景不亚于任何开发行业,你既可以接触专业的自动化测试技术,又可以掌握相关的开发技术,并且可以接触专业的测试专家.


自动化测试的范围

一般我们很难直接限定自动化测试的内容,但以我的理解,先从不适合的方面排除之,你可以试着看一下.

在混乱的项目流程中,不适合推广和试行自动化测试. 自动化测试也是一种项目交付过程.
如果被测项目流程不明确,过程责任不清,没有准确公平的数据度量,
  • 开展了自动化测试效果难于评估,做也白搭
  • 没有清晰的交付测试流程,自动化测试经常的变更成本,以及没有开发支撑的自动化只能从表面下手,导致维护成本过高.
  • 自动化测试能够将流程工具化,这点体现的效果易于得到整体研发的认可与支撑,效果也是极显著的.


打个比方,本来是在公路上(不完善的流程)运行汽车,你非要改进效率跑火车(自动化),适得其反.

自动化测试的关键点之一,在于流程,流程在于人去完善,去改进.然而流程在年少时人的性格,在年长时也改变不了太多,我们自动化要符合流程去做,需要完善的我们去补充完善.而完善流程,不是一味的提要求,而是合理的惯力的要求,更多的时候应该建设平台来支撑流程,让人做到最简化.

一旦流程的完善,自动化随之正规化,可量化的自动化需求,项目成员明确自动化的成本与成果,以及相关自动化约束(例如某个自动化接口实现). 自动化的成功自然随之而然.

所以,自动化测试不只是测试的自动化,而应当是整个流程的一种自动化与完善.

在实施自动化的时候,处理流程相关,最好遵寻:

完成相关自动化项目显示效果 -> 要求改进流程 -> 实现流程过程的自动化

这样带来的项目压力较小,容易获得所需的资源.


自动化测试的过程

有了流程不代表我们肯定会成功,更何况一般需要我们通过自动化测试的成功来带动流程的推进.

自动化测试首先是一种软件开发与交付过程,无论最后的执行与维护是谁!

自动化测试与软件开发过程基本相同,也要经历: 需求->设计->编码->交付 四个核心过程. 与普通的开发过程不一样的是,

  • 自动化需求并不是实际的强制性需求,能够有弹性,最关键的是自动化项目所定下的效果,各利益相关者必须在自动化项目效果期望上达成一致.
  • 一般自动化设计过程相对较为简单,如果有可伸缩好的框架,这个设计过程可以在很短时间搞定.
  • 自动化的维护周期会比较长,所以设计高维护的自动化脚本是必然的.


在实际中,从手工测试过程中学习自动化的人,甚至有对版本管理工具如何管理代码不清楚,那么他去做自动化必然是失败的.
当项目经理对自动化效果期望很高时(这点可以理解,一般人对自动化期望都比较高),而你没有将实际的风险与效果评估展现与说服给他时,就算自动化再成功,这个项目依然得不到所得的效果.
我们在统计自动化成本时,往往发现执行维护阶段最终会超过自动化项目开发阶段.

我们应该怎么做自动化项目

看下我们的目标:

  • 快速开发与交付
  • 高可用维护


选择一门语言:
根据实际自动化需求,我们选择了ruby作为基础开发语言. 实际运用中,推荐使用ruby或python具备完备的模块管理与纯面向对象,,有助于建设高复用的框架与平台.

实现快速迭代:
每天日结,自动化代码要有完备的单元测试,这点通过ruby很容易实现,通过极简洁的单元测试框架让任何人都愿意做自动化代码的单元测试,这点很重要,因为你的代码再也没有人去手工测试了.

实现DRY与业务逻辑分离
DRY即Don't Repeat Yourself(不要重复自己), 永远不要让相同的逻辑代码复写两次. 一旦出现,将其分离封装,如果是公共代码(可能大多数项目会用),将其独立为gem包等形式.
业务逻辑分离,将用例业务层为独立,逻辑处理再次封装,MVC的思想作为参考点.

实际上,自动化项目更适合做敏捷模式的开发过程,如果自动化项目都没有"敏捷", 你的被测项目又如何"敏捷" ?

我们应该关注什么?

除了自动化项目完成时间是重点外,我们要去关注:
1. 质量问题
2. 可维护性

质量关乎自动化项目的生命,
一旦自动化项目的经常跑失败,失败的原因经常是由于脚本引发,并且不收敛,那后果可想而知:
  • 没有人再相信自动化的运行结果
  • 没有人再愿意尝试不断的投入执行与分析一个无法发现有效bug的自动化测试项目中
  • 没有人再愿意投入下一个自动化过程中


可维护性是指后续的产品变更引起的自动化脚本更新快捷方便,
做的好的自动化是超前完成维护的,做的烂的自动化是无法维护的.
可维护性表现可在于1,修复一处代码即可完成相关所有逻辑的处理 2,便于增加新用例与复用代码.

我们谁也不愿意将自动化的脚步陷入不断的无限的维护分析的泥潭中.

总结

上面一些感悟,例子不多,但将我认为最重要的东西表达出来了,很多东西并不是死板的,呆滞的.
自动化领域更讲究创新思维.

能够将你所看到最繁琐,最无聊的事情通过自动化解决了,这就是做好自动化项目的最核心思想.

但自动化之路不是一朝半夕可以掌握,很多弯路也许你是必须要走过. <异类>一个观点叫 1万小时规律, 你不去认真做一万小时的事情,你是不可能成为高手的. ( 1万小时大概需要5-6年 )

在这里共享一些心得,也与刚入门的兄弟姐妹们共勉之. 共同进步.

最后推荐一个最近文章<测试技术专家之路的成长>,我想自动化专家的发展也与此类同:
http://www.51testing.com/?uid-293557-action-viewspace-itemid-247194

多实践,找出与自己公司合适的自动化发展之路,而不是好高鹜远,更不是以技术牛人自居,只有这样,才能脚踏实地,一步步走好适合自己的发展历程.任何行业不都这样吗?
0
3
分享到:
评论

相关推荐

    《软件自动化测试成功之道》随书光盘 - QTP_Codes.rar

    《软件自动化测试成功之道》是一本深入探讨软件自动化测试策略、方法和技术的专业书籍,而随书光盘"QTP_Codes.rar"则包含了与书中内容相关的代码示例和实践资源,旨在帮助读者更好地理解和应用所学知识。QTP,全称...

    一个企业的自动化测试实施真实案例

    随着现代企业规模的迅速扩张以及市场竞争的日益激烈,产品质量已然成为企业能否在市场中立足的关键...只有通过不断的实践和优化,企业才能在自动化测试的道路上越走越远,最终达到提升软件质量、增强市场竞争力的目的。

    python+selenium自动化测试环境搭建

    Python 和 Selenium 是一种常见的自动化测试组合,尤其适合初学者入门。在本文中,我们将详细讨论如何搭建这个自动化测试环境。 首先,我们从安装 Python 开始。...祝你在自动化测试的道路上越走越远!

    2018年北京市自动驾驶车辆道路--报告精品报告2020.pdf

    北京市的开放道路总里程全国领先,并在持续促进企业规模化测试和测试里程领跑全国。 整体而言,北京市在自动驾驶车辆道路测试方面的工作思路清晰,既重视安全,又注重创新,力求在保持有序创新的同时,实现智能网联...

    软件测试基础教程

    《软件测试基础教程》这本书籍提供了一个全面的平台,旨在帮助读者深入了解软件测试的各个方面,无论是手工测试还是自动化测试,都做了细致的讲解。这本书不仅为初入测试行业的人员提供了指导,也为经验丰富的测试...

    办公室自动化、办公自动化与OA (24).pdf

    办公室自动化(Office Automation,简称OA)是现代企业管理和办公流程中的关键组成部分...参考文献和专业指导则为企业提供了理论支持和实践经验,帮助他们在自动化转型的道路上少走弯路,实现真正意义上的智能化办公。

    软件测试晋级

    3. **自动化测试工具**:熟练掌握常用的自动化测试工具,可以大大提高测试效率。 4. **性能测试**:随着软件系统的复杂度不断提高,性能测试成为确保软件稳定运行的重要手段。 5. **安全测试**:随着网络安全威胁的...

    软件测试电子教程

    在IT行业中,软件测试是确保产品质量的关键环节。本电子教程旨在为初学者提供软件测试的基础知识,帮助你踏入这个充满挑战和机遇的领域。...在实践中不断学习和积累经验,你将在软件质量保障的道路上走得更远。

    软件工程之软件测试教程

    6. **自动化测试**:利用工具自动化执行重复性任务,提高效率,如Selenium用于Web应用测试,Junit用于Java单元测试。 7. **敏捷测试**:在敏捷开发框架下,测试是迭代和增量进行的,强调快速反馈和持续集成。 8. *...

    XX软件测试工作总结范文.doc

    总而言之,软件测试领域提供给测试人员的成长空间非常广阔,无论是走测试管理、测试技术专家还是自动化测试专家的道路,关键在于个人的努力和积累。明确职业规划、不断学习实践、积累专业知识和技能,以及积极分享和...

    测试-梁微微.docx

    在中汇自研的分布式数据访问框架FinDB的高可用测试中,她通过模拟各种故障场景,进行SQL语法测试和自动化测试,以及缺陷跟踪和验证,展现了她在测试技术上的专业性和创新性。在精益系统/OA系统项目和基准定价系统...

    python基础笔记.zip

    深入学习Python,掌握更多的库和框架,如BeautifulSoup(网页抓取),Pandas(数据分析),以及自动化测试工具如Robot Framework,能让你在软件测试领域更加得心应手。不断探索和实践,将使你在Python编程和测试自动...

    我国首条自动驾驶测试封闭高速公路建成.pdf

    从全球范围来看,中美两国在自动驾驶技术的应用上走在了世界前列。 然而,自动驾驶技术的应用也面临挑战。波音737Max空难提醒人们,自动驾驶程序需要针对不同机型、不同路况进行充分的测试和调整。737Max机型半年内...

    测试工程师转正申请书范文.docx

    - **目标设定**:计划在未来一年内,熟练掌握自动化测试框架设计与实现,并带领团队完成至少一个自动化测试项目的部署。 最后,再次感谢公司给予的成长平台和支持,期待能够成为正式员工,为公司的发展贡献更多力量...

    JBoss encore 工程和 JUnit测试自动生成工具2

    在encore的基础上,结合JUnit测试框架,我们可以构建出一套完整的自动化测试解决方案。JUnit是Java领域广泛使用的单元测试框架,它允许开发者编写可重复执行的测试用例,确保代码的正确性和稳定性。通过JBoss encore...

    谨记企业实施DevOps的正确道路-V0.91.pdf

    文中提到的DevOps转型道路的障碍包括10个深坑,例如流水线设计不合理、安全能力和DevOps割裂、自动化测试不能被信任等问题。为了避免这些坑,文档提出了一系列实施DevOps的要素和关键阶段。 实施DevOps的五个关键...

    软件测试(评测师考试)计算机四级软件测试

    2. 自动化测试框架:探索Selenium、Junit等开源测试框架,提升自动化测试的效率和效果。 3. 敏捷测试:理解敏捷开发理念,学习Scrum、Kanban等敏捷方法在测试中的实践。 4. 安全测试:关注应用程序的安全性,学习...

    软件测试技术入门教程

    随着技术的发展,自动化测试工具如Selenium、JUnit和Appium等变得越来越流行。它们能减少重复性工作,提高测试效率和覆盖率。 六、敏捷与持续集成 在敏捷开发环境中,测试是迭代和持续的过程。持续集成强调频繁集成...

    2019年软件测试年终总结3000字.doc

    性能测试让我们关注系统的负载和压力承受能力,自动化测试则能提高效率,降低重复劳动。此外,了解并掌握敏捷开发、持续集成/持续交付(CI/CD)等现代测试实践也是提升测试效率的重要手段。 在新的一年里,我将继续...

    《计算机软件测试技术》

    在自动化测试越来越受到重视的今天,熟练掌握各种自动化测试工具和框架是软件测试工程师的必备技能。Selenium、JUnit和TestNG等自动化测试工具在业界被广泛使用,它们能够帮助测试人员高效地执行重复性的测试任务,...

Global site tag (gtag.js) - Google Analytics