自动化测试是不是能达到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,这个说不通。

    这样说来,测试自动化的前景并不是很乐观。未必,只要认清误区,降低期望值,缩小并专注于一定范围,自动化还是会起到应有的作用。 

自动化测试总结(三)

测试计划定制: 自动化测试计划越全面,后期越能循规蹈矩的去实施,自动化测试的成功率越高 计划赶不上变化,有时候太全面了或许也不是什么好事。 自动化测试设计阶段:主要分为自动化测试框架和自动化测试用例...

各种编程语言的代码覆盖率工具汇总

对于Linux下的C/C++代码,可以在gcc/g++工具编译代码时加上“–coverage”选项来生成可用于覆盖率分析的二进制文件,然后用gcov命令来生成覆盖率统计情况,也可用lcov工具来生成h...

selenium+java+testNG+pageObject深入理解自动化测试框架

关于selenium+java+testNg的环境配置文章,本文主要讲述测试框架的架构实现。 我们知道,搭建一个合理的测试框架能够将自动化测试做大做大,一个合适的自动化测试框架能够极大的降低代码...

集成测试和单元测试覆盖率合并

1.使用 Cobertura 1.1 集成测试可直接调用代码       1.1 http://www.jayway.com/2008/12/13/getting-coverage-for-integ...

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

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

Android UI自动化测试的代码覆盖率

代码覆盖率我们都知道,了解过jacoco也知道如何去弄,那么我们想要在跑UI自动化脚本的时候如何收集脚本执行过程中的代码覆盖率呢?首先我们知道jacoco可以得到测试的代码覆盖率,那么如果这些单测是U...

jacoco统计自动化测试代码覆盖率

一.下载jacoco, ant工具 jacoco: http://www.eclemma.org/jacoco/; ant: http://ant.apache.org 并添加到环境变量; 二.不停j...
  • neven7
  • neven7
  • 2014年12月07日 19:01
  • 4510

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

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

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

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

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

敏捷软件开发中,最重要实践的就是测试驱动开发,在单元测试层面,我们试着实现一个重要的指标就是测试覆盖率。测试覆盖率衡量我们的代码是否已经全部被测试到了。 但是指标本身不是目的,借助测试覆盖率检查...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:自动化测试是不是能达到90%甚至100%的覆盖率?
举报原因:
原因补充:

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