spoon+robotium+jenkins进行自动化持续回归测试

自动化测试的意义
        别说是外行人,即使是正在从事自动化测试工作的人来说,现在或曾经都或多或少有过这样的疑惑,辛苦写了自动化测试用例,却基本发现不了问题,其意义何在?在说明这个意义前先看下质量的定义。

质量的定义:
        维基百科中对于品质(Quality)的定义:中国大陆亦称为“质量”,可指物品的特征、品性、本质,也可指商品或服务的水准、质量。
影响品质的要素包括物品的可靠性、安全性,功能上是否完备,能否满足需求, 等等。
        对于软件质量的定义:软件质量,是指软件系统或系统中的软件部分的质量,即满足用户需求,包括功能需求和性能需求的程度。软件的质量包括功能、性能、可靠性、安全性、可升级性、可维护性、其他质量特性,这也是我们一般认识中的质量,从而也指导着大多数的质量相关的测试工作
        从以上的定义中也可以看出,对于质量,大家的认知更多的都是在“质”上,而较少地考虑到了“量”上,质量质量应该是质与量的结合,既关注“质”即品质保证,也要关注“量”即效率。随着互联网的高速发展,特别是随着移动互联网的到来,企业希望能够更快地响应市场变化且又希望产品的品质也能够有所保障,因此各类软件项目提速提质相关的如敏捷、持续集成、持续交付、自动化等等技术就诞生了。也就是说对于质量,我们的目的不再仅仅是品质,而是真正的“质量”,即Move fast and don’t break things!
        知晓了质量的本质与目的后,再来看前面的问题就好解释多了,自动化测试较手工测试来说,确实远没有手工测试更能发现问题,但正如前文所述质量的意义除了在于“质”外,还有“量”,因此,自动化测试更大的意义在于“量”上,在于提高效率上,且实际项目中,自动化也不仅仅只是把测试自动化,但凡能提高效率且适合自动化的均应该进行自动化。当然了,理论上自动化测试还是应该要能发现20%左右的问题的,对于一点问题都发现不了的自动化测试,则需要好好思考测试用例设计、测试框架搭建方面的问题了。如何更好、更快、更稳定、更可靠地进行测试自动化,这也即是本文所要分享的。在进入正题前,先看看质量的意义。

质量的意义:
对于用户,质量更多的就意味着软件品质:
        试想这么一个例子:某天,大明正在梦乡中与吃着美味的烤鸭,突然被震耳的手机闹铃吵醒了,大明前一晚由于知道明天早上有重要会议,所以特地将手机闹铃调早了半个小时,但也正因为如此,手机闹铃软件出了点故障,比原定时间迟了半小时才响。。大明只好匆匆忙忙顾不上早餐就出门赶去上班了,且赶紧用打车软件叫了辆车,大明心想应该还来得急,就耐心地等着出租车的到来,在瑟瑟寒风转眼间就过去10分钟了,大明开始急了,出租车怎么还不来。。又过了10分钟,出租车终于出现,原来新手出租车司机由于不认识大明的住处,因此使用了车上的导航,结果由于导航系统未及时更新地图数据,司机开往了错误的地方。。意料之中的,因为没能及时参加会议,大明挨了一顿批。快到中午了,由于心情不佳不想出去吃钣了,大明用外卖软件叫了个外卖,已经饥肠辘辘的大明塞上耳机听着音乐希望可以放松些,结果音乐中间莫名中断过好几次,心情反而更糟了。。。至于下午的事就不说了,最终大明度过了郁闷的一天。
        虽然以上的大明略显悲惨,但也决不是没可能发生的,随着移动互联网的到来,每个人的生活越来越需要手机及其上的软件,每个人的幸福度很大程度地受各种软件的影响,如果所有的软件都能很好地运行,这个世界将变得多么美好~

对于企业,质量则将意味着真正的“质量”:
        随着信息的不断爆炸式增长,我们这个时代的节奏也越来越快,特别是移动互联网,一个软件的项目周期再也不能像传统软件那样半年甚至好几年。试想,如果你的软件项目的持续交付能力比竞争对手弱,那么将意味着对方可以更快地响应市场变化、可以比你更快地将创意付诸实现,那么很显然地,你将失去市场,且在移动互联网,在这种情况下往往花费巨大的营销运营代价都无法挽回颓势。因此,提高软件项目的整体效率势在必行,且需要时时刻刻地去思考如何才能加快项目的运转速度、提高持续交付产品的能力并且还能更有效地保障产品的质量。
        “让天下人都能用上更好的软件”,想必这应该是质量、测试人员,甚至应该是所有软件相关从业者的任务与使命~
        基于以上背景结合实际实践,转入《spoon+robotium+jenkins进行自动化持续回归测试》正题。。

自动化测试的原因:
        例如敏捷测试中所提到的,手动测试需要太长的时间、手动过程容易出错、自动化让人们有时间做更有价值的工作、自动化的回归测试提供了安全网、自动化测试能较早且频繁地提供反馈、测试提供文档等等。
        简而言之,自动化测试可以提高测试效率,将重复的活动自动化后可以有更多的时间去做更多有创造性、更需要人脑思考的探索性测试上。
        基于UI自动化测试的必要性: 对于软件,即使编写了单元测试用例、组件测试用例,但这些测试并不是将软件组合成一个整体进行集成测试的,因此很难发现最接近于用户使用的集成测试问题,况且,很多项目团队压根就没有单元测试。对于android来说,系统版本碎片化较为严重
  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 29
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 29
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值