QQ在线咨询
去看看TS+
圈子推荐
查看所有吧>>

活跃用户
    关于移动应用自动化测试的那些事


     

    互联网产品的迭代速度远高于传统软件,尤其是移动APP不但更新频繁,还需要在不同硬件、系统版本的环境下进行大量兼容测试,这就给传统测试方法和测试工具带来了巨大挑战。为满足产品敏捷开发、快速迭代的app测试需求,自动化测试逐渐流行起来。自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

     

    自动化测试的优点很多,简单罗列几条:避免重复工作、提高测试效率、保证每次测试地一致性和可重复性、更好的利用资源、节省人力资源、增加软件信任度、缩短软件开发测试周期让产品更快投放市场、提高软件测试的准确度和精确度,添加软件信任度。

     

    并不是任何应用产品都适合做自动化测试,选择自动化测试之前必须确认你的项目符合以下要求:软件需求变动不频繁、产品更新维护周期长、比较频繁的回归测试、自动化测试脚本可重复使用,否则光是准备大量的测试脚本就足以让测试人员崩溃。

     

    自动化测试的主要类型

     

    1、基于代码的自动化测试,在方法上可以分为白盒测试和灰盒测试

     

    白盒测试的特点:

    白盒测试深入被测代码的逻辑细节

    白盒测试关注代码覆盖率和运行路径

    白盒测试通过测试桩(Stub,Mock)实现代码隔离

    白盒测试通过测试驱动(Test Fixture)执行测试用例

     

    灰盒测试的特点:

    灰盒测试关注接口与参数,不关注代码实现

    灰盒测试适用白盒测试用例设计方法

     

    2、基于界面的自动化测试

    利用代码或工具模拟鼠标和键盘的操作

    界面级自动化测试的核心是对象识别和操作

    工具比较多,如:Selenium/QTP等

     

    3、协议级自动化测试

    代码级自动化测试更多的用于服务端

    界面级自动化测试更多的用于客户端

    协议自动化测试用于测试客户端和服务端的通信,弥补代码级和界面级的不足

    协议级自动化测试更适合于可靠性、安全性、性能等测试

     

    移动app自动化测试工具的选择

     

    APP:

     

    1、Android:

     

    UIAutomator 谷歌官方提供,只能做原生APP的自动化测试,语言java

    Monkey 理论上不算UI自动测试框架,更大作用测试app的稳定性

    MonkeyRunner 可录制,但是脚本根据坐标轴定位,兼容性差

    Robotium 使用的人较多,文档也比较齐全,也支持webview,不支持跨进程, 语言java

    Appium 支持Hybrid app,也支持跨进程,可以用众多语言编写脚本java,ruby,python,c#……目前不支持安卓toast的获取

    Calabash 语言Java ,底层Robotium 同样不支持跨进程

     

    2、IOS

     

    UIAutomation 苹果自家的

    Appium 同时支持android, 提供的api也基本一致,代码复用率高

    Calabash 同时支持android, 提供的api也基本一致,代码复用率高


    • 分享到:
    排序方式:回复时间 共有0条评论