自动化测试是不是能达到90%甚至100%的覆盖率?

原创 2007年09月20日 22:15:00
    自动化测试是不是能达到90%的覆盖率?
    简单的说,理论上可以。实际上不可能。
    在网上看了不少关于测试自动化的文章, 大多是“高屋建瓴”,或者是互相转述。就像写程序,写的越抽象的顶层父类越不容易出错,都是指导性方向性的话,轻易是找不出什么破绽的,也不容易被驳倒。
    本人喜欢钻研技术,奉行实用主义,对于遇到的问题常常持否定态度,不会从战略性高度看问题,因为往往技术上的一个小小细节可以否定一整套方案。在考量一个方案是否可行时,首先就是相关的技术细节是否走得通。如果逻辑上都走不通,那也不必费力气去搞下一步了。
    对于自动化测试是不是能达到90%的问题想说说自己的体会。
    按照实用主义的逻辑我列举几个实践中遇到的困难。
    1。眼下的开源工具层出不穷,测web,gui的,unit test的。几乎覆盖了测试的所有方面。那是不是这些工具加在一起,就等于是一个完整解决方案了呢?   
    拿web测试工具来说,selenium,httpunit,htmlunit,watij。这几个工具,有的是依赖浏览器,有的是不依赖浏览器的,各有长处。
  • 困难一,难识别。IE的容错性太好了,对不规范的HTML代码一样可以正确解析,被测试的产品肉眼看上去没有问题,看看HTML代码真是糟糕。设计再好的工具,对这方面还是要有些要求的。虽然有Xpath,那样的代码真是难以读懂。
  • 困难二,页面上元素属性经常被随意改动。开发随心所欲,因为只要在浏览器里看起来正常,最终用户是不会在乎某个字段实际的名称是什么的。这样写好的测试代码受到的影响非常大,要花额外的功夫去维护。这个成本在项目开始之初是需要考虑进去的。
  • 困难三,难写。这是专门指除selenium外的几个工具,都要求有基本的java基础。这其中htmlunit为最甚,每次点击输入都要指定返回的类型,每次去抓不规范的URL,都要从数组里搜一遍。不熟悉的话,五个页面的操作,估计要写上一天时间。这一点watij相对较好,java包装的IE的api,抓页面上的对象,语法都比较简单,但不能跨平台。
    2。许多人觉得什么人都能搞测试自动化,更要全民皆自动化。全面自动化等于不等于高自动化率?不是,国情不同,也许国外的QA人员素质比开发人员的水平高,对于开发语言,各种工具,理论都很熟悉。这样的的QA人员可能一个顶几个,不过人力成本也大。国内的情况是,QA水平低于开发很多,低到写简单的自动化脚本都觉得困难。再好的工具也会被说成不好用,不放心,还不如手工测试。当然,也有好学上进的,努力学习各方面知识,自动化工具用的也很好,结果怎么样? 去做开发了。一句话,几亩薄田种不出好庄稼。
   
   
    3。有人说我们拿自动化测试工具去发现bug。
    这句话要分两面看,如果是用来做回归测试的话,去发现原有功能不应该出现的问题,这是自动化测试工具擅长的,可以为产品提供信心保证。工具只会做人们告诉它要做的事情,要它主动去找bug,这个说不通。

    这样说来,测试自动化的前景并不是很乐观。未必,只要认清误区,降低期望值,缩小并专注于一定范围,自动化还是会起到应有的作用。 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

UI Test自动化测试查看覆盖率注意事项

UI Test自动化测试查看覆盖率注意事项参考博客地址:http://www.cnblogs.com/hushuai-ios/p/5281932.html- 查看 clang -v 需要进入 xcod...

iOS UI自动化测试与代码覆盖率

一、前言   由于苹果开发的封闭性,一直以来都没有良好的测试驱动开发支持。怀抱在iOS开发中实现TDD持续集成的工程师们为此提供了许多三方库以达到与Android开发同等的TDD支持,然而由于其...

android自动化测试之代码覆盖率报告EMMA

以下代码时监听测试程序结束后将Emma测试报告写入到虚拟机上,然后可以使用adb pull命令发送至硬盘上,这里需要测试程序集成Emma jar包,并需要修改ant build文件。  ...

parasoft Jtest 使用教程:达到80-90%的代码覆盖率

parasoft Jtest介绍和试用>>> 一般而言,Jtest可以达到约60-70 %的代码覆盖率,并提供一些快速和简便的方法来提高测试覆盖率,以帮助您实现目标覆盖率。 预先知识准备 1.测...

mocha、chai、sinon和istanbul实现100%单元测试覆盖率

敏捷软件开发中,最重要实践的就是测试驱动开发,在单元测试层面,我们试着实现一个重要的指标就是测试覆盖率。测试覆盖率衡量我们的代码是否已经全部被测试到了。 但是指标本身不是目的,借助测试覆盖率检查...

使用 Spring + Mockito+PowerMock +spring-test-dbunit+hsqldb 进行单元测试可实现100%覆盖率

使用 Mockito 比easyMock 更简单 使用 PowerMock 可模拟静态、私有方法 使用spring-test-dbunit 可以实现注解方式导入xml 到数据库,为数据库提供测...

简述自动化测试01-ant

■ 文/传智播客安卓基础课程研究组 ■ 文/传智播客安卓基础课程研究组 要想开发一个自动化测试的框架,我们首先需要一个工具,工具的名称叫an...

自动化测试资料

  • 2017-09-11 18:00
  • 3.41MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)