当前位置: 首页 > 编程日记 > 正文

App功能测试的注意点

好几个月没有写博客记录学习心得了,这次回老家深夜闲来无事写一篇记录下这段时间的面试心得,这次面试过程很多面试官都问APP的有关测试,下面我就自己的认识和工作中的经验来谈谈自己对APP测试的认识:

1.push消息推送测试

  1. 检查push消息是否按照指定的业务规则发送。
  2. 检查不接收推送消息时,用户不会再接收到push消息。
  3. 如果用户设置了免打扰的时间段,检查在免打扰时间段内,用户接收不到push消息;在非免打扰时间段内,用户能正常接收到push消息。
  4. 当push消息是针对登录用户的时候,需要检查收到的push消息与用户身份是否相符,没有错误的将其他人的消息推送过来。一般情况下,只对手机上最后一个登录用户进行消息推送。
  5. 测试push消息时,需要采用真机进行测试。

2.APP版本更新:

  1. 当客户端有新版本时,有更新提示。
  2. 当版本为非强制升级时,用户可以取消更新,老版本能正常使用。用户在下次启动APP时,仍出现更新提示。
  3. 当版本为强制升级时,当给出强制更新后用户没有做更新时,退出客户端,下次启动APP时,仍出现强制升级提示。
  4. 当客户端有新版本时,在本地不删除客户端的情况下,直接更新检查是否能正常更新。
  5. 当客户端有新版本时,在本地不删除客户端的情况下,更新后的客户端功能是否是新版本功能。
  6. 当客户端有新版本时,在本地不删除客户端的情况下,检查资源同名文件如图片是否能正常更新成最新版本。如果以上无法更新成功的,也都属于缺陷。

3.应用的前后台切换

  1. APP切换到后台,再回到APP,检查是否停留在上一次操作界面。
  2. APP切换到后台,再回到APP,检查功能及应用状态是否正常。
  3. APP切换到后台,再回到APP前台时,注意程序是否奔溃,功能状态是否正常,尤其是对于从后台切换回前台数据有自动更新的时候。
  4. 手机锁屏解锁后进入APP注意是否会奔溃,功能状态是否正常,尤其是对于从后台切换回前台数据有自动更新的时候。
  5. 当APP使用过程中有电话进来中断后再切换到APP,功能状态是否正常。
  6. 当杀掉APP进程后,再开启APP,APP能否正常启动。
  7. 出现必须处理的提示框后,切换到后台,再切换回来,检查提示框是否还存在,有时候会出现应用自动跳过提示框的缺陷。
  8. 对于有数据交换的页面,每个页面都必须要进行前后台切换、锁屏的测试,这种页面最容易出现奔溃的现象。

4.离线浏览

很多应用会支持离线浏览,即在本地客户端会缓存一部分数据提供给用户查看。

  1. 在无线网络情况下可以浏览本地数据。
  2. 退出APP再开启APP时能正常浏览本地数据。
  3. 切换到后台再回到前台可以正常浏览本地数据。
  4. 锁屏后再解锁回到应用前台可以正常浏览本地数据。
  5. 在对服务器端的数据有更新时会给予离线的相应提示。

5.免登陆

很多应用提供免登陆功能,当应用开启时自动以上一次登录的用户身份来使用APP。

  1. 考虑无网络情况下能否正常进入免登陆状态。
  2. 切换用户登陆后,要校验用户登陆信息以及数据内容是否相应更新,确保原用户退出。
  3. 根据Mtop的现有原则,一个账户只允许登陆一台机器。所以,需要检查一个账户登陆多台手机的情况。原手机里的用户需要被退出,给出友好提示。
  4. APP切换到后台,再切换回前台的校验。
  5. 切换到后台,再切换回前台的测试。
  6. 密码更换后,检查有数据交换时,是否进行了有效的身份的校验。
  7. 支持自动登录的应用在进行数据校验时,检查系统是否能自动登录成功并且数据操作无误。
  8. 检查用户主动退出登录后,下次启动APP,应停留在登录页面。

6.运行测试

  1. APP安装完成后的试运行,可正常打开软件。
  2. APP打开测试,是否有加载状态进度提示。
  3. APP页面的切换是否流畅,逻辑是否正常。
  4. 登录:

    1).使用合法的用户登陆系统;

    2).系统是否允许多次非法的登陆,是否有次数限制;

    3).使用已经登陆的账号登陆系统是否正确处理;

    4).用户名、密码错误或漏填时能否登陆;

    5).删除或修改后的用户,原用户名登陆;

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

    7).登陆后,页面中登陆信息是否正确;

    8).页面中是否有注销按钮;

    9).检查对登陆超时的处理。

  5. 注册:

1).表单编辑页面测试;

2).用户名密码长度;

3).注册后的提示页面;

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

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

7.定位、照相机服务

  1. APP有用到照相机、定位服务时,需要注意系统版本差异。
  2. 有用到照相机服务的地方,需要进行前后台的切换测试,检查应用是否正常。
  3. 测试照相机服务时,需要采用真机进行测试。

以上是我能想到的对于APP功能测试的一些测试点,以后想到了再补充。

转载于:https://www.cnblogs.com/lwjnicole/p/8975395.html

相关文章:

编程以外积累: 如何给项目生成类似VS2008的说明文档

1:【下载】 目前微软提供的官方开源工具 Sandcastle 结果跑到项目中一看,抬头就来了这么一段: The Sandcastle CodePlex project is no longer under active development by Microsoft and as such, there will be no future releases to t…

python的turtle绘图体系入门必看(一)

1 设置窗体 turtle.setup(width,height,startx,starty) 说明: setup()函数不是必须的前两个参数代表窗体的横向宽与纵向长后两个参数可选,表示窗体距离屏幕的横向距离和纵向距离(也可以理解为窗体左上角距离屏幕左上角的横向和纵向距离&…

交换两个变量的值不使用第三个变量(Java)

关于这个问题网上有好多答案,最近有人说这是个奇葩问题 个人测试了一把,如果是普通的数字的话,基本上没有问题 public static void main(String[] args) {int a 2147483647;int b 2147483646;// aab;// ba-b;// aa-b;// b a (a b) * 0; …

Task02:青少年软件编程(Scratch)等级考试模拟卷(二级)

电子学会 软件编程(图形化)二级训练营 试题来源 青少年软件编程(Scratch)等级考试试卷(二级)【2019.09】青少年软件编程(Scratch)等级考试试卷(二级)【2019…

Visual Studio 15.7预览版4改进Git、C++支持

\看新闻很累?看技术新闻更累?试试下载InfoQ手机客户端,每天上下班路上听新闻,有趣还有料!\\\对于即将到来的Visual Studio 2017 15.7,微软已经发布了多个新的预览版本。这些版本的变更很有限,似…

python库引用的3种方式比较

方法一 import 库名 使用方式&#xff1a; <库名>.<函数名>(<函数参数>) 方法二 from 库名 import 函数名/* 使用方式&#xff1a; <函数名>(<函数参数>) 第一种方法可以避免第三方库函数和自定义函数重名 第二种更简洁&#xff0c;适用于引用…

使用livereload实现自动刷新

livereload是一个web开发辅助工具&#xff0c;当我们修改完html、css和js的时候会自动刷新浏览器&#xff0c;解放码农的双手。这样在双屏切图、写js代码的时候会提高很多效率。livereload有很多版本&#xff0c;比如基于ruby的版本&#xff0c;我们今天介绍的是nodegruntchrom…

Task03:青少年软件编程(Scratch)等级考试模拟卷(二级)

电子学会 软件编程&#xff08;图形化&#xff09;二级训练营 试题来源 青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;二级&#xff09;【2019.09】青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;二级&#xff09;【2019…

java静态代理与动态代理

2019独角兽企业重金招聘Python工程师标准>>> 代理模式是java常见的设计模式。其目的是为其他对象提供一个代理以控制对某个真实对象的访问。通过代理类这一中间层&#xff0c;有效控制对真实委托类的对象的直接访问&#xff0c;同时可以实现自定义的控制策略。 根据…

python的turtle绘图体系入门必看(二)

1 turtle画笔控制函数 画笔操作后一直有效&#xff0c;一般成对出现 turtle.penup() 别名 turtle.pu() 画笔抬起&#xff0c;海龟在飞行(不在画布上留下图案) turtle.pendown() 别名 turtle.pd() 画笔落下&#xff0c;海龟在爬行 turtle.pensize(width) 别名 turtle.width(wi…

MSSQL2005外网IP的1433端口开启方法

打开SQL Server Configuration Manager&#xff0c;在SQL server配置管理器展开SQL server 2005网络配置-->SQLEXPRESS 的协议-->双击TCP/IP协议-->ip地址将1433端口启用&#xff0c;重启下MSSQL服务才能生效&#xff0c;示例图&#xff1a; 重启下MSSQL服务才能生效转…

Rokid webhook 指南 手把手教你做个懒人

若琪用户 Amadeus 在社区里分享过很多视频。当你进门10秒后还未关闭房门&#xff0c;若琪会一直报警提醒&#xff1b;当你走进门后将门反锁的那一刻&#xff0c;若琪会为你播报今天的天气、为你播放设定的轻音乐。 看到这些视频中对传感器、智能情景的熟练运用&#xff0c;你很…

Task04:青少年软件编程(Scratch)等级考试模拟卷(二级)

电子学会 软件编程&#xff08;图形化&#xff09;二级训练营 试题来源 青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;二级&#xff09;【2019.09】青少年软件编程&#xff08;Scratch&#xff09;等级考试试卷&#xff08;二级&#xff09;【2019…

Python数字类型及操作汇总(入门级)

1. 整数类型 2. 浮点数类型 带有小数点及小数的数字 取值范围和精度都有限制&#xff0c;但常规计算可忽略不计(基本无限制) 注意&#xff1a;浮点数运算存在不确定尾数&#xff08;不是bug&#xff0c;一般发生在10-16左右&#xff0c;因为计算机内部用二进制表示&#xff0c…

FCKeditor如何升级CKEditor及使用方法

之前编辑器用的是FCKeditor&#xff0c;因为项目原因需要升级为最新版本4.2.2&#xff0c;发现是已经更名为CKEditor。 百度了一下&#xff0c;据官方的解释&#xff0c;CK是对FCK的代码的完全重写。 项目环境是asp.net的&#xff0c;之前用的FCKeditor版本是2.6。 在aspx文件头…

【新周报(045)】青少年编程竞赛交流群周报

「青少年编程竞赛交流群」已成立&#xff08;适合6至18周岁的青少年&#xff09;&#xff0c;公众号后台回复【Scratch】或【Python】&#xff0c;即可进入。如果加入了之前的社群不需要重复加入。 为了完成二月份青少年编程公益训练营的活动&#xff0c;本周整理了以往收集的电…

Xshell5中常用linux服务器命令集合

简易版&#xff1a;http://www.zhimengzhe.com/linux/84546.html 详细版&#xff1a;http://www.cnblogs.com/peida/tag/%E6%AF%8F%E6%97%A5%E4%B8%80linux%E5%91%BD%E4%BB%A4/default.html?page4转载于:https://www.cnblogs.com/keye/p/8982440.html

C++设置每屏显示的行数简易办法

定义计数变量counter if ((counter) % 22 0) { //每屏显示22行 cout << "请按回车键继续";cin.get(); }效果

挖坑挖到cnblogs.com来...

这几年一直在cppblog.com上敲字, 因为开帖时满脑袋都是C, 所以选了它~ 懒懒散散竟然也敲了四年多, 真是难得的有毅力啊&#xff5e; 回头看看这一年越来越不务正业了,C越来越少, 到是当年看着不爽的Java越来越多~唉, 语言只是工具而已, 当年为何如此偏执~ 本来就想在cppblog.co…

vue项目踩坑

由于上一个小项目写的很次&#xff0c;这一次打算好好地写一个博客系统&#xff0c;最近刚刚结束了管理员的管理端的编写。其中遇到了很多小坑。 其实只能说自己vue用的不是特别熟练吧。很多问题都有些想当然了&#xff0c;实现起来发现了很多的问题。简单的记录几个我自己认为…

【NCEPU】王子朝:神经网络、支持向量机原理

王子朝 是华北电力大学计算机系大四的学生&#xff0c;LSGO软件技术团队&#xff08;Dreamtech算法组&#xff09;成员&#xff0c;参加了多期Datawhale的组队学习活动&#xff0c;现保送西安电子科技大学深造。 希望参与我们线下组队学习的同学&#xff0c;可以在微信公众号后…

C++ 枚举类型基本知识

1.定义 enum <类型名> {<枚举常量表>};2.说明 关键字enum——指明其后的标识符是一个枚举类型的名字。 枚举常量表——由枚举常量构成。枚举常量只能以标识符形式表示&#xff0c;而不能是整型、字符型等文字常量。 非法定义&#xff1a; enum letter_set {a,d…

ES6常用语法

主要总结一些 ES6 常用的语法及知识点&#xff0c;其次就是总结一下在 ES6 使用过程需要注意的重点 常用语法 常量 // es5常量 var person {name: shi } Object.defineProperty(person, sex, {writable: false,value: man })// es6常量 const sex man; 复制代码多行字符串和模…

【NCEPU】吴丹飞:(CSAPP)计算机系统漫游

吴丹飞是华北电力大学数理系大三的学生&#xff0c;LSGO软件技术团队&#xff08;Dreamtech算法组&#xff09;成员&#xff0c;参加了多期Datawhale的组队学习&#xff0c;荣获多期优秀队长的称号。 希望参与我们线下组队学习的同学&#xff0c;可以在微信公众号后台回复 线下…

Python字符串类型及操作总结

1.字符串表示 两种类型四种表示 单行-一对单引号或一对双引号 “python” ‘python’ 多行-一对三单引号或一对三双引号 ‘’’python’’’ “””python””” (三单引号形成的是字符串&#xff0c;但也可以用作多行注释) 如果字符串中出现双引号&#xff0c;则两边要用单引…

python利用wx.grid网格显示数据

首先需要定义类似数据模板的类。 import wx.grid as gridclass MyDataTable(grid.PyGridTableBase):def __init__(self,data,colLabelsNone):grid.PyGridTableBase.__init__(self)self.colLabels colLabelsself.data datadef GetNumberRows(self):return len(self.data)def G…

Linux Test Project 测试套件说明

LTP&#xff08;Linux Test Project&#xff09; Linux Test Project 是由SGI、OSDL和Bull开发和维护的一个项目&#xff0c;由IBM、思科、富士通、SUSE、Red Hat、Oracle和其他公司共同开发和维护。该项目的目标是向开源社区提供测试用例&#xff0c;以验证Linux的可靠性、健壮…

Python time库的使用总结

1. 简介 time库是Python中处理时间的标准库 -计算机时间的表达 -提供获取系统时间并格式化输出功能 -提供系统级精确计时功能&#xff0c;用于程序性能分析 2. 用法 import time time.() 3. 函数 主要有三类&#xff1a; -时间获取&#xff1a;time() ctime() gmtime() -时…

Android静态变量的生命周期

Android是用Java开发&#xff0c;其静态变量的生命周期遵守Java的设计。我们知道静态变量是在类被load的时候分配内存的&#xff0c;并且存在于方法区。当类 被卸载的时候&#xff0c;静态变量被销毁。在PC机的客户端程序中&#xff0c;一个类被加载和卸载&#xff0c;可简单的…

Python3基础笔记---面向对象

只是对一些新的知识的记录 1、创建类 class ClassName:<statement-1>...<statement-N> 类实例化后&#xff0c;可以使用其属性&#xff0c;实际上&#xff0c;创建一个类之后&#xff0c;可以通过类名访问其属性。 __init__() 方法可以有参数 2、方法 &#xff08;…