热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

手机APP测试(测试点、测试流程)

1、功能测试1.1启动APP安装完成后,是否可以正常打开,稳定运行APP的速度是可以让人接受,切换是否流畅网络异常时,应用是否会崩溃:在请求超时的情况下,如果程序逻辑处理的不好,就

技术分享图片

 


1、功能测试

技术分享图片


1.1 启动

APP安装完成后,是否可以正常打开,稳定运行

APP的速度是可以让人接受,切换是否流畅

网络异常时,应用是否会崩溃:在请求超时的情况下,如果程序逻辑处理的不好,就有可能发生Crash。


1.2 注册、登录


1.2.1 账号密码注册登录

正向:输入正确的账号密码、Enter键,可正常注册和登录

逆向:输入的数据前存在空格;用户名、密码错误或漏填;已注册用户;是否允许多次非法登录;是否限制次数;未注册用户登录;删除或修改后用户登录;是否有注销按钮;

逆向:密码更改后,登录时是否做到了有效数据的校验:修改前的密码失效;

逆向:未登录时对一些页面的操作,是否做了控制

逆向:密码“****”展示(安全性)

逆向:账号输入框对最大长度和格式应有校验(比如邮箱账号需要邮箱格式等)

逆向:账号或密码输入错误时建议提示“账号或密码错误”,而不是“账号错误”或“密码错误”

逆向:登陆后,页面中登陆信息是否正确;

逆向:不输入用户密码或者是重复点击“确定/取消”按钮,是否允许登陆;

逆向:支持自动登录(记住密码)的应用在进行数校验时,检查系统是否能自动登录成功并且数据操作无误

逆向:考虑无网络情况下能否正常进入免登陆状态。

逆向:检查用户主动退出登录后,下次启动APP,应停留在登录页面。

逆向:登录超时时处理是否合理

逆向:页面中是否有注销按钮;

逆向:密码是否加密传输(可抓取请求查看)

逆向:切换账号登录,检验登录的信息是否做到及时更新

逆向:对于多个端都进行操作时,确保数据库操作无误,且每个端可以及时看到数据的更新

逆向:台式机和手机的同时登录同一账号,多台手机的同时登录同一账号(检查是否将原用户剔除)


1.2.2 手机号注册登录

手机号输入框格式校验检查

验证短信的接收是否及时;

用验证码可正常登录;

验证码错误时,登录失败+友好提示

验证短信文案是否符合所测APP;

重复发送验证码,前一个验证码正常失效

频繁操作验证码发送,应有操作限制

检查对登陆超时(验证码不能用)的处理。

验证码有效期校验(超过有效期无法登录)


1.2.3 注册

表单编辑页面测试;

用户名密码长度;

注册后的提示页面;

前台注册页面和后台的管理页面数据是否一致

注册后,在后台管理系统中的页面提示以及数据库中的用户信息是否正常;


1.3 所有功能是否能正常运行

业务逻辑测试:主要测试客户端业务是否正常完成

功能点测试:主要测试客户端功能点是否可以正常使用,对具体功能点一一测试,确保每个点都能正确实现相应功能。

关联行测试:主要测试客户端与PC端的交互,客户端处理完后,PC端与客户段数据一致


1.4 应用的前后台切换是否正常

    APP切换到后台,再回到APP,检查是否停留在上一次操作界面。

  APP切换到后台,再回到APP,检查功能及应用状态是否正常。

  APP切换到后台,再回到APP前台时,注意程序是否奔溃,功能状态是否正常,尤其是对于从后台切换回前台数据有自动更新的时候。

  手机锁屏解锁后进入APP注意是否会奔溃,功能状态是否正常,尤其是对于从后台切换回前台数据有自动更新的时候。

  当APP使用过程中有电话进来中断后再切换到APP,功能状态是否正常。

  当杀掉APP进程后,再开启APP,APP能否正常启动。

  出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有时候会出现应用自动跳过提示框的缺陷。

  对于有数据交换的页面,每个页面都必须要进行前后台切换、锁屏的测试,这种页面最容易出现奔溃的现象。


1.5 数据更新


1.6 离线浏览

  在无线网络情况下可以浏览本地数据。

  退出APP再开启APP时能正常浏览本地数据。

  切换到后台再回到前台可以正常浏览本地数据。

  锁屏后再解锁回到应用前台可以正常浏览本地数据。 

  手动刷新时,是否有对连接网络的提示 


1.7 定位,照相机服务等等


1.8 时间测试


1.9 Push测试

  检查push消息是否按照指定的业务规则发送。

 检查不接收推送消息时,用户不会再接收到push消息。

 如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到push消息;

  在非免打扰时间段内,用户能正常接收到push消息。

 当push消息是针对登录用户的时候,需要检查收到的push消息与用户身份是否相符。

 不打开应用时,能否接收消息

 打开应用时,能否接收消息

 登录与不登录情况下,接收消息是否有区别

 精确推送,是否只推送给指定用户


1.10 界面测试


1.窗体

  测试窗体的方法:

  a,窗体大小,大小要合适,控件布局合理;

  b,移动窗体.快速或慢速移动窗体,背景及窗体本身刷新必须正确;

  c,缩放窗体,窗体上的控件应随窗体的大小变化而变化;

  d,显示分辨率.必须在不同的分辨率的情况下测试程序的显示是否正常;

  进行测试时还要注意状态栏是否显示正确;工具栏的图标执行操作是否有效,是否与菜单懒中图标显示一致;错误信息内容是否正确,无错别字,且明确等等;


2.控件

月份和日期对应(比如2月有28天,7月31天)

闰年2月,应有29天

跨年时,年份应有增加。

  测试方法:

  a,窗体或控件的字体和大小要一致;

  b,注意全角,半角混合

  c,无中英文混合.

菜单,进行测试时要注意:

  a,选择菜单是否可以正常工作,并与实际执行内容一致;

  b,是否有错别字:

  c,快捷键是否重复;

  d,热键是否重复;

  e,快捷键与热键操作是否有效;

  f,是否存在中英文混合;

  g,菜单要与语境相关,如,不同权限的用户登陆一个应用程序,不同级别的用户可以看到不同级别的菜单并使用不同级别的功能;

  h,鼠标右键快捷菜单;

    g,手机拍照功能可以正常显示;


3. 文本框、按钮等控件测试

文本框的测试

  如何对文本框进行测试

  a,输入正常的字母或数字。

  b,输入已存在的文件的名称;

  c,输入超长字符。例如在“名称”框中输入超过允许边界个数的字符,假设最多255个字符,尝试输入 256个字符,检查程序能否正确处理;

  d,输入默认值,空白,空格;

  e,若只允许输入字母,尝试输入数字;反之;尝试输入字母;

  f,利用复制,粘贴等操作强制输入程序不允许的输入数据;

  g,输入特殊字符集,例如,NUL及 等;

  h,输入超过文本框长度的字符或文本,检查所输入的内容是否正常显示;

  i,输入不符合格式的数据,检查程序是否正常校验,如,程序要求输入年月日格式为yy/mm/dd,实际输入yyyy/mm/dd,程序应该给出错误提示

在测试过程中所用到的测试方法:

  1,输入非法数据;

  2,输入默认值;

  3,输入特殊字符集;

  4,输入使缓冲区溢出的数据;

  5,输入相同的文件名;


 4.  命令按钮控件的测试

  a,点击按钮正确响应操作。如,单击确定,正确执行操作;单击取消,退出窗口;

  b,对非法的输入或操作给出足够的提示说明,如,输入月工作天数为32时,单击”确定“后系统应提示:天数不能大于31;

  c,对可能造成数据无法恢复的操作必须给出确认信息,给用户放弃选择的机会;

  单选按钮控件的测试

  a,一组单选按钮不能同时选中,只能选中一个。

  b,逐一执行每个单选按钮的功能。分别选择了“男”“女”后,保存到数据库的数据应该相应的分别为“男”“女”;

  c,一组执行同一功能的单选按钮在初始状态时必须有一个被默认选中,不能同时为空;


5. up-down控件文本框的测试

  a,直接输入数字或用上下箭头控制,如,在“数目”中直接输入10,或者单击向上的箭头,使数目变为10;

  b,利用上下箭头控制数字的自动循环,如,当最多数字为253时,单击向上箭头,数目自动变为1;反之亦适用;

  c,直接输入超边界值,系统应该提示重新输入;

  d,输入默认值,空白。如,“插入”数目为默认值,点击“确定”;或,删除默认值,使内容为空,单击“确定”进行测试;

  e,输入字符。此时系统应提示输入有误。


6.组合列表框的测试

  a,条目内容正确,其详细条目内容可以根据需求说明确定;

  b,逐一执行列表框中每个条目的功能;

  c,检查能否向组合列表框输入数据;


7. 复选框的测试

  a,多个复选框可以被同时选中;

  b,多个复选框可以被部分选中;

  c,多个复选框可以都不被选中;

  d,逐一执行每个复选框的功能;


8.列表框控件的测试

  a,条目内容正确;同组合列表框类似,根据需求说明书确定列表的各项内容正确,没有丢失或错误;

  b,列表框的内容较多时要使用滚动条;

  c,列表框允许多选时,要分别检查shift选中条目,按ctrl选中条目和直接用鼠标选中多项条目的情况;


9.滚动条控件的测试

  要注意一下几点:

  a,滚动条的长度根据显示信息的长度或宽度及时变换,这样有利于用户了解显示信息的位置和百分比,如,word中浏览100页文档,浏览到50页时,滚动条位置应处于中间;

  b,拖动滚动条,检查屏幕刷新情况,并查看是否有乱码;

  c,单击滚动条;

  d,用滚轮控制滚动条;

  e,滚动条的上下按钮。

各种控件在窗体中混和使用时的测试

  a,控件间的相互作用;

  b,tab键的顺序,一般是从上到下,从左到右;

  c,热键的使用,逐一测试;

  d,enter键和esc键的使用;

  在测试中,应遵循由简入繁的原则,先进行单个控件功能的测试,确保实现无误后,再进行多个控件的的功能组合的测试。

  ps:密码输入框测试时要特别注意进行字母大写输入的测试。


2、UI测试

原型与效果图对比(导航测试)

图形测试

内容测试


3、兼容性测试(比如testin云测平台)

与本地以及主流APP是否兼容

不同操作系统的兼容性,是否适配

不同手机屏幕分辨率的兼容性


4、交叉测试

冲突测试,即一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰的测试


5、安装,升级,卸载,更新

技术分享图片


5.1 安装、卸载测试

正向:应用是否可以正常安装(命令行安装;apk/ipa安装包安装 )(有网、无网是否都正常)

正向:APP的速度是否流畅

逆向:应用是否可以在IOS和Androoid不同系统、版本、机型上进行安装

逆向:是否可以正常删除(三方软件删除;命令行删除;桌面删除)

逆向:APP安装完成后,是否可以正常打开,稳定运行

逆向:安装过程中断网或网络不稳定的情况下,是否有相应提示

逆向:网络异常时,应用是否会崩溃:在请求超时的情况下,如果程序逻辑处理的不好,就有可能发生crash

逆向:卸载过程中出现死机、重启,断点等意外情况,待环境恢复后是否可以继续正常卸载

逆向:卸载是否支持取消功能,单击取消后软件卸载情况是否正常

逆向:安装过程中是否可以暂停,再次点击,是否可以继续安装

逆向:安装空间不足时如何表现,是否有相应提示,提示是否友好

逆向:安装过程中断网或网络不稳定的情况下,是否有相应提示

逆向:安装在手机卡上或SD卡上(不同的IOS和安卓版本)


5.2 升级测试


5.3 更新测试

正向:客户端有新版本时,有更新提示

逆向:取消版本后,老版本可以正常使用

逆向:当版本为非强制升级时,用户可以取消更新,老版本能正常使用。用户在下次启动APP时,仍出现更新提示

逆向:APP更新后新增功能和老功能是否可以正常使用

逆向:当版本为强制更新升级时,用户没有做更新,退出客户端,下次启动APP时,仍出现强制升级提示(且无法关闭),点击更新是否正确调整到后台配置的更新页面

逆向:APP更新后检查版本号应该有更新

逆向:当客户端有新版本时,在本地不删除客户端的情况下,直接更新检查是否能正常更新

逆向:当客户端有新版本时,在本地不删除客户端的情况下,更新后的客户端功能是否是新版本功能

逆向:当客户端有新版本时,在本地不删除客户端的情况下,检查资源同名文件如图片是否有正常更新最新版本

逆向:升级安装意外情况的测试(如死机、断电、重启)

逆向:强制更新(APP开启后,自动更新APP,否则无法使用APP),多次关闭和打开APP后是否正常跳出更新弹窗,且无法关闭;点击更新是否正确跳转至后台配置的更新页面

逆向:非强制更新(只提示一次更新):可以正常关闭弹窗;重启APP更新提示按照需求再次显示或者不再显示;点击更新是否正确跳转至后台配置的更新页面

逆向:当有新版本时,不删除客户端的情况下,直接更新是否成功

逆向:升级安装意外情况的测试(如死机、断电、重启)

逆向:允许内网访问的APP,在连接到外网时是否有友好提示

 


6、用户体验测试

 

整体产品或服务的舒适度

 


7、安全测试

敏感信息是否加密,用抓包工具分析

密码是否过于检查检查

重要数据,如支付密码会不会保存到设备

同一账号在不同终端登陆,是否有提示

异地登录是否有提示

系统会否运行多次非法登陆,是否有提示

限制或者允许使用手机某些功能

注册的验证码是否重复使用,是否有超时限制

协议抓取,反编译


8、性能测试

服务器的性能测试和手机端的性能测试
比如:CPU、内存、上传流量、下载流量、电量使用情况等

极限测试

响应时间

压力测试

耗电量测试

电量流量测试

一般CPU使用率与手机端电量使用率成正比,CPU使用率不能超过10%以上,流量不要超过10M以上,可以通过android手机端一些监控软件获取数据

CPU、内存消耗

app使用占用的CPU和内存

APP启动时长

app启动需要的时间

crash率

奔溃率

内存泄露

android的程序由Java语言编写,所以android的内存管理与Java的内存管理相似。程序员通过new为对象分配内存,所有对象在java堆内分配空间,然而对象的释放时有垃圾回收器完成的。
android的虚拟机是给予寄存器的Dalvik,它的最大堆大小一般是16M,有的机器为24M。


9、手机app测试流程

需求分析->需求评审->开发人员编写排期->测试计划排期->编写测试用例->用例评审->提交基线->具体测试流程->测试通过


10、手机App测试工具

云测平台、testin、百度MTC、其他工具GT


推荐阅读
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Redis底层数据结构之压缩列表的介绍及实现原理
    本文介绍了Redis底层数据结构之压缩列表的概念、实现原理以及使用场景。压缩列表是Redis为了节约内存而开发的一种顺序数据结构,由特殊编码的连续内存块组成。文章详细解释了压缩列表的构成和各个属性的含义,以及如何通过指针来计算表尾节点的地址。压缩列表适用于列表键和哈希键中只包含少量小整数值和短字符串的情况。通过使用压缩列表,可以有效减少内存占用,提升Redis的性能。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 本文介绍了一道网络流题目hdu4888 Redraw Beautiful Drawings的解题思路。题目要求以行和列作为结点建图,并通过最大流算法判断是否有解以及是否唯一。文章详细介绍了建图和算法的过程,并强调在dfs过程中要进行回溯。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文讲述了作者通过点火测试男友的性格和承受能力,以考验婚姻问题。作者故意不安慰男友并再次点火,观察他的反应。这个行为是善意的玩人,旨在了解男友的性格和避免婚姻问题。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
author-avatar
改改我的坏_155
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有