V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
czfyht
V2EX  ›  程序员

做了三年的移动 APP 测试,谈一下基本的测试流程和方法

  •  
  •   czfyht · 2015-07-11 22:37:19 +08:00 · 36312 次点击
    这是一个创建于 3407 天前的主题,其中的信息可能已经有所发展或是发生改变。
    笔者从2012年开始和朋友一起做了一个移动端APP的测试平台,组织一批测试工程师做人工黑盒测试服务,3年来也测试了1000+的APP。有500多家美国公司使用过我们的服务。下面聊一聊我们在APP测试过程中常用的流程和方法。

    测试按大的类型划分可以分为白盒测试和黑盒测试。
    白盒测试一般是由开发人员使用编码的方式进行。测试者需要接触程序的内部代码;而黑盒测试可以在不知道程序内部结构和代码的情况下进行。我们的服务只需要客户提交APP的安装程序,不提交任何源代码与测试用例,因此进行的是黑盒测试。
    下面就是主要的测试流程了:
    进行冒烟测试。冒烟测试的来源有很多说法,其中一种说法是来自于硬件行业。电路板做好以后首先要在两边通电,如果路线板冒烟的话就说明板子有非常严重的质量缺陷,不能上市。在软件测试中,冒烟测试是指快速验证APP的主要功能(例如:微信的登陆、退出、发消息等功能)
    。如果没有发现问题,再进行更加深入的测试工作;如果发现有问题,就说明APP有重大缺陷,需要打回给开发人员紧急修复。我们进行的冒烟测试是根据APP的主要功能来的,例如:分享照片的APP就试试拍照和分享功能。
    进行全面功能测试(遍历所有界面的所有功能)
    。功能测试也叫行为测试,需要根据测试用例来验证应用预期的功能有没有实现。在移动开发团队中,这个环节一般由产品经理负责,查看自己提的需求有没有被实现。比较大的团队会有正规测试人员进行这项工作。由于我们的服务不需要客户提交测试用例,所以我们的测试人员会按照自己对APP的理解遍历所有功能,查看是否正常。我们会对所有的界面截图,为每次操作添加一条测试案例。记录中会标明在哪个界面,进行了什么操作,得到怎么样的结果。如果结果符合预期,则该案例为成功;如果结果明显有误,则该案例为失败;如果结果状态不明确或者有优化空间,则该案例为存在潜在问题。
    进行自由探索式测试(尝试边界条件、输入特殊符号、异常网络环境、突然中断程序等操作)
    。功能测试的目的是验证正常的功能有没有现实,而自由探索测试的目的就是为了试试应用在极端的操作下会不会出现问题。一般的应用在上线前都能保证主要功能已经实现,并且在正常操作下不会出现问题。但是在某些特殊场景下,由于开发人员经验不足或者考虑不周全,应用会出现异常表现。轻则无法提供预期功能,重则APP直接崩溃。探索式测试就是要找到能让应用出错的操作。这方面的测试没有固定的套路,主要依靠测试工程师的基本经验。我们的测试工程师都是身经百战,比较善于找到APP的潜在问题。普通的产品经理和初级测试工程师则很难发现这类漏洞,等到用户使用APP时再发现就为时已晚。
    进行回归测试(对之前使用我们的服务测试过的应用,将案例复测一遍)。进行回归测试的前提是之前已经使用我们的服务,再次测试时我们会对上次的案例进行复测。因为开发人员在修复BUG的同时可能会产生新的问题,所以回归测试是很有必要的。也是一般软件上线前必须经历的一个阶段。回归测试中找到的问题有以下几类:修复,就是开发人员把上次测试时的BUG改正了;再现,上次的BUG这次依然存在;回退,之前正常的功能在这次测试中出现了问题。一般在进行了回归测试以后,我们还会尝试能不能找到新的BUG,这样就比较完整地对APP进行了复测。

    以上便是我们对APP进行测试的主要流程,希望对大家有所帮助。本文有什么不恰当之处欢迎指出。
    如果对APP测试有兴趣,或者有此类需求,可以关注我们的网站:www.testelf.cn。也可以与我单独联系,微信:15907182726
    17 条回复    2015-07-13 18:51:05 +08:00
    yakczh
        1
    yakczh  
       2015-07-12 08:54:51 +08:00
    测试的工作可以外包出去吗?
    linkiosk
        2
    linkiosk  
       2015-07-12 09:35:32 +08:00 via Android
    没有深入一点的吗?
    MrEggNoodle
        3
    MrEggNoodle  
       2015-07-12 10:31:09 +08:00
    @linkiosk 重点是最后两行~
    czfyht
        4
    czfyht  
    OP
       2015-07-12 20:54:48 +08:00
    @yakczh 你好,这个要哪个环节的测试。白盒测试肯定不行。黑盒的话,众测也是外包的一种,也就是让不是自己团队的人来测试一个应用。这种情况挺普通
    yakczh
        5
    yakczh  
       2015-07-12 21:02:03 +08:00
    @czfyht 现在有众测平台吗?没有的话,我就做一个
    czfyht
        6
    czfyht  
    OP
       2015-07-12 21:18:17 +08:00
    @linkiosk 我们确实是内部更加详细的文档,我们测试工程师培训时会学习,在实习操作中用到。请问你是做测试相关工作的吗?有兴趣的话可以交流一下
    czfyht
        7
    czfyht  
    OP
       2015-07-12 21:22:04 +08:00
    @yakczh 国外有uTest,国内有Testin和百度的MTC。
    czfyht
        8
    czfyht  
    OP
       2015-07-12 21:30:03 +08:00
    @MrEggNoodle 被看出来了。。。
    jianghu52
        9
    jianghu52  
       2015-07-12 21:49:46 +08:00
    不管目的如何。最少这样的文章说明了楼主的公司在测试方面还是比较规范而且有实力的。
    czfyht
        10
    czfyht  
    OP
       2015-07-12 22:51:39 +08:00
    @jianghu52 谢谢。确实也干了这么久测试,算是有点积累吧。
    linkiosk
        11
    linkiosk  
       2015-07-12 23:11:11 +08:00 via Android
    对,我一直在做测试
    VichyChen
        12
    VichyChen  
       2015-07-13 09:30:35 +08:00
    楼主可以具体说说白盒测试的内容吗。。对白盒测试一直不是很了解。。。
    br00k
        13
    br00k  
       2015-07-13 09:33:20 +08:00
    网站打开会自动跳转。。。
    目测加载了这个JS。。。
    http://static.olark.com/jsclient/loader0.js
    inter
        14
    inter  
       2015-07-13 10:48:02 +08:00
    这个不就是基础的测试理论么?随便买本20年前的书都有了。还以为你们会用机械臂模拟人工操作呢!
    czfyht
        15
    czfyht  
    OP
       2015-07-13 18:49:16 +08:00
    @VichyChen 你好,白盒测试要看具体的领域了。前端和后端开发肯定不一样,iOS和Android用的工具也不一样。前端的白盒测试我还真不太了解,其实我是做Java后端开发的。。。我们平时做的白盒测试就是单元测试、数据库的SQL测试,之类的。。。
    czfyht
        16
    czfyht  
    OP
       2015-07-13 18:49:57 +08:00
    @br00k 额。我打开不会跳转哦,目前也没有客户反映有这个bug。感觉是DNS的问题?
    czfyht
        17
    czfyht  
    OP
       2015-07-13 18:51:05 +08:00
    @inter 干这样的工作,人工真的比机械更加灵活。。。需要很多逻辑的判断,机器暂时也很难代替。将来也许有可能吧。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1002 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:50 · PVG 04:50 · LAX 12:50 · JFK 15:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.