zoukankan      html  css  js  c++  java
  • 自动化测试概念总结

    自动化概述
            工业革命之后,蒸汽机替代手工劳作,再之后出现了柴油机、电力、核能,然后走入电子智能时代。机器替代手工,一步一步的自动化演进过程。工业生产自动化、办公自动化、智能机器人、专家系统、决策支持系统、计算机集成制造系统。机器不断的替代人类劳动、思考、分析。
            自动化(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/
            这里只是简要说明下思路,并不细致列出其区别。
    自动化测试大致流程
            需求分析->制定计划->部署环境->录制脚本->数据准备->测试实施
            需求分析:分析项目可否采用自动化,哪些层面能拿来做(这里只讨论自动化相关的内容)
            制定计划:自动化工具选型哪些合用,有些什么风险,没有做好工具选型常常导致自动化测试失败
            部署环境:提前部署自动化测试环境
            录制脚本:测试脚本也是代码开发,做好解耦很关键
            数据准备:录制好脚本根据业务需求准备好相应的数据
            测试实施:常常因为脚本自身的原因报错,代码维护常常导致自动化测试失败
            环境还原:每次测试之后,自动将环境还原以保证缺陷能正确重现
            收集结果:将缺陷分类整理收集,制作缺陷趋势图、缺陷模块饼图等
            测试报告:拿着之前制作的图标,写几句总结,出报告吧
    总结
            写的很简略,只是列举了一些思想。没有具体的实现,如有疑问或需详解。请联系我。
            
                
  • 相关阅读:
    解决编程开发时候文件命名的苦恼(规范代码 提高可读性)
    react的this.setState没有触发render
    动态修改JS对象的值及React setState
    Antd Select组件结合使用出现must set key for <rc-animate> children问题
    antd Select进阶功能 动态更新、函数防抖
    前端性能优化之重排和重绘
    ES5 map循环一大坑:循环遍历竟然出现逗号!
    Monent.js:强大的日期处理类库
    Docker概览
    Spring boot 集成hessian
  • 原文地址:https://www.cnblogs.com/snifferhu/p/3690001.html
Copyright © 2011-2022 走看看