自动化测试经验分享

时间:2024.4.21

一、测试的困惑

以前我时常反思,测试组的工作多吗?我的回答是多。测试小组的工作成果的好坏和工作任务的多少成正比吗?最终的回答却并非成正比。我们的测试工作成果往往并不理想,甚至是差。那么为什么事倍功半?这问题很难找到清晰的答案。

参与了外部培训之后,发现了自己在对测试的工作有了新层次的理解。对之前工作成果差的问题思考也有了新的方向。“测试的最高境界是找出所有BUG吗?不是,测试的最高境界是不需要进行测试。为什么不需要进行测试?是因为所有的问题都已经在软件各阶段中介入的测试工作中给预防解决了。由此引申,测试的定位并不是找出BUG,而是预防BUG。” 这是我培训报告中的一部分。如果测试的出发点只为是发现BUG,那么测试工作将会如何?辛苦的发现了一个BUG,之后开发针对性的修正了这个BUG,再回重新测试的过程,又会有多少人会重新被卷入,又会有多少BUG因此而产生,又需要花费多少时间,答案可想而知。这就是我们忙又不见成果的主要原因。所以改善这个问题的出发点就是改变对测试工作的认识——测试的目标并不是为了找出BUG,而是预防BUG的出现。

如何理解正确的测试目标是预防BUG的出现。首先可以从软件测试的阶段划分来看。软件测试的阶段划分为需求、设计、编码、测试、验收。但按此划分来定位测试是错误的。假如在编码阶段完成后测试出的BUG属于设计问题(这也是我们测试工作中经常遇到的情况),那么我们已经编码完成的产品就要面临着伤筋动骨的修改,这样的修改会带出多少个新的BUG出现?为这个修改我们又要重复的测试我们的新提交版本多少次?想必都有很深刻及惨痛的答案了。由此可以说明需求设计阶段的测试比编码阶段测试重要的多。在需求上出现的BUG就很有可能足以推翻整个产品。那么如果在需求设计阶段测试人员就能发现产品设计的BUG,那么就可以避免了因此而衍生的产品BUG,达到预防BUG这种测试理念的目标。 那么又如何能做好以预防BUG为目标的测试工作。“测试工作不只是一种技术,也不仅是一种活动。测试工作的成功也不能取决于测试成果,测试的BUG越多并不能证明测试工作做的好,所以由此引申,测试工作要站在团队的高度来开展,在团队中做好测试,而不是在测试小组中做好测试。”这是我培训报告中的另一部分。要做好以预防BUG为目标的测试工作,首先要尽早的参与到项目中,其次就是需要各部门及小组的大力支持,与业务、项目、代码人员共同形成团队,在团队中影响其他小组提高产品质量,更好的完成以预防产品出现BUG为目标的测试活动。

总结来看,我个人觉得拥有这样的测试理念可以解开我们的疑惑,带领我们走出目前的困境。

二、自动化测试迷失

随着工作、发展、提高等等多方面的需要,我接到了开展自动化测试的研究工作。概念上来说自动化测试是一种测试度量体系。现实点来说,自动化测试可以为我们自动、无误的运作完成大量且需要重复执

行的测试用例。这是多么让人振奋的概念。甚至可以解开我上文所提到的有关测试工作的困惑。我很兴奋的去展开研究目前最流行的自动化测试工具之一QTP。甚至设计出了管理中心的三个重要功能的自动化测试脚本,并且运行无误在自动化测试讨论会上兴奋的向大家演示。之后还用工具按键精灵设计出了前端的A类测试用于实际的测试。但很让人沮丧的是最终这些脚本全被遗弃在电脑硬盘的角落,再也没派上用场。为什么?因为他们维护起来很困难,因为他们编写它们的时间与实现的价值并没有超过手工测试。这就是自动化测试吗?怎么不可行啊,我有点不太相信这种结局,所以我再一次困惑了。

外部培训的老师这样告诉我们:“我们并没有理性的看待自动化测试,自动化测试并不是我们看上去的那样美。首先自动化测试能直接的节约成本、让测试人员变轻松的想法是一个误区。因为原本用于手工测试的时间用来编写及维护测试脚本了,而完善的自动化测试脚本编写或维护的时间很可能会超过手工测试的时间。再者自动化测试脚本用例是测试人员所编写,自动化测试只能是沿着该测试人员的“足迹”前进。所以用自动代测试来发现更多软件产品问题的想法也是一个误区。其次并不是所有的测试都能自动化,测试的自动化也不一定是解决问题的最佳手段。”

听完这些,原本困惑的我又多了份惊讶,一方面惊叹产述的这些状况与我之前的自动化测试的试行失败是相近的。另一方面又猜疑这自动化测试该不会像共产主义社会那般吧!随着培训内容的展开,我终于解开了困惑,何为理性的看待自动化测试。

“如同不能指望原始社会拥有了汽车就能进入现代社会一样,自动化测试工具永远都不能主导测试实现自动化”(出自国信培训文档)。我们错误的把自动化测试看成了一种测试工具或测试手段。自动化测试是一种理念,它要发挥它真正的作用就需要这种理念转变为一种体系——自动化测试体系。

“引入自动化测试的前提是已经建立了合适的自动化测试体系,如果没有这些,而片面的追求自动化,无异于缘木求鱼。自动化测试体系是指能够适用某种环境的测试工具、过程、人员结构、方法的综合,运用于整个项目团队” 。回到我之前的对QTP研究失败的原因,首先我开始就觉得因为研发的设计、编码实现并没有考虑到自动化,而导致自动化脚本的编写非常吃力。比如产品页面项目的命名不规范,导致自动化测试工具很难捕捉这些页面对像。其次就是测试脚本的方向迷失,我在研究QTP的时候就发现了这个问题。随着我一点点的在编写着脚本,我不断的发现自己在的测试脚本的编写方向上出现了迷失。这段脚本我编写的目标本来是功能测试,但随着我的补充却接近于开发级的单元测试。而另一段本属于功能性测试的脚本,因为功能的重点需要,我又补充了部分脚本导致整个测试脚本测试目标变成了完整关联性测试。而做为单元测试的脚本却并没有在开发的角度上来设计,根本做不到函数、类等代码级的测试,根本不能达到要求。做为完整性测试的脚本也无法模拟接口功能中几何倍数级的各种条件输入对应的输出测试。而功能测试脚本算是硕果仅存,但随着开发对产品的代码大规模调整(这些调整当然不会考虑对已经实现的

脚本的影响)而直接“报废”。如果需要脚本继续工作,那么就要花时间来修改调整它。这些脚本的结局又再一次可想而知了。

所以首先我们要理性的看待自动化测试,不要片面的去追求它。对不同的项目要开展不同自动化策略。参考如下

(1) 评审项目中特定的部分作为应用自动化的候选对像。

(2) 从项目中高度冗余的任务或场景重点考虑自动化。

(3) 将乏味且人工容易出错的工作重点考虑自动化。

(4) 将回归测试经常需要“照顾”到的部分重点考虑自动化。

(5) 自动化开始时要首先关注开发成熟、理解透彻、相对稳定的且不易变的部分优先考虑自动化 其次,自动化所实现的最大价值目标是可不间断的、可重复的自动执行对需求、设计、代码全面覆盖的大量测试用例从而预防bug的产生的一套质量保障机制。所以自动化测试的重点在于测试自动化作为一个体系,要运用于整个项目团队。项目组要讨论它(策略、时间、成本等)、研发需要参与它(编码方向、自动化支撑、以及代码单元测试自动化的计划和执行等)、测试要引导及推进它(策略、方法、执行、跟进、维护等),各团队共同形成体系,才能让自动化测试工具真正的成为一种质量保证的有力武器。


第二篇:自动化测试实施策略(自动化测试经验分享)


自动化测试实施策略(自动化测试经验分享) 以下内容来自《软件测试精要》一书20xx年电子工业出版社出版

自动化测试实施策略

我们在制定自动化测试实施策略时,首先应该考虑其中可能存在的风险。 1.自动化测试时间不充足

2.对自动化测试期望过高

3.缺乏自动化测试实施的经验

4.自动化测试工具更新过于频繁

5.自动化测试工具对软件测试本身没有起到帮助作用

6. 当我们有了针对自动化测试实施风险的准备后,就可以开始考虑: 6.1 需要在什么阶段开始启动自动化测试?

在何时启动自动化测试,每个公司的情况都不同。有的公司是在

测试用例都手工执行过并且测试用例不再修改时,再开发相应的

自动化测试脚本;而有的公司则是在开发测试用例的同时,就进

行脚本的开发。如果团队中测试用例的设计者是一个有着丰富测

试用例设计经验的工程师,他所开发的测试用例是高效的,未来

改动较少,则可以考虑在开发测试用例的同时,同步开发自动化

测试脚本。如果团队中测试用例的设计者是一个测试用例设计经

验不丰富或是设计的测试用例质量不高效的人,其开发的测试用

例需要在后期经常进行许多的改动,则还是考虑等到测试用例本

身稳定后,再开始脚本开发。

6.2 自动化测试的人力投入方式如何?

大部分公司是由专人进行自动化测试脚本开发的,少部分大公司则是全民开发自动化测试脚本。这两种方式都各有利弊:专人进行脚本开发,优点是开发脚本的专业技能可以不断地得到强化,开发效率大大提高;缺点是由于对开发模块的测试用例了解并不深入,有可能开发出的自动化测试脚本只是“翻译”测试用例,发现bug的概率较小。而有的大公司,由于员工的整体素质较高,通常都具备一定的开发能力,则由每个模块的手工测试者自行开发自动化测试脚本。虽然,手工测试者脚本开发的熟练程度没有专门的脚本开发者熟练,但是由于手工测试者是最了解测试用例真谛的人,因此他开发出的测试脚本就不

仅仅是“翻译”,而可能是对测试用例的“升华”,其测试脚本发现bug的概率会更大。

如何执行测试脚本才更高效? (1)N个测试环境同步并行执行测试脚本,可以将自动化测试脚本执行的总时间成本降低为1/N。

(2)由专门的自动化测试执行工程师来执行批量的自动化测试脚本。自动化测试脚本运行失败的前3大因素大致为:

?测试环境问题

?脚本错误

?被测目标出现bug

由于专门的自动化测试执行工程师对大量失败的脚本分析经验的积累,通常可以非常高效地定位脚本失败的原因,提高自动化测试脚本执行的效率。 (3)独立的自动化测试环境供脚本执行团队使用。如前所述,测试环境问题是测试脚本失败的原因。而测试环境影响测试脚本执行的两大杀手:一个是测试环境被前一个失败脚本破坏而未还原;另一个则是测试环境被其他项目的同事给破坏了。对于第一种情况,我们可以在测试脚本的代码结构中加入足够的系统恢复代码来解决;对于第二种情况,则只有依赖于公司领导的政策支持,是否愿意腾出足够的测试环境给自动化测试执行小组专用。

(4)在测试脚本中加入丰富的脚本失败的定位信息。自动化测试脚本一旦失败,我们就只有依靠脚本自身打印的信息进行定位了,定位问题的速度快慢除了依赖脚本执行人员自身的经验外,更依赖脚本中是否有着丰富的脚本打印信息。

(5)使用自动化测试基线软件版本。当出现大批量测试脚本失败的情况时,可以在排除了测试环境问题后,直接把这些失败的测试脚本在基线软件版本中运行。如果在基线版本中运行全通过了,则证明脚本失败原因是产品新bug引起的,而不用逐个地去阅读这些失败测试脚本的源代码来分析脚本自身原因。

更多相关推荐:
造价实际工作经验分享

造价实际工作经验分享20xx[说明:虽然说的施工方面的但是对造价也很有借鉴意义,一个成熟的造价人对施工过程也是要非常了解的!]回忆从20xx年x月至今整期项目实施过程中,整改意见加起来多说不过10条。到20xx…

毕业研究生求职经验分享

毕业研究生求职经验分享面试经历:求职过程中,我有面过不少公司,有过不少机会,我想这也和我有施耐德的实习经历有关。外企有埃克森美孚,陶氏化学,巴斯夫,空气化工,塞拉尼斯,丹佛斯,康明斯,LS电缆,库柏电气,斯伦贝…

幼儿园经验分享交流

20xx年x月经验分享交流各位领导,各位老师,大家好:今天我能在这里为大家介绍工作经验,感到很荣幸其实我们每一位教师在工作中都有自己的特点和特色。我班在班级工作方面作了一些探索和尝试,获得了一些有益的经验。有句…

经验分享

我的房产中介开店经验分享决定创业是因为在一家房产中介公司做了3年的经纪人之后考虑的,在那家公司做到了经理级别,做得还不错,也攒了一些钱。有了这3年的经验,刚开始信心满满的,再怎么说也是在大的中介公司做过房产资深…

外贸单证员从业经验分享

转:外贸单证员从业经验分享我来讲一讲我做单证的经过!我做了两年的单证,从机械设备、五金产品、化工产品、纺织品、农产品、电子产品等等。因为我们的公司是外贸公司,什么产品都出口。刚开始到公司,被分配先做单证,虽说在…

华中师范大学教育学考研成功经验分享

华中师范大学教育学考研成功经验分享勤思学员李同学考入华中师范大学教育学总分:358专业课:225(我是勤思考研教育学王老师,如果有更多考研参考书目,院校选择,备考信息等问题,可以加一下我个人的QQ2579103…

20xx年中山大学化学考研复习经验分享

今天,我终于可以回报考研论坛了,在这里,我得到过很多人的帮助,也得到了很多珍贵的资料。我想把我准备一年半的考研历程分享给你们,尽管已经知道可能会读不到研究生了,现在的成绩还没有出来,但到那都是以后的事情了。我希…

英语复习经验分享:大作文写作经验

凯程考研辅导班中国最强的考研辅导机构考研就找凯程考研学生满意家长放心社会认可英语复习经验分享大作文写作经验我不知道今年大作文的字数要求是多少去年大作文的字数只要400字左右而以前最多的时候是500600之间我想...

美术教学中的素质教育经验分享

美术教学中的素质教育经验分享美术是学校教育的有机组成部分美术教学过程始终具有教育性这已是不争的事实美术教学能够培养学生的思想道德和意志因此美术教学应做到教学练育四结合以全面发展的观念来育人一个有责任心的教师在教...

公司管理经验分享交流会主持词

各位领导各位同事大家好作为我们企业的中层主管在工作中常常会受到来自各方面的压力公司的发展愿景和现实的矛盾工作中执行力度的把握在工作中也碰到一些困难感觉不堪重负但有句古话说得好不忍辱焉能负重一流的中层管理者他们首...

著名班主任工作经验分享

著名班主任工作经验分享上周周末听了桂贤娣老师的讲座我深有感触桂贤娣老师是湖北武汉市汉阳区钟家村小学教师全国著名班主任中学高级教师湖北省特级教师湖北省名师全国优秀教师全国模范教师现就她做班主任的经验说出来与大家共...

作文教学经验分享

作文教學經驗分享李美娟一國文教學的目的國文教學教導上百篇範文學習文字的形音義其目的不外就是作文有感於學生一畢業就恨不得擺脫這些可怕的文言文在工作沒幾年後範文內容即拋之腦後因此我深感只有作文才是真正帶得走的能力也...

经验分享(223篇)