APP测试基础了解

APP测试基础了解

APP概述:

1,原生APP即Native APP:移动端得原生应用,对于Android是apk,有对于ios是ipa

Android使用得语言通常是Java,iOS使用得语言是objective-C

Native APP可以提供较好得用户体验以及性能,而且可以方便得操作手机本地资源,性能和用户体验好,但开发成本较高

不同的平台会使用不同的自动化测试方案,ios -般采用XCUITest Drive.而Android -般采用UiAutomator2或者Espresso等,但是数据驱动、页面对象以及业务流程封装的思想依1旧适用,完全可以把这些方法应用到测试用例设计中。

(1) Native App的优缺点:
优点:速度块,用户体验好,可盈利
缺点:成本高,兼容性差,审核严,新版本需要重新下载

2,WEB APP:
移动端的Web浏览器,其实和 PC端的Web浏览器没有任何区别,只不过Web浏览器所依附的操作系统是ios和Android .

Web App采用的技术主要是传统的HTML、JavaScript. CSS等Web技术栈,当然现在HTML5也得到了广泛的应用。

WebApp所访问的页面内容都是放在服务器端的,本质上就是Web网页,所以天生就是跨平台的。

Web App的测试显然就是Web浏览器的测试,所有GUI自动化测试的方法和技术,比如数据驱动,页面对象模型、业务流程封装等,都适用于Web App的测试。

如果Web页面是基于自适应网页设计,而且测试框架如果支持Responsive Page,那么原则上之前开发的运行在PC Web端的GUI自动化测试用例,不做任何修改就可以直接在移动端的浏览器上直接执行。其中,自适应网页设计(Responsive Web Design)是指,同一个网页能够自动识别屏幕分辨率、井做出相应调整的网页设计技术。

(2) Web App的优缺点:
优点:跨平台兼容性好,成本低,服务器更新,无审核即无内容限制
缺点:功能受限,用户体验差,对动画支持不够好,需要网络

3, Hybrid App:
是介于Web App和Native App两者之间的一种App形式。

在原生移动应用中嵌入了Webview,然后通过该Webview来访问网页。

Hybrid App具有维护更新简单,用户体验优异以及较好的跨平台特性,是目前主流的移动应用开发模式。

Hybrid App的测试情况会稍微复杂-点,对Native Container的测试,可能需要用到XCUITest或者UiAutomator2这样的原生测试框架,而对Container中HTML5的测试,基本和传统的网页测试没什么区别,所以原本基于GUI的测试思想和方法都能继续适用。

(3) Hybrid App的优缺点:
优点:线下访问,兼容性好,可使用各种本地资源
缺点:技术不成熟,体验差一些,需要审核内容
自动化测试稍微麻烦些,需分清哪些是原生部分,哪些是app部分

WEB测试和APP测试的区别:

相同点: WEB测试和App测试从流程上来说,没有区别。都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动。从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试、性能测试、安全性测试、GUI测试等测试类型。
流程一样,技术一样,类型也差不多

不同点:他们的主要区别在于具体测试的细节和方法有区别

1系统结构
Web项目: B/S架构, 甚于浏览器的; Web测试过程中,客户端会随服务器端同步更新,所以只需更新服务器端即可.
App项目: C/S架构,基于客户端的: App测试过程中。只要修改了服务端,那么客F端用户所有核心版本都需要进行回归测试

2性能
Web项目:要监测响应时间、CPU、Memory,另外则还需系统能支持多少用户同时在线:评估系统的性能表现:
App项目:需要监测响应时间、CPU、 Memory, 另外则还需监测疏显、电显等

3兼容
Web项目:考虑操作系统兼容(Windows7. Windows10、 Linux等) ;考虑浏览器兼容(IE6. IE8、 Firefox. Chrome. 360等)
App项目:考虑设备系统兼容(Android [华为、联想、小米三星等]、ios [ipad. iphone] 、OSX [Mac] ) ;考虑手机设备的大小型号、分辨率的兼容

4测试工具
Web测试:自动化工具通常使用Selenium,性能测试工具通常使用LoadRunner , JMeter
App测试:自动化工具通常使用Appium / Monkey.性能测试工具通常使用Jmeter
接口测试都可以使用相同得库或工具
app得性能测试主要是测试应用占用得客户端资源,包括cpu,内存,流量,电量等

5专项测试
App专项测试:安装、更新、卸载;权限测试;安全测试;边界测试;界面操作;干扰测试;网络测试包括弱网络测试,网络切换测试

对APP测试的认识

由于app得界面变化得相对频繁,设计测试用例一般使用思维导图+功能点
从用户角度出发,多关注用户体验(界面+可操作性)
由于app界面变化较多,少做gui自动化,成本高,效率低,多做后台接口测试(通过fidler抓包或接口文档)

复杂:各种兼容性,多种分辨率,多种异常情况。会让移动APP 上的测试更复杂。

设计Test Case:移动互联网开发节奏很快,而且版本快速迭代,建议完全放弃传统的Tese Case,不需要写详细的测试用例。而采用feature list,比如使用思维导图工具+功能点的方法。

真实用户:大部分移动APP都是面向普通用户的,而不是企业用户。要让自己成为APP的真实用户,这样彻底了解业务逻辑,

关注用户体验测试:用户体验式APP成功的关键,在这么小的屏幕 上,用户体验关系着用户对APP的满意度

少做UI自动化,多做后台接口的自动化: UI自动化大部分的时候,都没什么意义,投入大,收入少。应该多关注后台借口的自动化测试

测试release版本:很多时候我们测试的是App的开发和Debug版本,而不是最终的Release版本,那么最终的发 布版本和Debug的版本肯定
有不一致的地方。

HTTP,HTTPS都要覆盖:-些免费上网的环境中,比如,麦当劳,万达商城,他们的网络环境都需要输入用户名和密码,通过SSL认证来访问网络

进行网络异常,服务器宕机或出现404, 502情况下的测试:后台服务的稳定性是你有时候很难去控制的,尤其是牵扯到DNS,空间服务商的情况下。如果出现DNS解析故障, 碰到这种情况,你对后台API的请求很可能就会出现404错误,而你和API交互的数据应该是某种固定格式例如JSON和XML,这样你的数据解析比如会出现错误,抛出异常。如果你对异常没有进行正确的处理可能会导致程序不能正常工作。

2G,3G,4G wifi都要覆盖:它们代表了不同的网络环境。经常会有些APP能在3G网络 下运行,但是不能在wifi下运行。所以在需要check在
不同的网络环境。

UI测试
检查UI图片, icon, 文字,布局等UI元素与效果图是否一致。一 般UI方面不会存在特别严重的问题, 作为建议提给产品就好了。

功能测试
检验功能是否符合需求,涉及到UI层,接口,数据,服务端,代码逻辑等。功能方面的缺陷一般被定义为严重缺陷,必须修复。如果在时间欠缺的情况下,可通过会议与产品,开发,运营,项目负责人多方商议后,确定在不影响本版本的情况下延期处理。

健壮性测试
检验产品在出现异常时的处理机制。同时需要检验出现这些异常场景,或者是比较极限的情况的时候会否出现crash、anr的情况。一般只要有处理就不会出现问题。需要注意- -些极限和异常场景,还有中断和弱网的测试。

适配
检验产品的兼容性,不同的硬件设备,分辨率,操作系统,屏幕尺寸,手机型号等。安卓这-块儿是不太好做的,国内的定制系统太多了,- 般方法都是针对主流机型进行测试。

稳定性测试
这里通常使用的是monkey进行测试。主要手段还是通过伪随机事件流,进行大量的点击,滑动等操作,主要是用来检测产品中隐藏的crash. anr的缺陷

性能测试
客户端性能:主要监测,客户端运行时设备的CPU,GPU,流量,耗电量,响应时间等数据。进行数据分析,针对客户端对产品进行优化,从而提升产品的竞争力。这里是可以检查出购存泄漏的。在深入的发掘可以分析客户端的性能瓶颈,甚至定位出影响客户端性能的代码。这-块儿作为APP的专项测试,实际上可以做的东西有很多,也值得大家去发掘去做。服务端性能:主要监测,I/O, 吞吐量,并发,压力,负载等数据。针对测试结果进行分析,寻找性能瓶颈,完成对性能的优化。主要目的是检查服务端的稳定性,能否达到预期目标,完成预期任务。

回归测试
回归测试,主要是针对开发修复的缺陷进行测试。评估改动的影响范围,有目标有针对性的进行测
试。其实还需要对老版本的功能、数据等进行回归。

上线测试
在发布上线之后,要在生产环境上进行最后-轮的系统测试。一般是把前面所有做过的东西全部在
做一次。

APP测试流程

与桌面应用测试流程大体一致,细节上有差异,测试类型得执行顺序;
1,界面和易用性测试
2,功能测试(包含安装卸载测试)
3,健壮性测试(弱网 中断 异常场景)
4,兼容性测试:平台兼容性 设备兼容性 版本兼容性
5,后台性能测试,负载 压力 并发
6,回归测试
7,发布上线之后得测试

APP测试类型

1,UI测试:手工测试,人工检查是否顺眼,操作是否与其他应用一致,检查内容是否有错别字,敏感内容等
2,功能测试:
安装,卸载,升级,在此期间出现了异常情况是否可以恢复
运行,注册,登录,注销,
免登录
应用得前后台切换是否会导致应用奔溃
离线浏览
定位,照相服务
国际化应用注意时间的测试
推送push测试,检查在免打扰状态下推送功能的表现
正常业务功能测试
3,安全测试
权限导致的安全问题:对权限进行依次单项检查
数据安全:密码或敏感数据的处理
通讯安全:http,https覆盖测试
4,性能测试
服务器的承载能力:服务器运行的稳定性,做负载和压力测试
各种客户端资源极限状态(内存,电量,网络)下应用的表现:使用监控软件来检查
5,兼容性测试
硬件:平台,厂商(都会定制自己的操作系统),产品系列,版本,浏览器,分辨率,其他设备
网络:制式(2g,3g,4g),流量和WiFi
应用的兼容:自己的应用和其他应用的兼容,包括常用应用,系统应用,应用商店
兼容性测试方法:
手工测试:成本高,时间长
兼容性测试外包至云测试平台,仅在这些平台测试安装和基本运行
在公司创立云测试平台(主业务是开发app),对技术要求高,成本高
6,交叉测试:在应用运行时,有其他应用切入,是否有正常的表现,手机真机测试
7,弱网测试:网络不稳定或信号不好时应用的表现,一般要进行现场测试
总结
1、功能方面目前市场.上还没达到自动化的水平,主要用手工来测。出现问题最多的是特殊符号、边界值、按钮之类。
2、兼容性方面考虑手机的版本、型号、分辨率。不同的版本是存在差异的,- -般低版本容易出现问题。
3、稳定性方面就是闪退、系统崩溃、没响应之类。
4、易用性就是界面是否吸引人、容易理解、界面整洁、简单、无错别字。
5、性能主要是靠工具来实现的CPU占用、内存占用、电池温度。
6、还有安装、卸载和升级测试。

常用ADB命令

Monkey测试

adb shell monkey 100执行100次随机事件

adb shell monkey -p com.mobivans.onestrokecharge 100对指定App执行
100次随机操作

adb shell monkey _-P com.mobivans.onestrokecharge --throttle 2000 100指
定事件之间时间间隔2000毫秒

adb shell monkey _-p com.mobivans.onestrokecharge -s 123 100伪随机数生
成器的seed值如果用相同的seed值再次运行monkey,它将执行相同的事件序列

adb shell monkey -p com.mobivans.onestrokecharge -S 123 100

adb shell monkey -p com.mobivans.onestrokecharge -V -V -V 100:指定日志.
级别三
-v:级别一,默认值,仅提供启动提示、测试完成和最终结果等少量信息;
-V -v:级别二,提供较为详细的日志,包括每个发送到Activity的事件信息。通常使
用级别二就可以了;
-v -v -v:级别三,最详细的日志,包括测试中选中和未选中的Activity信息。

adb shell monkey --pct-touch 50 100指定触摸事件的百分比50%

adb shell monkey --pct-motion 50 100指定动作事件的百分比50%

adb shell monkey --pct-trackball 50 100指定轨迹球事件百分比50%

adb shell monkey --pct-nav 50 100指定基本导航事件百分比50%

adb shell monkey --pct-majornav 50 100设定主要导航事件百分比50%,兼容中间键,返回键,菜单按键。

adb shell monkey --pct-syskeys 50 100设定系统事件百分比50%,比如HOME, BACK, 拨号及音量调节等事件。

adb shell monkey --pct- appswitch 50 100设定启动不同应用程序的事件百分比50%

adb shell monkey --pct-anyevett 50 100设定不常用事件的百分比50%

adb shell monkey --pct-touch 40 --pct-motion 60 100多个事件的百分比之和不能超过100%

adb shell monkey -ignore-crashes 100:忽略崩溃和异常事件

adb shell monkey -ignore-timeouts 100:忽略超时事件

adb shell monkey :pkg-blacklist-file /data/local/tmp/backlist.txt 100:设置不需要进行测试的黑名单应用。文件中每个
app的主包名一行记录
adb push whitelist.txt /data/local/tmp/whitelist1.txt
adh shellmonkey --pkg-whitelist-file /data/local/tmp/whitelist1.txt 100:设置需要进行测试的白名单应用,测试可控,推荐。文件中每个app的主包名-行记录

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值