手机app测试方法(测试互联网手机)
手机软件测试的基本程序?
手机软件测试的基本程序:
1。需求剖析阶段:阅读需求,理解需求,剖析需求点,参加需求评审会议。
2。测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书,项目总体计划,内容包括测试范围,进度安排,人力物力分配,整体测试策略的制定。
3。编写测试用例:适当的了解设计,搭建测试用例框架,依据需求和设计编写测试用例。
4。测试执行阶段:搭建环境准备数据,执行预测推算试紧接着进入正式测试(系统测试、回归测试、交叉测试、自由测试),bug管理直到测试结束。
5。输出测试报告:输出测试报告,确认是否可以上线。
更多阅读
软件测试方法
1。动态测试
计算机动态测试的主要目的为检测软件运行中出现的问题,较静态测试方式相比,其被叫作动态的缘故即为其测试方式主要依赖流程的运筹使用,主要为检测软件中动态行为是否缺失、软件运行效果是否良好。
2。黑盒测试
黑盒测试,顾名思义即为将软件测试环境模拟为不可见的“黑盒”。通过数据输入观察数据输出,检查软件内部功能是否正常。测试展开时,数据输入软件中,等待数据输出。数据输出时若与预计数据一致,则证明该软件通过测试。
3。白盒测试
白盒测试相比于黑盒测试来讲具有一定透明性,原理为依据软件内部应用、源代码等对产品内部工作过程进行调试。
测试过程中常将其与软件内部结构协同展开剖析,最大优点即为其能够有效解决软件内部应用流程出现的问题,测试过程中常将其与黑盒测试方式结合,当测试软件功能较多时,白盒测试法亦可对此类情况展开有效调试。
软件测试教程之手机软件测试方法
第1:兼容性测试
针对App通常来讲会考虑这几个方面:
1)操作系统版本
包括Andoird版本,iOS版本
2)屏幕分辨率
android 800*480, 960*640,1280*720(720p),1920*1080(1080p),2560*1440(2k)。
对于iOS,考虑近日几代机型相应的分辨率即可。
3)不同厂家的ROM
不同厂家的ROM,大多厂家都对android 系统进行了定制、实际中会遇见例如调用相机和底层服务出现的不兼容问题以及摇一摇遇见的区别手机对于方向和重力传感器敏锐度设置不同的问题。
4) 互联网类型
互联网类型通常来讲考虑wifi,2g,3g4g下的功能情况。另外针对m版网站考虑不同浏览器类型和屏幕分辨率。
第2:流量测试
在移动产品的测试中,有必要对App使用的流量进行度量,大体来说,流量可以从用户使用的的相关性角度分为:一类是用户的操作直接致使的流量消耗;另一类是后台,即在用户没有直接使用情况下的流量消耗。
流量的测试方法:
1、 基于系统自带功能。
eg android proc/uid_stat/{uid} /tcp_send
android proc/uid_stat/{uid} /tcp_rcv
2、 通过API或者系统埋点来获取数据。
3、 通用的流量测试方法:手机抓包,或者wifi代理(Fiddler, Charles)。
常常见到的流量节省方法:
1、 数据压缩。
压缩蕴含接口文本数据的压缩,js文件的压缩及图片的压缩。
2、 不同数据格式的采用
例如采用JSON格式作为接口数据返回格式通常来讲比XML格式要小。
3、 控制访问的频次
这个主要针对后台数据上报,PUSH消息检查等定时机制的。
4、 只获取必要的数据
偶尔APP一页的内容很多很多,而用户可能只会看一部分,过多的从后台拉去数据就是浪费,因此可以采用分屏加载或者懒加载的方式来减少流量消耗。
5、 缓存
可将图片,js等数据暂存起来,但因为手机存储空间有限,也需要控制整个缓存大小,并给用户提供清理缓存的选项。
6、 针对不同互联网类型设计不同的访问策略
有些APP不同的互联网类型返回的内容不一样。
第3:电量测试
在电器电池技术没有取得巨大冲破前提下,这一方面始终会存在一些瓶颈,假如一些App架构设计的不好,或者代码偶缺陷,就可能致使电量消耗有些高,所以电量测试也是非常重要的。
工具 GSam Battery Monitor Pro。
第4:弱互联网测试
移动网络产品相比PC网络产品,有一个特点是前者使用的互联网比较多样,除了Wif之外,许多时候是在移动互联网下使用的,移动互联网遇见的情形又比较复杂,打比方说地铁、隧道、 体育 场等。所以互联网不稳定的情形是很容易发生的,许多情况下App的几个问题是在复杂的互联网情况下才会暴露,与其让用户发现和投诉如此问题,不如我们在测试阶段尽最大力量模拟如此的互联网情况,及早发现和修复如此问题。
工具:
1、 Windows下的Network Delay Simulator
2、 Mac下的Network Link Conditioner
第5:稳定性测试
在保证基本功能正确基础之上,App的稳定性就显得十分重要,假如一个App经常出现闪退或者卡死,那么用户体验就会受到很大伤害,在有其他竞争角逐产品的情形下比较容易造成用户的流失。
第6:安全测试
包括安装包的安全测试(能不能反编译代码、安装包是否签名,完整性校验,权限设置检查等)。
敏感信息测试(数据库,日志,配置文件)。
软键盘劫持(金融类APP登录页面的用户名密码输入框)、
账户安全(密码是否明文,密码传输是否加密,账户输入错误次数过多锁定,同时会话提醒, 注销机制)
数据通信安全(关键数据是否散列或加密,关键连接是否使用安全通信,是否对于数字证书合法性进行验证,是否校验数据合法性。
组件安全测试。
服务器端接口测试(SQL注入测试、XSS跨站脚本攻击, CSRF跨站请求伪造,越权访问等)。
第七:环境有关的测试
在实际项目中,有一些缺陷我发现是和App所处的运行环境有关的,所以设计测试的时刻,要多考虑这几个场景,打比方说:
1)干扰测试
收到电话、收到短信、收到通知栏消息、无电提示框弹出、第3方安全软件告警弹出。
2)权限测试
一些用户在实际使用App的时刻回有意识阻止某些功能。例如有的用户感觉让某个App访问电话本或者相册可能泄漏隐私,就在手机中设置了禁止了该App访问相册的权限。
3)边界测试
手机环境本身亦有其边界情况需要在测试中覆盖。常常见到的场景有:
可用存储空间过少、没有SD卡/双SD卡、飞行模式、系统时间有误(晚于和早于标准时间)、第3方依赖(打比方说我们的App依赖第3方App,不过此刻第3方App没有安装或者版本过低的测试情况)。
4)Android定位测试
用白盒方式模拟
APP专项测试之耗电量测试
随着应用市场不断推陈出新,用户在使用APP时更加关注电量问题。假如本人的App不小心出此刻耗电量排行榜Top10,用户卸载的概率就会很高,针对APP耗电量测试,在此与大家共享。
耗 电 量 测 试 分 析
相比于PC端来说,移动设备的电池电量是特别有限的,保持持久的续航能力相当重要。Android的许多特性都比较耗电(如屏幕、GPS、sensor传感器、唤醒机制、CPU、连网等的使用),我们务 必要慎重检查APP的电量使用,以免致使用户手机耗电发热,带来不良体验。
1。耗电场景
主要的耗电场景有:
cpu:复杂的运算逻辑、死循环等会直接致使CPU负载过高,会致使耗电;
wakelock:只要有应用拿到wakelock这个锁,系统就无法进入睡眠状态。频繁wakelock或者申请了wakelock没有释放,会致使耗电;
wifiscan和wifilock:wifiscan和wifilock也会致使手机的wifi模块处于激活状态,频繁的wifiscan或者wifilock不释放,会致使耗电;
sensor:传感器打开后会致使系统持续监听设备外围环境的数据变化,使用后不及时关闭,会致使耗电;
network:大量的数据传输,或者长久的移动互联网数据传输致使radio长期处于活跃状态,会致使耗电;
gps:gps也属于一种传感器,定位中没有及时关闭,会致使耗电。
业务层面,用户最核心基础的模块:
新增的基础逻辑,假若入口明显,潜在较大访问,必须保证性能;
活动需要,由于活动上新的逻辑,存在较大的用户访问,需尽力提升用户体验;
反馈体验不好的模块。
2。耗电量测试
获取测试结果时我们须留意数据的有效性,避开数据误差,让数据更有效的说明问题,下面提供两种方法,来提高获取数据的有效性。
横向对比法:分两步测试,第1步测量手机硬件运行消耗的电量;第2步测试手机硬件和软件运行综合的耗电量。最后将两次的耗电进行对比,总结出软件消耗的电量大小;
纵向对比法:同时进行两台手机,其中一台手机不运行软件,另一台手机运行软件;分别获得两台手机的耗电量,对比两台手机耗电量差别,总结出软件消耗的电量大小。
这两种方法在测试上有一定的差别,许多应用软件都是需要移动互联网的鼓励,而手机接收的互联网信号是会随时间变化的。
第1种方法的误差主要源出手机在不同的基站互联网下工作状态的变化。
第2种方法的差别则展现在两台手机本身硬件消耗的电量可能存在差别,所以需要尽可能使用同一型号,同一批次的手机。
手机软件软件测试分为哪个几个模块。平时着重是做什么的。
1。单元测试
单元测试着重是对该软件的模块进行测试,通过测试以发现该模块的实际功能出现不符合的情形和编码错误。因为该模块的规模不大,功能单一,结构较简单,
2。集成测试
集成测试是软件测试的第2阶段,在这个阶段,通常来讲要对已经严格依照流程设计要求和标准组装起来的模块同时进行测试,明确该流程结构组装的正确性,发现和接口相关的问题,打比方说模块接口的数据是否会在穿越接口时发生丢失。
3。系统测试
通常情况下,系统测试采用黑盒法来进行测试的,以此来检查该系统是否符合软件需求。
4。验收测试
验收测试是最后一个阶段的测试操作,在软件产品投入正式运行前的所要进行的测试工作。和系统测试相比来讲,验收测试与之的不同就只是测试人员不同,验收测试那么是由用户来执行这一操作的。
更多阅读
不管是持续交付2、0——硅谷顶级网络公司的产品研发方法共享,还是百度持续集成智能化平台十年探索之路,或者蚂蚁金服 Code Velocity:环境&持续测试&代码门禁实践,以及 Google 最新移动测试方。
腾讯海量用户大型游戏背后的质量保障体系建设、蚂蚁金服代码实时染色系统都让参会人员深刻体验到 BAT、Google 等顶级网络企业前沿测试技术和质量保障能力带来的强烈冲击和对未来变革趋势的全新视野。
未来的软件测试设计师和质量管理人员必须同时具备一定的开发和运维能力。测试人员会更深入介入开发工作,通过测试左移,提前与开发人员一起制定测试计划,推动代码评审、代码审计、单元测试、自动化冒烟测试、测试精确准确化剖析以及研发自测等来保证研发阶段的质量。
参考资料来源:知识混装大无极—软件测试方法
Airtest 怎样测试手机 APP
Airtest 是网易出品的一款基于图像识别的自动化测试工具,主要应用在手机 APP 和游戏的测试。一旦使用了这个工具进行 APP 的自动化,你就会发现自动化测试原来是如此简单!!!!!!
要进行 APP 的自动化测试,first of all要将手机连上 airtest。连接手机有几种方法皆可以实现:
注意和提防:部分手机还need打开“允许模拟位置”、“允许未知来源安装应用”,所以假如不成功可以把这两个选项也勾选!!! ‘
当手机与电脑处在同一个 wifi 下,即可try无线连接手机了,其实也就是说即通过 adb 无线连接手机。不过这种方式受限于互联网连接的稳定性,也许会出现连接不够稳定的情形。具体连接方法步骤如下:
1。touch :点击操作 蕴含的参数:
v:点击的图片或者坐标
times:点击次数,默认 1 次
duration:按住时间,默认 0。01s
right_click: windows 有效 ,手机端无效
2。text :输入文本
蕴含的参数:
text:输入的文本
enter:完成输入后自动执行 enter 操作,默认为 True
search:完成输入后强行执行 search 操作,默认为 false
3。wait:等待元素出现,假如找到该这个 图片就返回图片中心点的坐标,假如不出现就抛出错误:Target非也tFoundError
蕴含的参数:
v:点击的图片或者坐标
timeout:等到超时时间,默认 20s
interval:每次寻找的时间间隔,默认 0。5s
intervalfunc:图片没有找到就执行后面的函数,默认为 非也ne
4。sleep :暂停等待
蕴含的参数:
secs:延迟时间,默认 1、0s
5。assert_exist : 判断图片是否存在,假如存在就返回图片的中心坐标,不存在就 raise AssertionError
蕴含的参数:
v:图片
msg:描述测试点,它将被记录在报告中
return: 存在就返回图片的中心坐标,不存在就 raise AssertionError
6。assert_not_exist :判断图片是否不存在,假如存在就 raise AssertionError
蕴含的参数:
v:图片
msg:描述测试点,测试 报告中显示
7。assert_equal : 判断第1个值和第2个值是否相等
蕴含的参数:
first:第1个对比条目
second:第2个对比条目
msg:描述测试点,在测试报告中显示
8。assert_not_equal : 判断第1个值和第2个值是否不相等
蕴含的参数:
first:第1个对比条目
second:第2个对比条目
msg:描述测试点,在测试报告中显示
我们此刻用来上这写 API 来实现一个具体的需求用例:
需求: 登录柠檬班 app,并判断是否登录成功;
注意和提防:为了确保万无一失,最好在输入文本之前,先点击输入框,确妥协入的焦点。
所以先调用 touch API,再调用 text API。点击 text API 就会弹出如下图所示的文本输入框,输入你的手机号码即可。同样的步骤,输入密码;最后,点击“登录”按钮。
用 assert_exists API 来断言是否登录的用户名和头像是正确的,脚本如下:
可以打开测试报告,查看运行结果和断言的图片如下图所示:
手机软件测试的基本程序
手机软件测试的基本程序:
1。测试需求剖析;
2。测试计划或者测试用例书写;
3。测试环境搭建,测试数据准备以及测试执行;
4。测试反馈,指测试过程中发现异常,进行缺陷剖析定位,紧接着和有关的开发人员进行对应,最后促使问题得到解决的过程;
5。测试项目结束后的汇总剖析;
6。回归测试,所有测试结束之后,在版本提交之前必须进行。
手机app测试有哪些工具盒方法
手机app测试有可以利用来下几种工具:
1。安卓黑盒测试工具
1)包括本身自带的monkey,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中;
2) robotium与appium,这几个工具用于黑盒的自动化测试。能在有源码或者只有APK 的情形下对目标应用进行测试。
2。白盒测试,Android在SDK中集成了JUnit框架。因 此,你可以基于JUNIT框架进行安卓的白盒测试代码开发;
3。安卓的测试方法其实也就是说与web测试方法大多类似,只是多了一些特殊的测试场景;
4。兼容性测试,一是可以利用虚拟机来保证系统间的兼容性,但更加的多的还need依靠真机来测试;
更多阅读:
APP测试要点:
1。功能测试
最根本的测试,着重是测试软件app的功能点、业务逻辑;关联性(着重是测试顾客端和PC的交互,顾客端处理完后,保证PC端数据同步且一致)
2。性能测试
cpu,占用不超过10%,响应时间(包括app启动和退出),满足258原则,2秒以内用户感觉很快,2-5秒感觉一般,5-8秒感觉很慢,不过能接受,8秒以上用户无法接受,选择离开,或者再次发送请求;
3。兼容性测试
手机app需要重点关注的,不同操作系统:android、iOS不同手机厂商,小米,华为等不同的手机屏幕分辨率,和其它第3方app的兼容;
4。安装卸载更新测试
也是手机app比较特别的测试点,安装的路径,手机还是sd卡上,高低版本的覆盖安装,内存不足时的安装,安装过程中出现中断情况,第3方管理软件中卸载app,卸载过程中出现中断情况;
5。中断或崩溃测试
中断测试着重是测试app是否会出现crash情况。来电、短信、闹钟、低电量等,互联网环境突然改变,或者互联网中断,例如隧道、电梯(离线支持),切换互联网,例如数据连接切换到wifi外部设备。
打比方说充电,插耳机内存不足改变设备方向改变手机语言,例如英文多后台流程切换长久开机并且长久开启app也可以 使用monkey来测试apk的稳定性,也能检查出一些crash的问题;
6。安全测试
7。UI测试
参考资料:知识混装大无极-手机APP
1。安卓黑盒测试工具
1)包括本身自带的monkey,Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中
2) robotium与appium,这几个工具用于黑盒的自动化测试。能在有源码或者只有APK 的情形下对目标应用进行测试。提供了模仿用户操作行为的API,打比方说在某个控件上点击,输入Text
等等。(推举你可以探讨一下这个工具,开源的,我有资料)
2。白盒测试,Android在SDK中集成了JUnit框架。因 此,你可以基于JUNIT框架进行安卓的白盒测试代码开发
3。安卓的测试方法其实也就是说与web测试方法大多类似,只是多了一些特殊的测试场景,例如-遍历测试、故事驱动、适配测试、电量测试、弱网测试、流量测试等
4。兼容性测试的话,一是可以利用虚拟机保证系统间的兼容性,但更加的多的还need依靠真机测试,由于每个真机的上层API使用和渲染是不完全相同的
假如你想要什么资料的话或者想一起学习钻石的话,能够给我发邮件:test_sunny@hotmail。com
怎样利用monkey进行手机app测试?
1。简单介绍
Monkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用流程进行压力测试。Monkey包括很多选项,它们大体分为四大类:
基本配置选项,如设置try的事件数量
运行管束选项,如设置只对独立的一个包进行测试
事件类型和频率
调试选项
在Monkey运行的时刻,它生成事件,并把它们发给系统。并 且,Monkey还对测试中的系统进行监测,对下列三种情况进行特殊处理(自动停止):
假如限定了Monkey运行在一个或几个特别规定的包上,那么它会监测试图转到其它包的操作,并对其进行阻止。
假如应用流程崩溃或接收到任何失控异常,Monkey将停止并报错。
假如应用流程产生了应用流程不响应(application not responding)的错误,Monkey将会停止并报错。
依照选定的区别级别的反馈信息,在Monkey中还不错看见其执行过程报告和生成的事件
2。测试准备
Monkey test前必须先进入android设备的adb shell(Android SDK环境配置不在此描述,网上有许多)步骤如下:
1、 开始—>运行—>cmd
2、 usb连接手机,输入 adb shell 命令,待出现 即可输入以下内容
3、 进入手机后,输入对应的monkey命令即可测试
3。基本命令格式
adb shell monkey –p 流程包 –v 测试次数
打比方说“adb shell monkey –p com。htc。Weather –v 20000”意思是对com。htc。Weather 这个流程包独立进行一次20000次的monkey测试
其中流程包名称能在串口终端这句命令获得:ls data/data 显示所有流程包
4。测试Log获取
用Monkey test测试,为了方便剖析问题,能在命令monkey命令后面加上 “|logcat -v time”,如此便能边测试边打印Log(记得用终端保存Log文本)比如:
adb shell monkey –p com。htc。Weather –v 20000|logcat -v time
不过这个组合在monkey测试完成后,logcat仍然在实施,测试时需须留意。
假如测试monkey碰到crash或者anr(流程强制性退出或不响应)现象时,在抓取log的同时需要提供traces。txt,步骤如下:
1、 测试版本需要具备root权限
2、 进入data/anr目录下面
3、 将traces。txt文件拷贝到TF卡中,紧接着拷贝出来发给软件剖析即可
做Android手机软件测试需要掌握哪些工具?
请注意和提防测试本身不是靠工具的而是靠设计,这是俺的理念,因此我一向觉得,许多人认为做测试做的好就是靠掌握一门好的工具,这个看法是不正确的,因此我可以负责任的告知你,做Android手机需要掌握的不是工具、而是理念、思维、以及框架,综上所述是本质,而工具只是辅助,那么此刻我来介绍一些我了解的工具(仅仅是了解,许多没用过)
开源 Android 软件测试工具包括:Android Test Kit, AndroidJUnit4, Appium, calabash-android, Monkey, MonkeyTalk, NativeDriver, Robolectric, RoboSpock, Robotium, UIAutomator, Selendroid。
Android Test Kit
Android Test Kit 是一组 Google 开源测试工具,用于 Android 平台,蕴含 Espresso API 可用于编写简洁可靠的 Android UI 测试。
AndroidJUnit4
AndroidJUnit4 是一个让 JUnit 4 可以直接运行在 Android 设备上的开源命令行工具。
Appium
Appium 是一个开源、跨平台的自动化测试工具,用于测试原生和轻量移动应用,支持 iOS, Android 和 FirefoxOS 平台。Appium 驱动苹果的 UIAutomation 库和 Android 的 UiAutomator 框架,使用 Selenium 的 WebDriver JSON 协议。Appinm 的 iOS 支持是基于 Dan Cuellar's 的 iOS Auto。 Appium 同时绑定了 Selendroid 用于老的 Android 平台测试。
Calabash-android
calabash-android 是一个基于 Cucumber 的 Android 的功能自动化测试框架。Calabash 允许你写和执行,是开源的自动化移动应用测试工具,支持 Android 和 iOS 原生应用。Calabash 的库允许原生和混合应用的交互测试,交互包括大量的终端用户活动。Calabash 可以媲美 Selenium WebDriver。不过, 需须留意的是 web 应用和桌面环境的交互跟触摸屏应用的交互是不一样的。Calabash 专为触摸屏设备的原生应用提供 APIs。
Monkey
Monkey 是 Google 开发的 UI/应用测试工具,也是命令行工具,主要针对压力测试。你能在任意的模拟器示例或者设备上运行。Monkey 发送一个用户事件的 pseudo-random 流给系统,作为你开发应用的压力测试。
MonkeyTalk
MonkeyTalk 是全地球最强大的移动应用测试工具。MonkeyTalk 自动为 iOS 和 Android 应用进行真实的,功能xingjiao互测试。MonkeyTalk 提供简单容易的 "smoke tests",复杂数据驱动的测试套件。MonkeyTalk 支持原生,移动和混合应用,真实设备或者模拟器。MonkeyTalk 使得场景捕获十分容易,可以记录高档别,可读的测试脚本。同样的命令可以 使用在 iOS 和 Android 应用上。你可以记录一个平台的一个测试,并且能在另外一个平台回放。MonkeyTalk 支持移动触摸和基于手势交互为主的移动体验。点击,拖拽,移动,甚至是手指绘制也可以被记录和回放。
NativeDriver
NativeDriver 是 WebDriver API 的实现,是原生应用 UI 驱动,而不是 web 应用。
Robolectric
Robolectric 是一款Android单元测试框架,使用 Android SDK jar,因此你应该使用测试驱动开发 Android 应用。测试仅需几秒就能够在工作站的 JVM 运行。Robolectric 处理视图缩放,资源加载和大量 Android 设备原生的 C 代码实现。Robolectric 允许你做多数真实设备上能够做的事情,能在工作站中运行,也能在常规的 JVM 持续集成环境运行,不须要经过模拟器。
RoboSpock
RoboSpock 是一个开源的 Android 测试框架。提供简单容易的编写 BDD 行为驱动开发规范的方式方法,使用Groovy 语音,支持 Google Guice 库。RoboSpock 合并了 Robolectric 和 Spock 的功能。
Robotium
Robotium 是一款国外的Android自动化测试框架,主要针对Android平台的应用进行黑盒自动化测试,它提供了模拟各式手势操作(点击、长 按、滑动等)、查找和断言机制的API,能够对各式控件进行操作。Robotium结合Android提供的测试框架达到对应用流程进行自动化的测 试。另外,Robotium 4、0版本已经支持对WebView的操作。Robotium 对Activity,Dialog,Toast,Menu 都是支持的。
UIAutomator
uiautomator 测试框架提高用户界面(UI)的测试效率,通过自动创建功能 UI 测试示例,能在一个或者多个设备上运行你的应用。
Selendroid
Selendroid 是一个 Android 原生应用的 UI 自动化测试框架。测试使用 Selenium 2 顾客端 API 编写。Selendroid 能在模拟器和实际设备上使用,也可以集成网格节点作为缩放和并行测试。


