潦草白纸

自动化测试概念总结

自动化概述
        工业革命之后,蒸汽机替代手工劳作,再之后出现了柴油机、电力、核能,然后走入电子智能时代。机器替代手工,一步一步的自动化演进过程。工业生产自动化、办公自动化、智能机器人、专家系统、决策支持系统、计算机集成制造系统。机器不断的替代人类劳动、思考、分析。
        自动化(Automation)是指机器设备、系统或过程(生产、管理过程)在没有人或较少人的直接参与下,按照人的要求,经过自动检测、信息处理、分析判断、操纵控制,实现预期的目标的过程。

自动化测试概述
        计算机软件,即为替代人类简单记录、思考、分析的工具。在软件生产的过程中,为了保障软件的可靠性、可用性、健壮性以及高性能,便出现了这个角色——软件测试工程师
        机器替代手工似乎是一个必然的趋势,就像是工业时代的打铁匠,可能在不久的将来,频繁的鼠标点击声,也会如当年铁匠的打铁声一样渐渐沉寂。
        自动化测试(Automation test)是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
        在此我想说的是,自动化测试是一个工程问题,是一个管理问题。不是仅仅以一个录制回放的工具就能解决问题滴。

自动化测试的弊端
  • 人员
            较高的学习成本,同时核心人员的流失将会导致整个自动化测试工作停滞。
  • 需求
            频繁的需求变动带来测试脚本维护成本的直线上升。
  • 成本
            收费工具license太贵,免费工具需要二次开发,这需要根据实际情况寻找平衡点。
  • 时间
            短项目周期项目,自动化收益不大。 
  • 自动化测试到底是不是银弹? 你是怎样看待自动化测试的
自动化测试的适用范围
        回归测试、兼容性测试、辅助枯燥操作
自动化的趋势
        在软件生命周期中,其实不止测试可以自动化。自动化持续集成、自动化部署、自动化运维管理等,一切的目的都是在提升产能。
        在测试过程中的自动化:
        用例设计:用一些用例设计辅助工具,例如
            PICT入门http://www.taobaotesting.com/blogs/show/302
        代码走查:用一些白盒代码扫描工具,例如
            白盒静态自动化测试工具:PMD使用指南http://www.cnblogs.com/snifferhu/p/3463597.html
            白盒静态自动化测试工具:FindBugs使用指南http://www.cnblogs.com/snifferhu/p/3496208.html
            著名的 Java 覆盖测试工具 Emmahttp://www.oschina.net/p/eclemma/
        通信接口:用一些通讯测试的测试工具,例如
            soapUI-使用手册http://www.doc88.com/p-783671297829.html
            协议自动化测试框架 https://github.com/JohnnyAWK/Socket-Protocol-auto-test-framework 
        用户界面:这就波澜壮阔了,海量的工具库。(稍后分享)
        看到我刚才所列举的工具,分别从设计、代码、接口、界面逐层列举。现有的一种比较潮的趋势在于分层自动化。自动化测试——回顾与展望http://www.infoq.com/cn/news/2014/02/autotest-2013
        其实整体趋势在于把自动测试更加的细化,以往麻烦的工作点都涵盖进来。
用户界面自动化测试工具
        其实关于这个的自动化很多很多,大致分为行为驱动和参数驱动两个方向。
        行为驱动具有代表性的框架Cucumber 是一个能够理解用普通语言 描述的测试用例的支持行为驱动开发(BDD)的自动化测试工具,用Ruby编写,支持Java和.Net等多种开发语言。http://cukes.info/
        参数驱动具有代表性的框架Robot Framework是一种基于Python的可扩展关键字驱动自动化测试框架http://robotframework.org/
        这里只是简要说明下思路,并不细致列出其区别。
自动化测试大致流程
        需求分析->制定计划->部署环境->录制脚本->数据准备->测试实施
        需求分析:分析项目可否采用自动化,哪些层面能拿来做(这里只讨论自动化相关的内容)
        制定计划:自动化工具选型哪些合用,有些什么风险,没有做好工具选型常常导致自动化测试失败
        部署环境:提前部署自动化测试环境
        录制脚本:测试脚本也是代码开发,做好解耦很关键
        数据准备:录制好脚本根据业务需求准备好相应的数据
        测试实施:常常因为脚本自身的原因报错,代码维护常常导致自动化测试失败
        环境还原:每次测试之后,自动将环境还原以保证缺陷能正确重现
        收集结果:将缺陷分类整理收集,制作缺陷趋势图、缺陷模块饼图等
        测试报告:拿着之前制作的图标,写几句总结,出报告吧
总结
        写的很简略,只是列举了一些思想。没有具体的实现,如有疑问或需详解。请联系我。
        
            

posted on 2014-04-25 20:27  潦草白纸  阅读(945)  评论(0编辑  收藏  举报

导航