自动化测试更适合缺陷预防,而不是提高测试效率

很多人在回答为什么要开展自动化测试时,立即回想到的答案是提高测试效率。

  这种回答本身并没有错,但我想这只是问题的次要方面。在经过数次的自动化测试时间投入与效益比来看,

  可以基本得出,基于某个场景的测试脚本,在没有变更与维护情况下,脚本执行频率大于5-7次才基本能够收回

  投入成本,产生自动化效益。基于互联网的产品条件下,一个项目或系统如果包含 > =100个测试场景,事实远超这个数据的N倍,其实很难能够保证在收回自动化效益后,场景业务或数据才变更,通常变更是无法预期的或难以控制。

  从技术的手段来保证:

  曾经我们大胆试图在技术上创新,尝试如下技术攻关点:

  1、能否通过手工用例,自动化生成脚本?

  2、业务对象变更自动识别,与脚本自动化维护?

  技术点1与2看起来很有挑战,很值得做,曾经为这样的Idea 也热血,与冷静思考过,并开始一步步逼近实现。

  但现在可以告诉大家四个字:“得不偿失”,其实上面技术点的本质,是在客观上用技术来代替现实世界中人的主观。

  对于技术1,事实上很难能够找到通用的建模方式,来描述用例生成脚本;

  对于技术2,   自动化技术是永远落后开发实现技术的发展,任何新的操作对象产生,必须跟进自动化识别技术,但搞自动化一帮人不可能在office意淫明天会有什么新的对象面世。即,真正意义上的做到完全无人职守,脚本自动生成或通过对象嗅探自动维护脚本,几乎是“布尔什维克”主义, 或者可以说实现上述两种技术方法,要先诞生实验室研究或论文阶段,类似于企业或像阿里巴巴华为这样的大的公司来说,也不会有人站出来说这样做肯定有收益。不过,还是可以参照我的发明专利《http://www.ilib2.com/A-%E7%94%B3%E8%AF%B7%E5%8F%B7~CN200810007645.2.html》,来比较标准与历史对象来发现变更。

  从流程的手段来保证:通过自动化测试体系中流程来约束变更的发现机制?如果,任何变更的源头来自于需求,

  或者业务,他们可以在变更时告诉软件生命周期后期测试环节的QA工程师来维护脚本么?答案也是几乎很难,

  所以从上述技术与流程两个方面来看,就会涉及到测试效率提高的被动性,当然和重复生成测试数据与

  较稳定功能的回归,测试效率还是有提高的,但和刚才提到的测试效率提高的被动性来比,通过自动化测试来提高效率,其局限性就不言而喻了。

  举例来看:

  上个月发布了功能点A,有2000个case,这个月发布了功能点B又新增1000个case。

  对于QA手工测试来讲,如果没有自动化测试介入的情况下,我们只是测试与后面1000个case相关的功能,如果时间允许的情况下,我们把顶多把A功能其中主要的500case测试一遍,就可以认为尽力测试到放心上线了,但问题恰恰出现在A功能2000减去500后的1500个case中,

  但如果我们用了自动化测试角度来看,但我们用了2000个case脚本,我们只要开发功能点B又新增1000个case的脚本,那么我们是可以保证在发布之前,用自动化来check 2000+ 1000=3000case的,

  手工测试的发布时间,肯定要早于用了自动化测试的发布时间,但测试的覆盖与范围从1500case增加到3000case

  那么最后当然得出结论自动化测试更适合缺陷预防,而不是提高测试效率,希望看完这篇文章的同学,能够和我悟出同样结论与观点,也帮助影响你的主管或身边的同事。

自动化测试更适合缺陷预防,而不是提高测试效率

时间: 2024-10-10 13:37:19

自动化测试更适合缺陷预防,而不是提高测试效率的相关文章

手工测试 测试框架?如何提高测试效率?

百度了一下“测试框架”,搜索结果大部分都是“自动化测试框架”.“单元测试框架”,没有手工测试框架.但是所谓框架不就是把“共性部分形成的体系”提高效率和质量吗? 做测试3年,现在想的更多的是如何提高测试效率和保证测试用例的覆盖率.目前所在的是公司是互联网公司(之前一直在传统软件公司工作),节奏很快,测试周期很短.产品需求文档的完善程度也是参差不齐,然后测试时间又比较紧急,除了个别庞大的项目外,领导不会专门预留编写测试用例的时间. 事件一,2015/12/8,领导安排我和另外一个同事测试一个新增节点

怎样提高测试效率

问题: 怎么样可以提高测试效率,在人力有限的情况下怎么把控软件质量?有时因为项目优先级的问题,测试到一半的项目停了去测试其他项目(其他的项目是后面把优先级提上来的),每次这样都感觉到时间紧张,人力紧张,版本更新后客户也会提很多问题: 思考: 1.优先级调整正常都有会,无法避免,重点是调整优先级后,先把高优先级项目的产品质量做好把关,首先要做到如下几点: 一段时间只专注于一件事,严格按照测试流程做好测试执行,影响到产品质量的流程更要做好: 低优先级项目也要保证足够的测试时间,有理有据提供测试估时:

如何提高测试效率

背景: 目前互联网企业,产品更新迭代快,版本发布周期短,预留测试的时间及其短,这样子导致一个问题,产品质量不过关,产品测试员又累,两败俱伤,楼主所在的公司工作了三个多月,把我如何提高测试效率的方式分享给大家,不足之处欢迎留言吐槽. 措施: 1,规范测试流程 从产品需求到设计,全程参与,在原型图出来之后,写测试用例点,建议使用xmind写测试用例点,标好级别:用xmind写用第一个好处是可以理清业务逻辑,第二个是能提高编写用例的时间,方便管理维护 2,自测 开发人员在开发产品过程中,有些功能先开发

提高软件测试效率的方法探讨

摘要:有位大师曾经问我,如何快速发现软件中的BUG?在当时有限时间情况下,我只说了测试者经验.熟悉需求等几个方面,显示这样的回答没能令他满意.软件测试有无银弹?有无高效的测试方法能尽快尽多发现软件中的缺陷?本文汲取部分软件测试工作者经验并结合笔者工作经历,就提高测试效率的一些方法进行归类探讨,以期和同行共享. 关键词:软件测试,效率 前言: 软件缺陷暴露得越早,越能降低开发和维护成本.研究表明软件寿命周期中,暴露缺陷的阶段与修改缺陷产生的开发成本之间的对应关系如下图所示: 软件测试作为一项工作,

QTP自动化测试从零基础到精通进阶(脚本测试、VBS语法、描述性编程、测试框架)

QTP自动化测试从零基础到精通进阶(脚本测试.VBS语法.描述性编程.测试框架)网盘地址:https://pan.baidu.com/s/19yUptC8PBFZFfH-VpyUUpQ 提取码: aa3b备用地址(腾讯微云):https://share.weiyun.com/5JxoIev 密码:dfvpye 通过本门课程的学习,帮助学员熟练掌握功能测试自动化工具QTP,学会编程测试脚本,提高测试效率.作为一名软件测试工程师,不仅仅要有夯实的测试基础,更需要具备进行自动化测试的能力,能够编写测试

你真的这么忙吗?商务办公人士必知的提高工作效率秘诀

忙忙忙!加班加班加班!时间总是不够用!随着工作越来越多,时间越来越不够用,每天九点上班忙忙碌碌到晚上9点下班,周六还要再忙一下~但是,有没有想过,你真的这么忙么?!!给客户传一个大文件,一等就是大半个小时:等重要客户一个邮件回复不停的刷刷刷又是半小时:月底了要报销做了一上午,结果财务没人白跑一趟.时间总是再不知不觉见从指缝溜走,总是到了下班时间才发现工作还没做完,只能加班ing-今天给大家分享4个简单易用的时间管理方法,帮助各位职场人士更好地提高工作效率,让时间事半功倍.1.用好早上的时间不管你

如何提高软件质量及测试效率

首先要搞清楚从哪些方面去关注质量,关注质量一般情况都是从以下方面去关注: 1.行业标准和规范: 2.需求分析(用户需求分析,产品继承需求分析,竞品分析): 3.开发设计方案分析.编码规则分析 4.测试 其次,如何提交软件产品质量呢,以下列举几个部分: 1.从项目开始时则安排测试人员进入 2.正确理解需求.分析需求 3.制定相关标准和规范,Team统一执行 4.审查开发活动及开展单元测试 5.记录开发活动与软件产品的偏差,及时讨论 6.记录不符合需求项和Bug缺陷跟踪,及时报告高级管理者 最后插一

B树、B-树、B+树、B*树介绍,和B+树更适合做文件索引的原因

今天看数据库,书中提到:由于索引是采用 B 树结构存储的,所以对应的索引项并不会被删除,经过一段时间的增删改操作后,数据库中就会出现大量的存储碎片, 这和磁盘碎片.内存碎片产生原理是类似的,这些存储碎片不仅占用了存储空间,而且降低了数据库运行的速度.如果发现索引中存在过多的存储碎片的话就要进行 “碎片整理”了,最方便的“碎片整理” 手段就是重建索引, 重建索引会将先前创建的索引删除然后重新创建索引,主流数据库管理系统都提供了重建索引的功能,比如 REINDEX.REBUILD 等,如果使用的数据

RAID5和RAID10,哪种RAID更适合你(上)

[IT168 专稿]存储是目前IT产业发展的一大热点,而RAID技术是构造高性能.海量存储的基础技术,也是构建网络存储的基础技术.专家认为,磁盘阵列的性能优势得益于磁盘运行的并行性,提高设备运行并行度可以提高磁盘的性能和数据安全性. 20年来,RAID 推出了一系列级别,包括RAID 0.RAID 1.RAID 2.RAID 3.RAID4.RAID 5,以及各种组合如 RAID 0+1 等.其中最广泛的包括RAID5与RAID10.但是一直以来,关于RAID5与RAID10的性能优劣的争端还是