“自动化”那点事儿

上一篇 / 下一篇  2014-09-28 14:51:05 / 个人分类:测试技术

   “自动化测试”一个炙手可热的词语。面试他人时候,问到发展方向。很多朋友也会和我提到自动化测试。只是问到:
     如何理解自动化测试?
     如何开展自动化测试?
     如何推进自动化测试?

     很多朋友会略显茫然不知所措。其实,自动化测试,离我们真的很近。何为自动?当然是相对手动而言。自动化测试,无非是帮助我们完成一些重复性的,稳定性较强的工作,最终,也是最实际的目的,就是节省劳动成本,提高测试效率。

  一,至于如何给自动化测试下个定义,这就像“一千个读者一千个哈姆雷特”。
         随着工作经验,和实践的积累。每个人都对自动化测试有独到的见解。
         我看来自动化测试可以三个层面来阐述:
   1)大规模,可持续集成的自动化测试系统。
         理想场景是将回归用例完全自动驱动,自动捕获实际结果,自动判定通过情况。自动收集数据,完成报告。
         并且具备数据存储,以便后续分析,且自动驱动本身要可扩展,也就是说我今天这些步骤,明天可以很轻松的加载另一些步骤。
         其实很多框架已经能让我们很容易实现,比如你做web,可以考虑selenium,做安卓,可以考虑robotium,monkeyrunner。
  2)自动化脚本。完成简的,重复的判定工作。
        例如:
        有十个数据请求接口,请求的参数,期望返回结果相同,只是域名不同,请你测试下连通情况。
        这样你就可以写个自动发送http请求的脚本,Java ,php都可以轻松实现。CURL可以轻松帮你实现这个。
        程序获取返回的内容,然后去解析,找到关键字符进行结果判定。
  3)工作流程自动化。这些往往不涉及到结果判定,但可以充分发挥自动驱动的优势。
        简单例子:
        传统测试报告要自己写,一些数据的统计,绘制图表相对耗时。
        可以考虑自动从bug库读取数据,加以分析逻辑,自动生成报告。
        再如:
        如果测试app要手动下载包,手动安装包吧,很轻松实现个自动下载安装的脚本。
        如此是不是能节省你五分钟的时间呢?效率就是慢慢的积累的。
   二,如何开展自动化呢?
          有句话,叫做“物有本末,事有终始,之所先后,则近道矣。”自动化测试,最关键的要明确需求,挖掘自自动化测试点。
     1)了解项目是否具备自动化的条件。
         一定要相对稳定,这个大家都懂。
         一定要便于切入
             小技巧:
             接口自动化,总比GUI自动化容易下手
             功能点的自动化总比系统级的自动化容易下手
              单元自动化总比集成自动化容易下手。
         一定要具备可观的投入产出比。
             考虑到团队人员的技术情况,自动化工程规模大小,完成后价值大小,已经自动成果的生命周期,维护成本等。
    2)逼自己明确需求,并且细分需求。
          例如,要测试在不同场景下,某个App对手机CPU是否有异常占用。
          首先,定义何为异常,你可能会得到信息,CPU使用超过80%为异常。
          其次,明确不同的场景,你可能会总结这些场景,锁屏解锁,打开关闭WiFi,启动App,后台运行,等。
          再次,分析场景驱动的可行性。
                     你可能会了解到,adb shell input event  26 可以轻松模拟锁屏解锁。
                     adb shell am start 包名/类名 可以启动一个app.
                     adb shell input event  3 可以模拟home键,也就是实现后台运行。
                     但是你可能会不知道如何打开关闭WiFi。
                     至于监控CPU情况可以自行分析 /proc/cpuinfo
          然后,将能实现的先搞定,同时尝试挑战困难部分,比如这里的打开关闭WiFi。
                    通过查阅资料会发现
                   svc wifi enable 打开
          svc wifi disable 关闭        
     最后,总结经验。
     3)即便项目上没有可以自动化的东西,那测试过程也必然多少可以自动化。
           写个发布版本记录的小程序也是自动化^_^
  三,如何推动自动化?
          这是一个leader多少会面对的问题。
       1)兴趣决定高度。
             如果一个人对一件事物毫无兴趣,又谈什么做好呢?
             兴趣是靠启发,靠培养的,团建不仅仅是吃饭,想想培养兴趣,更有价值。
       2)  成就刺激进度。
             从小的方面做起,我也分析了自动化的三个层面,很多人理解自动化就是第一层面。
             倒不如从第三层面尝试,总会有能做出点什么机会
       3)虚心总没坏处
             我不喜欢别人叫我大牛,我也从来不是什么大牛。
             我时刻期望有人能教我有价值的东西。学习是一种兴趣,惧满盈则思江海下百川。
       4)  事在人为
             既然要做,就来点决心,安排出时间,设定好目标,如果还被手工项目挤满一天,永远都没进步的机会。
             经验的积累,不断的实践也很重要。 
       5)  机会比什么都重要!
             毕竟给别人打工,老大是否支持,公司是否重视,这至关重要。
             没有舞台就就没有表演。
             而且我个人非常讨厌,我很直接的说讨厌并不说不喜欢,是因为真的很讨厌这种现象:
             一些公司根本不给自动化研究的时间,也毫不重视自动化成果,甚至连一两次的失败都承受不起。
             只会在招聘要求里写点,需要有自动化经验,也不论是否实际工作真的用的到。
             自动化重视不是说说而已,培养是需要成本的。
             大家只能好自为之,慎重选择了。

 
    
 
           


             
         
                     
         
        

TAG: 需求 推动 测试 机会 自动化

 

评分:0

我来说两句

qishaorain

qishaorain

林中抚琴曲委婉,群山听懂我悲欢

日历

« 2024-04-15  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 10951
  • 日志数: 11
  • 文件数: 1
  • 建立时间: 2014-07-21
  • 更新时间: 2014-10-20

RSS订阅

Open Toolbar