【测试基础】App测试要点总结
测试工作过程中思维过程:
测试人员常被看作Bug寻找者,程序的破坏者。
1、好的测试工程师所具备的能力:
- 细心的观察能力
- 有效的提问能力
- 产品的业务能力
- 好奇心
2、测试人员需要询问问题:
测试人员的核心能力在于提出有挑战性的相关问题。如果你能将调查、询问技巧和技术、产品的知识结合起来,渐渐地,你也会成为一个好的测试人员。
比如,测试人员可能会问:
- 这个App应该在什么平台上使用?
- 这个App到底是干什么的?
- 如果我这样做,会发生什么情况?
诸如此类。
3、从哪里开始测试
理想情况下,测试人员应该掌握所测产品的所有最新细节资料。但事实上这很少见,因此,像其他人一样,测试人员只能将就使用手上有限的资料。但这不是不能测试的借口!测试人员其实是可以从内部和外部多种不同的来源处收集信息的。
这个阶段,测试人员可以问这些问题:
- 有哪些信息:规格?项目会议?用户文档?知识渊博的团队成员?现有的缺陷记录?
- 该应用是在什么系统、平台和设备上进行运作和测试?
- 该应用有整合外部应用(比如API和数据来源)吗?
- 该应用需要用到特定的移动端网页吗?
- 有多少时间可用于测试?
- 测试的优先级和风险是什么?
- 什么时候发布?
基于以上收集的信息,测试人员可以制定测试计划了。通常预算决定测试方法,一天测完,一个星期或一个月测完的方法肯定不同。当你逐渐熟悉团队、工作流程以及这类问题的解决方式时,你就更容易预测结果了。
当作为一名测试人员收集信息时,第一个信息来源用户反馈
4、测试人员的创造力
你可能知道这个App原本想做的事,但是它究竟可以做什么事呢?用户实际上是如何使用它的?测试人员擅长作为旁观者来思考,尝试不同的事物,以及不断地询问“如果。。。会怎么样”和“为什么”的问题。
把自己当成不同用户进行思考、分析和设想的能力对测试是备受启发的。
测试人员可能会设想自己是以下用户:
- 毫无经验;
- 很有经验;
- 爱好者;
- 黑客;
- 竞争对手;
当然还有更多可选的角色,这主要取决于你们所开发的产品是什么。其实除了角色特点外,其操作行为和工作流程也很重要。
人们使用产品方式常常很奇怪,比如:
- 在不应该返回的时候返回了;
- 不耐心而且多次敲按键;
- 输入错误的数据;
- 不理解该怎么做;
- 可能没有按要求进行设置;
- 可能会自以为是地认为自己知道该做什么(比如通常不阅读说明)。
测试人员遇到这些问题时,也常常发现意料之外的Bug。有时候,这些Bug微不足道,但是更深入的调查就会发现更严重的问题。
很多问题是可以被预先确定和测试的。测试移动端App时,以下的问题并不都有关,但是也可以尝试问问:
- 崩溃报告会反馈到App吗?
- 用户的数据安全如何?
- 会要求打开相关服务吗(如GPS、Wi-Fi)?如果用户打开会怎样?没打开又会怎样?
- 登录流程是怎样的?能在App上直接登录还是要去网页端?
- 登录是否整合了其他服务,微信,QQ
- 哪儿有所有的数据?
测试人员喜欢从数据上找问题,这让开发人员有时候很郁闷。事实上,用户或者是软件开发人员在信息流中确实太容易迷惑了,因为可能会出现很多错误,所以基于数据和云的服务更为重要。
也许你可以尝试在以下场景中检查出问题:
- 移动设备数据已满;
- 测试人员移除了所有的数据;
- 测试人员删除了App,那数据怎么办?
- 测试人员删除并重装了App,数据怎么办?
- 数据不同步;
- 同步被中断;
- 快速处理数据或是处理大量的数据;
- 使用无效的数据;
测试人员也很喜欢测试极限数据下的情况。他们常常是作为典型用户来了解这个App,所以极限下的测试并不会花很长的时间。数据是混乱的,所以测试人员要考虑到软件的用户类型,以及在不同的数据场景下如何进行测试。
比如,他们可能尝试以下场景:
- 测试用户可输入的极限值;
- 用重复的数据进行测试;
- 在全新无数据的手机里测试;
- 在老手机上测试;
- 用一些超出预期的数据去测试,看它是怎么处理的;
- 分析信息和数据是怎么影响用户体验的;
不管用户看到的是否正确,都要一直问问题。
创建出错提醒和消息
关于错误信息要问的问题请考虑以下问题:
- 出错提醒的UI设计一致吗?
- 错误信息内容可以理解吗?
- 错误信息是否保持一致?
- 这些错误信息有帮助吗?
- 错误信息内容是否合适?
- 这些错误是否符合惯例和标准?
- 这些错误信息本身是否安全?
- 运行记录和崩溃是否能被用户和开发者获得?
- 是否所有的错误都被测试过?
- 用户处理完错误信息后,将处于什么状态
- 是否在用户应该接受错误信息时,却没有错误信息弹出?
错误信息会影响用户体验。然而,不好或无用的出错提醒无处不在。虽最理想的状态是避免用户遭遇错误信息,但这几乎不可能。出错情况的设计、实现和确认可能与预期相反,但是,测试者往往善于发现意料外的Bug,并能仔细考究是否改进它们。
5、特定平台上的注意事项
对于任何项目团队成员来说,了解相关平台的业务、技术和设计上的限制,都是至关重要的。
那么,移动端App的测试人员应该找出哪些平台相关的问题呢?
- 是否遵照了这个特定平台的设计规范?
- 触摸屏支持手势吗,如:轻拍、双击、长按、拖动、摇动、夹捏、轻拂、滑动?
- 当转动设备的方向时,有什么变化?
- 有用户指南吗?
- 通过网络分享时,它运行得流畅吗?是否整合了其他社交应用或网站?
- 当用户正在进行多任务工作,并在不同App间切换的时候,它还运行正常吗?
- 当用户更新它时,它是否会显示时间进度?
- 默认设置如何?有经过调整吗?
连接和中断的问题当连接断断续续或是意外中断时,很多有趣的事情就可能发生了。
你是否尝试过在以下场景中使用App:
- 走动环境下?
- Wi-Fi连接下?
- 没有Wi-Fi的情况下?
- 3G模式下?
- 间歇性地连接?
- 设置为飞行模式?
- 一个电话打进来时?
- 接收到一条信息时?
- 接收到一个提醒通知时?
- 在电量很低甚至自动关机时?
- 被强制更新时?
- 收到一条语音留言时?
这类测试最容易发现错误和Bug。我强烈建议你在这些情况下进行测试(不仅仅只是开机、确认它可以正常工作,还要尝试用户使用的整个流程,并在特定的时间间歇内强制连接和中断)。
6、App的维护
想要加快整个测试的过程很简单,只需测试一次就一劳永逸了,对吗?请三思。
此刻我遇到的一个问题是:iPad上的一些App在更新后,再也不能下载了。对于一个用户来说,这是非常令人沮丧的。
可能,这也是开发者控制不了的。谁知道呢?我只知道它对于用户来讲是不能用的。我也尝试卸载App,然后重装,但这个问题始终未能解决。我在网上大量的搜索,除了找到一些关于更新操作系统的建议外,没有任何其他解决方式。可能,下次有空时候,我还会再试试看。
关键问题在于:如果一个应用只被测试过一次,且只有一次(或仅在很短的一段时间内测试过),很多问题你都发现不了。一个App自身可能不会发现变化,但外界条件却可以让这些问题发生。
当外界环境持续变化时,App又会受到哪些影响呢?让我们问问自己:
- 我可以下载这个App吗?
- 我可以下载并安装更新吗?
- 更新之后还能使用吗?
- 系统更新后,它会发生什么?
- 系统未更新,它又会发生什么?
- 它会通过iTunes自动同步下载到其他设备吗?
- 它自动执行任务或测试有意义吗?
- 它会连接到网络服务吗?这会带来什么不同?
移动端的App每一个版本发布后,最好都去测试一下。每次发布新版本时,先定义最高优先级测试,确保其能在各种条件下进行(主要是在主流的平台上)。随着时间的推移,测试可以变得自动化。但请记住,自动化不是灵丹妙药,发现问题,只能通过人的眼睛。
7、测试不是对错判断
我们讨论了移动测试的一些方面,但这些前提是:带着问题,才能发现问题。
通常,测试被认为是完全合乎逻辑的、可计划的和可预测的,过程包括:测试脚本和测试计划、通过和失败、正确和错误的反馈。走完这些测试流程就离真相不远了。
当然,如果必要,我们可以用上述方法进行测试,但这并不是测试的目的。我们不仅是为了创建测试用例、发现Bug,更重要的是找到关键的问题,为项目组决定什么时候发布App提供有价值的信息。而找到
那些关键问题的最好方法就是:提问!
(1)、登录
●登录用户名和密码错误时,界面有提示信息
●用户主动退出登录后,下次启动APP时,应该进入登录界面
●对于支持自动登录的APP,数据交换时 ,是否能自动登录成功且数据库操作无误
●密码更改后,登录时是否做到了有效数据的校验
●对于未登录时一些页面的操作,是否做了控制
●切换账号登录,检验登录的信息是否做到及时更新
●对于多个端都进行操作时,确保数据库操作无误,且每个端可以及时看到数据的更新
●对于一些软件,支持一个账号只允许登录一台机器,这时,需要检查账号登录多个手机时,是否将原用户剔除,且能够给出提示信息
● APP切换到后台时,再次切换到前台的测试,如登录时,有电话打进来
(2)、离线
离线是应用程序在本地的客户端会缓存一部分数据以功程序下次调用
●对于一些程序,需要在登录进来后,这时没有网络的情况下可以浏览本地数据
●对于无网络时,刷新获取新数据时,不能获取数据且能给出友好提示
●切换到后台,再次切换到前台时,可以正常查看
●离线后又连上网,这时对数据有更新时,需要从服务器端获取新数据来更新客户端数据,且要更新本地缓存信息
●对于一些界面的数据不提供离线查看,需要给出相应提示且界面更新后无任何数据
(3)、经验
因为ios系统有不断的更新,所以会出现这样那样兼容性的问题,其实我们软件中有一点,我记得很清楚,就是在送人彩票环节,赠送成功后会弹出一个温馨提示(问用户是,否要提醒用户领取),用户一旦点了【好的】,会跳到一个短信提醒框,此时就会出错,在iphone5上都没事,一旦在4s上运行就有可能付出闪退。
如果是同一个用户,那么她在android,ios上登录后,记录应该都是一样的。
一款手机软件在android系统上测试要特别注意,android手机款式多,内存,分辨率不一,所以测试难过也比较大。我们的软件有一个问题一直走不去,就是在小手机上,如果应用开多,占内存大了,就会出现闪退。
有新的版本要上线前,一定要测旧的版本,不能因为新版本上线了,老版本就不能用了,用老版本的用户还是大有人在。有一次,我用新版本注册的用户去玩老版本,结果就有有错过,当然这样玩的人很少。
如果一页面里有很多条记录里,要注意上下多滑动,我在测试过程中,好几次在上下滑动中又由于数据出现错误,导致闪退,尤其是android.
到了某个页面,突然断网了,然后你在不知情的情况下,点击某个按钮想继续往下走,此时,不能出现闪退的情况,而要给出断网提示。
文本框校验时采用等价类划分法,边界值法,错误推测法与场景法,至少这些方法的概念,自己网上去搜。
很多手机app在打开后,一般用户都不需要先注册登录,到了合适的地方,弹出合适的提示,很好友的让用户去登录。当然有些页面,而且有时没有判断,未登录去点一些按钮,有可能会闪退。未登录与登录显示的页面是完全不一样的,要仔细测。
用户登录状态太久,sessionId会过期,会出现“虽然是登录状态,系统会提示用户没有登录。”
外部软件需要更新导致自家软件闪退。我公司是一款博彩类软件,用户需要通过支付宝或财付通支付,有一次在用支付快捷支付时,提示我支付快捷支付需要更新,我就点了更新,更新完成后,我们的软件就异常退出了。
输入数据,点某颗按钮,会出现错误提示,有时不管这个提示,继续猛点这个按钮,会出现出人意外的结果哦。
上线前一定要测一下软件更新,我好几次这里没测,结果挨了批。这真是叫做“晚节不保”。所有功能都测了n遍了,大胆放心的上了,可是没有在测试环境测软件的更新。结果上线后,用户更新了就出大问题了,大大影响用户量。
【测试基础】App测试要点总结的更多相关文章
- Web测试和app测试区别?
EB测试和APP测试从流程上来说,没有区别.都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动.从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试,性能 ...
- web测试和app测试的区别
功能上: 功能上没有什么区别,都是用同样的方法来写用例(等效.边界值...) 架构上: web是B/S架构(浏览器和服务器)代码更新后数据会同步,可以保证所有客户一致 app是C/S架构(客户端和服务 ...
- Web测试和App测试有什么区别
WEB测试和App测试从流程上来说,没有区别.都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动.从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试.性 ...
- WEB测试和APP测试区别
Web测试和App测试从流程上来说,没有区别.都需要经历测试计划方案,用例设计,测试执行,缺陷管理,测试报告等相关活动.从技术上来说,WEB测试和APP测试其测试类型也基本相似,都需要进行功能测试.性 ...
- Web测试与APP测试有哪些异同?
1.相同点 不管是传统行业的web测试,还是新兴的手机APP测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中. 1)设计测试用例时,依然都是依据边界值分析法.等价类划分等 ...
- web测试与app测试的区别
才开始做测试就接触的web端,后来也接触app端,所以在这里对于自己工作中所接触到的做一些总结(总要养成总结的好习惯). 对于web端和移动端app,功能方面的测试,例如测试设计方法这些都大同小异,都 ...
- web测试和app测试
web测试是b/s结构,app是c/s结构,因此会有很多测试点需要注意: 1.兼容性:web测试需要考虑多个浏览器内核测试,app主要是各种手机(iOS和Android各个型号)不同手机的分辨率.不同 ...
- 手游与App测试如何快速转型? —— 过来人科普手游与App测试四大区别
随着智能设备的普及和移动互联网的兴起,各家互联网巨头纷纷在往移动端布局和转型,同时初创的移动互联网公司也都盯着这个市场希望分一杯羹.在这个大环境下,互联网的重心已经慢慢从Web端转向了移动端,而移动端 ...
- 移动App测试实战—专项测试
我们在进行了手工的功能测试之后,也开发了一些自动化测试用例,并且做了性能测试之后,测试工作看似比较完整了.但是当我们的App在大量的用户那里被安装和使用的时候,还是会有很多我们之前没有预料的问题 ...
- 如何做好APP测试?
测试一个App具体包括哪些方面,以及每个方面有什么关键点呢? 测试人员常被看作bug寻找者,但你曾想过他们实际是如何开展测试的吗? 你是否好奇他们究竟都做些什么,以及他们如何在一个典型的技术项目中体现 ...
随机推荐
- Binary Search Tree analog
Description Binary Search Tree, abbreviated as BST, is a kind of binary tree maintains the following ...
- B.Silly Mistake
题目:愚蠢的错误 题意:中心公司有一个办公室有一个成熟的安全系统,这里面有10^6个雇员,编号从1到10^6 安全系统有入口和出口,数字i表示第i个雇员进入,-i表示第i个雇员出去 公司有一些严格的规 ...
- Ceph 集群搭建
1.Ceph部署 1.1 Ceph 安装前准备,环境与拓扑图如下: 主机名 外网IP 内网IP 安装组件 磁盘块 c720181 172.22.69.84 192.168.20.181 ceph-de ...
- 剑指Offer-41.和为S的连续正数序列(C++/Java)
题目: 小明很喜欢数学,有一天他在做数学作业时,要求计算出9~16的和,他马上就写出了正确答案是100.但是他并不满足于此,他在想究竟有多少种连续的正数序列的和为100(至少包括两个数).没多久,他就 ...
- 用HAL库结合STM cube编写代码控制stm32f103c8t6来驱动减速电机实现慢快逐步切换转动
用到的模块 TB6612FNG电机驱动模块 stm32F103C8T6最小系统板 LM2596S降压模块 直流减速电机(不涉及编码器知识) 模块介绍 1.TB6612FNG电机驱动模块 (1)< ...
- 双重检查锁单例模式为什么要用volatile关键字?
前言 从Java内存模型出发,结合并发编程中的原子性.可见性.有序性三个角度分析volatile所起的作用,并从汇编角度大致说了volatile的原理,说明了该关键字的应用场景:在这补充一点,分析下v ...
- Linux查看文本的第20~30行
一.模拟环境 [root@WT ~]# seq >/data/test.txt [root@WT ~]# xargs -n </data/test.txt 二.实现命令 方法一(head+ ...
- ubuntu14.04编译gnu global 6.6.3
打算重新折腾下环境,看中了gtags ,可参考 Vim 8 中 C/C++ 符号索引:GTags 篇 ,先记录下编译过程 源码 下载并解压源码 最新的代码到官方下载页面获取 https://www.g ...
- SVN中怎样忽略当前文件不提交
场景 在使用SVN进行版本管理时,有时一些自动生成的文件比如证书等,在每台电脑上都会不同,如果将其提交,则会冲突. 怎样将指定的文件或者指定文件后缀的文件忽略提交. 注: 博客主页: https:// ...
- 松软科技Web课堂:JavaScript 类型转换
Number() 转换数值,String() 转换字符串,Boolean() 转换布尔值. JavaScript 数据类型 JavaScript 中有五种可包含值的数据类型: 字符串(string) ...