【移动端测试】移动端测试要点

1、移动端测试

1、定义

移动端软件测试就是符合多重网络(2G,3G,4G,wifi,弱网,断网),不同系统(ios,Android),不同硬件配置(手机/pad,不同机型)下发现软件缺陷,并保证提高软件质量的过程。

2、特点(与PC端测试区别)

C/S:客户端-服务器架构;B/S:浏览器-服务器架构。区别如下:

效率:C/S效率高,有的内容已经在系统中;B/S每次都要加载最新数据。

升级:B/S无缝升级;C/S删除老版本再安装新版本。

安全:C/S更安全,需安装,注册,登录;B/S有浏览器即可使用,安全程度低。

开发成本:B/S成本低;C/S需要不同系统的开发人员,成本较高。

3、测试要点

APP测试主要内容:

功能测试:

1、业务逻辑正确性测试,依据:产品文档-》测试用例编写

2、兼容性测试:

—系统版本:Android官方版本,定制版本;IOS:官方版本

—分辨率:720*1280,1080*1920

—网络情况:2G,3G,4G,5G,WIFI

异常测试:

1、热启动应用:应用在后台长时间待机:应用在后台待机时手机重启

2、网络切换和终端恢复

3、电话信息中断恢复

升级、安装、卸载测试:

1、升级测试:临近版本升级(1.0-》1.1);跨版本(1.0-》...-》2.2)

2、安装测试:首次安装,覆盖安装(同版本,不同版本),卸载后安装

3、卸载测试:首次卸载;卸载安装后卸载

健壮性测试:

1、手机资源消耗:CPU,内存

2、流量消耗:图片,数据,视频

3、电量测试

4、崩溃恢复

交叉时间测试;

PUSH测试等。


移动端测试要点

3、软件测试分类

4、描述用浏览器访问 www.baidu.com 的过程?

先要解析出 baidu.com 对应的 ip 地址:

要先使用 arp 获取默认网关的 mac 地址

组织数据发送给默认网关(ip 还是 dns 服务器的 ip,但是 mac 地址是默认网关的 mac 地址)

默认网关拥有转发数据的能力,把数据转发给路由器

路由器根据自己的路由协议,来选择一个合适的较快的路径转发数据给目的网关

目的网关(dns 服务器所在的网关),把数据转发给 dns 服务

dns 服务器查询解析出 baidu.com 对应的 ip 地址,并原路返回请求这个域名的 client

得到了 baidu.com 对应的 ip 地址之后,会发送 tcp 的 3 次握手,进行连接

使用 http 协议发送请求数据给 web 服务器

web 服务器收到数据请求之后,通过查询自己的服务器得到相应的结果,原路返回给浏览器

浏览器接收到数据之后通过浏览器自己的渲染功能来显示这个网页

浏览器关闭 tcp 连接,即 4 次挥手结束,完成整个访问过程

5、. 给你一个网站怎么开展测试?

a)首先,查找需求说明、网站设计等相关文档,分析测试需求。

b)制定测试计划,确定测试范围和测试策略,一般包括以下几个部分:功能性测,试界面测试,性能测试,数据库测试,安全性测试,.兼容性测试

c)设计测试用例:

功能性测试可以包括,但不限于以下几个方面:链接测试;链接是否正确跳转,是否存在空页面和无效页面,是否有不正确的出错信息返回等;提交功能的测试;多媒体元素是否可以正确加载和显示;多语言支持是否能够正确显示选择的语言等

界面测试可以包括但不限于一下几个方面:页面是否风格统一,美观。页面布局是否合理,重点内容和热点内容是否突出。控件是否正常使用。对于必须但为安装的空间,是否提供自动下载并安装的功能。文字检查。

性能测试一般从以下两个方面考虑:压力测试,负载测试,强度测试

数据库测试要具体决定是否需要开展。数据库一般需要考虑连结性,对数据的存取操作,数据内容的验证等方面。

安全性测试:基本的登录功能的检查;是否存在溢出错误,导致系统崩溃或者权限泄露;相关开发语言的常见安全性问题检查,例如 SQL 注入等;如果需要高级的安全性测试,确定获得专业安全公司的帮助,外包测试,或者获取支持。

兼容性测试,根据需求说明的内容,确定支持的平台组合:浏览器的兼容性;操作系统的兼容性;软件平台的兼容性;数据库的兼容性。

d)开展测试,并记录缺陷。合理的安排调整测试进度,提前获取测试所需的资源,建立管理体系(例如,需求变更、风险、配置、测试文档、缺陷报告、人力资源等内容)。

e)定期评审,对测试进行评估和总结,调整测试的内容

6、常用ADB命令

adb --help / adb :看见帮助信息

adb start-server:启动 adb 服务

adb kill-server:关闭 adb 服务

adb devices:查看手机设备号

adb shell getprop ro.build.version.release:获取系统版本

adb push 电脑 手机

adb pull 手机 电脑

adb logcat | grep(unix) 包名

adb logcat | findstr(win) 包名

adb shell :进入 shell 命令行,可以操作 Linux 命令

adb shell dumpsys window windows | grep mFocusedApp:获取包名 启动名(win:adb shell dumpsys window

windows | findstr mFocusedApp)

adb install 路径/apk 文件:安装 apk 到手机上

adb uninstall 包名:卸载 app 从手机上

adb shell am start -W 包名/启动名:app 启动时间

7、APP崩溃(闪退),可能是什么原因造成的

缓存的垃圾太多;

打开的应用程序过多;

应用版本兼容问题;

检查APP的SDK和手机的系统是否兼容;

检查APP访问网络的地方,组件中的ImageView是否可以正常下载并显示到APP页面上;

在一些特定情况下闪退,如播放视频,Android5.0升级到6.0时,有的系统API老版本有,新版本没有。

8、如何测试监测 app 的内存使用、CPU 消耗、流量使用情况?

adb shell top

Android 应用性能测试通常包括:启动时间、内存、CPU、耗电量、流量、流畅度等

根据手机的使用应用频度和强度不同,可将应用使用强度分为如下几种状态:

空闲状态:指启动应用后,不做任何操作或切换到后台运行的情况称为空闲状态,该情况为应用对内存的消耗是最小的。

中强度状态:该情况用户使用应用的强度和时间长短不确定,相对来说使用时长偏长。

高强度状态:该种情况为应用内高频率的使用,用户很少达到,跑 monkey 时可认为高强度状态,该种情况常用来测试应用内存泄漏的情况测试时,可根据用户的操作习惯模拟应用使用频率和强度等级。

使用 adb 命令,手机连接电脑开启 USB 调试模式,进入 adbshell。

(1)查看 CPU 占用率

使用命令 top -m 10 -s cpu(-t 显示进程名称,-s 按指定行排序,-n 在退出前刷新几次,-d 刷新间隔,-m 显示最大数量)

9、局域网和广域网

1、局域网(LAN)指某一区域内由多台计算机互联成的计算机组。“某一区域”指同一个办公室,同一建筑物,同一公司和同一学校等,方圆几公里内。局域网可实现文件管理,应用软件共享,打印机共享,工作组内日程安排,电子邮件和传真通信服务等功能。局域网是封闭型的。

2、广域网(WAN)是一种跨越大的、地域性的计算机网络的集合。通常跨省、市甚至一个国家。广域网包括大大小小不同的子网,子网可以是局域网,也可以是小型广域网。

10、10M 兆宽带是什么意思?理论下载速度是多少?

首先我们要搞懂其中的区别,运营商说的 10M,完整的单位应该是 10Mbps(bps:比特率),而我们讲的下载速度单位是 MB,虽然都念兆,但是不一样的。

它们之间的换算关系是:1MB=8×1Mbps,换个方式看:1Mbps÷8=128KB,也就是说,运营商称的 10M宽带,实际速度是 10Mbps÷8=1280KB,约 1.25MB。

11、cookies 和 session 的区别?

cookies:是针对每一个网站的信息每一个网站只对应一个,其它网站不能访问,这个文件是保存在客户端的,每次你打相应网站,浏览器会查找这个网站的 cookies,如果有就会将这个文件起发送出去。cookies文件的内容大致包函这些信息如用户名,密码,设置等。

session: 是针对每一个用户的,只有客户机访问,程序就会为这个客户新增一个 session。session 里主要保存的是用户的登录信息,操作信息等。这个 session 在用户访问结束后会被自动消失(如果超时也会)。

12、GET和POST的区别GET 和 POST 的区别

总结来说就是:它们的本质都是 TCP 链接,并无区别。但是由于 HTTP 的规定以及浏览器/服务器的限制,导致它们在应用过程中可能会有所不同。

(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)

(2)post发送的数据更大(get有url长度限制)

(3)post能发送更多的数据类型(get只能发送ASCII字符)

(4)post比get慢

(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据

1、post请求包含更多的请求头

2.最重要的一条,post在真正接收数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据

3、get会将数据缓存起来,而post不会

4、post不能进行管道化传输

13、APP测试流程

参与需求评审:评审前看需求文档

制定测试计划:什么人,测试多久,测试内容,风险等

设计和编写测试用例:后评审

执行用例,跟踪缺陷

编写提交版本测试报告。

14、弱网测试

步骤:

1、打开fiddler或Charles,设置相应的代理端口(端口被占用时需要手动更改代理端口);

2、在代理工具中设置网络的上传和下载的速度

3、在手机中设置网络的代理

15、FPS(流畅度)

可以通过(Perfdog)性能狗来监控APP的流畅度。

如果要达到流畅的效果,FPS的值应该在24。

如果要达到最佳的效果,FPS的值为60。

16、流量优化

* 数据压缩

* 针对相同的数据,采用不同的数据格式

* 控制访问的次数

* 缓存机制

* 只获取必要的数据

* 懒加载

20、电量测试

* 可以使用其他的性能测试工具来测试

* 可以通过对比方式来测试(如同类产品对比))

* 耗电场景:开启定位,GPS;蓝牙;网络传输,WIFI,屏幕亮度

2/智能产品测试

1、系统测试

按照测试流程来走就好,需求分析、测试计划、测试用例及评审、冒烟测试、执行测试若干轮、回归测试、测试报告等步骤走完。主要测试的对象是以应用为核心,兼测试服务器及设备的功能。

目前大家主要在做的是这部分的测试,做好这部分的测试,产品80%的bug都能发现。

2、接口测试

以前的接口测试主要是app和服务器的通信,主要以http请求为主。

智能硬件产品的服务器承载两个端的请求,一般来说硬件产品与服务器会建立一个TCP/UDP长连接,定时发心跳包及其他通信内容包,另一端则是app端的接口。

以java为例,测试长连接的服务端,socket写一个客户端,用现成框架mina/netty写一个客户端等,具体代码就不给出了。http请求就不赘述,方法太多了。

这部分的测试最好和开发同时进行,但新项目的进度和需求缘故,一般都会等到产品稳定进行,这块发现的问题很多都不是严重的问题,但是一旦有个重要问题就会导致产品功能无法使用

3、核心测试

什么是核心测试?试想一下智能手环运动检测不准确,OBD会使静止的汽车亏电,智能血压计检测的血压不对等等问题,那么这个产品一旦上市就会失败,任何的bug修复也无济于事。所以这块的测试非常重要。

以下举几个核心测试内容的例子:

耗电测试,最简单是接一个万用表,实时查看设备的电量情况,但是你必须实时查看,也没有历史记录。最好是准备一个专用的功率电量测试工具,有交直流电,有报表输出,在各种配置下的耗电情况都能自动记录。这块主要针对手环、OBD等需要电池的产品。

GPS测试,户外的智能产品大部分都配备了GPS,GPS信号强度和周围环境有直接关系。隧道、高层建筑、天气等都会干扰GPS定位,另外设备启动关闭点也是GPS容易发生问题的时候。

干扰测试,很多智能硬件产品会插在其他设备上,如电视盒子、家居控制设备、汽车设备,一定程度上会对其他设备产生干扰,甚至影响其他设备的正常使用。

类似的功能还有很多,这些是智能硬件产品的核心,如果这些功能出现问题,产品就会死掉,所以这部分需要重点测试,投入最多的人力进去。

4、电商、供应链系统业务测试

电商测试

电商测试


5、嵌入式软件测试

除了互联网的应用外,还存在一种叫做嵌入式的软件测试。比如航空器,车载设备,移动设备等。

嵌入式软件系统测试具有如下特点:

  (1)测试软件功能依赖不需编码的硬件功能,快速定位软硬件错误困难;

  (2)强壮性测试、可知性测试很难编码实现;

  (3)交叉测试平台的测试用例、测试结果上载困难;

  (4)基于消息系统测试的复杂性,包括线程、任务、子系统之间的交互,并发、容错和对时间的要求;

  (5)性能测试、确定性能瓶颈困难;

  (6)实施测试自动化技术困难。


6、蓝牙耳机,音箱测试

蓝牙耳机测试:

蓝牙耳机测试

你可能感兴趣的:(【移动端测试】移动端测试要点)