【测试基础】App测试要点总结

测试工做过程当中思惟过程:
测试人员常被看做Bug寻找者,程序的破坏者。android


一、好的测试工程师所具有的能力:ios

  • 细心的观察能力
  • 有效的提问能力
  • 产品的业务能力
  • 好奇心

二、测试人员须要询问问题:
测试人员的核心能力在于提出有挑战性的相关问题。若是你能将调查、询问技巧和技术、产品的知识结合起来,渐渐地,你也会成为一个好的测试人员。数据库

好比,测试人员可能会问:缓存

  • 这个App应该在什么平台上使用?
  • 这个App究竟是干什么的?
  • 若是我这样作,会发生什么状况?

诸如此类。安全

 

三、从哪里开始测试
理想状况下,测试人员应该掌握所测产品的全部最新细节资料。但事实上这不多见,所以,像其余人同样,测试人员只能将就使用手上有限的资料。但这不是不能测试的借口!测试人员实际上是能够从内部和外部多种不一样的来源处收集信息的。
这个阶段,测试人员能够问这些问题:服务器

  • 有哪些信息:规格?项目会议?用户文档?知识渊博的团队成员?现有的缺陷记录?
  • 该应用是在什么系统、平台和设备上进行运做和测试?
  • 该应用有整合外部应用(好比API和数据来源)吗?
  • 该应用须要用到特定的移动端网页吗?
  • 有多少时间可用于测试?
  • 测试的优先级和风险是什么?
  • 何时发布?

基于以上收集的信息,测试人员能够制定测试计划了。一般预算决定测试方法,一天测完,一个星期或一个月测完的方法确定不一样。当你逐渐熟悉团队、工做流程以及这类问题的解决方式时,你就更容易预测结果了。微信

看成为一名测试人员收集信息时,第一个信息来源用户反馈网络

 

四、测试人员的创造力
你可能知道这个App本来想作的事,可是它究竟能够作什么事呢?用户其实是如何使用它的?测试人员擅长做为旁观者来思考,尝试不一样的事物,以及不断地询问“若是。。。会怎么样”和“为何”的问题。
把本身当成不一样用户进行思考、分析和设想的能力对测试是备受启发的。
测试人员可能会设想本身是如下用户:session

  • 毫无经验;
  • 颇有经验;
  • 爱好者;
  • 黑客;
  • 竞争对手;

 

固然还有更多可选的角色,这主要取决于大家所开发的产品是什么。其实除了角色特色外,其操做行为和工做流程也很重要。app


人们使用产品方式经常很奇怪,好比:

  • 在不该该返回的时候返回了;
  • 不耐心并且屡次敲按键;
  • 输入错误的数据;
  • 不理解该怎么作;
  • 可能没有按要求进行设置;
  • 可能会自觉得是地认为本身知道该作什么(好比一般不阅读说明)。

 

测试人员遇到这些问题时,也经常发现意料以外的Bug。有时候,这些Bug微不足道,可是更深刻的调查就会发现更严重的问题。


不少问题是能够被预先肯定和测试的。测试移动端App时,如下的问题并不都有关,可是也能够尝试问问:

  • 崩溃报告会反馈到App吗?
  • 用户的数据安全如何?
  • 会要求打开相关服务吗(如GPS、Wi-Fi)?若是用户打开会怎样?没打开又会怎样?
  • 登陆流程是怎样的?能在App上直接登陆仍是要去网页端?
  • 登陆是否整合了其余服务,微信,QQ
  • 哪儿有全部的数据?

 

测试人员喜欢从数据上找问题,这让开发人员有时候很郁闷。事实上,用户或者是软件开发人员在信息流中确实太容易迷惑了,由于可能会出现不少错误,因此基于数据和云的服务更为重要。


也许你能够尝试在如下场景中检查出问题:

  • 移动设备数据已满;
  • 测试人员移除了全部的数据;
  • 测试人员删除了App,那数据怎么办?
  • 测试人员删除并重装了App,数据怎么办?
  • 数据不一样步;
  • 同步被中断;
  • 快速处理数据或是处理大量的数据;
  • 使用无效的数据;

 

测试人员也很喜欢测试极限数据下的状况。他们经常是做为典型用户来了解这个App,因此极限下的测试并不会花很长的时间。数据是混乱的,因此测试人员要考虑到软件的用户类型,以及在不一样的数据场景下如何进行测试。


好比,他们可能尝试如下场景:

  • 测试用户可输入的极限值;
  • 用重复的数据进行测试;
  • 在全新无数据的手机里测试;
  • 在老手机上测试;
  • 用一些超出预期的数据去测试,看它是怎么处理的;
  • 分析信息和数据是怎么影响用户体验的;

 

无论用户看到的是否正确,都要一直问问题。
建立出错提醒和消息


关于错误信息要问的问题请考虑如下问题:

  • 出错提醒的UI设计一致吗?
  • 错误信息内容能够理解吗?
  • 错误信息是否保持一致?
  • 这些错误信息有帮助吗?
  • 错误信息内容是否合适?
  • 这些错误是否符合惯例和标准?
  • 这些错误信息自己是否安全?
  • 运行记录和崩溃是否能被用户和开发者得到?
  • 是否全部的错误都被测试过?
  • 用户处理完错误信息后,将处于什么状态
  • 是否在用户应该接受错误信息时,却没有错误信息弹出?


错误信息会影响用户体验。然而,很差或无用的出错提醒无处不在。虽最理想的状态是避免用户遭遇错误信息,但这几乎不可能。出错状况的设计、实现和确承认能与预期相反,可是,测试者每每善于发现意料外的Bug,并能仔细考究是否改进它们。


五、特定平台上的注意事项
对于任何项目团队成员来讲,了解相关平台的业务、技术和设计上的限制,都是相当重要的。

那么,移动端App的测试人员应该找出哪些平台相关的问题呢?

  • 是否遵守了这个特定平台的设计规范?
  • 触摸屏支持手势吗,如:轻拍、双击、长按、拖动、摇动、夹捏、轻拂、滑动?
  • 当转动设备的方向时,有什么变化?
  • 有用户指南吗?
  • 经过网络分享时,它运行得流畅吗?是否整合了其余社交应用或网站?
  • 当用户正在进行多任务工做,并在不一样App间切换的时候,它还运行正常吗?
  • 当用户更新它时,它是否会显示时间进度?
  • 默认设置如何?有通过调整吗?

链接和中断的问题当链接断断续续或是意外中断时,不少有趣的事情就可能发生了。


你是否尝试过在如下场景中使用App:

  • 走动环境下?
  • Wi-Fi链接下?
  • 没有Wi-Fi的状况下?
  • 3G模式下?
  • 间歇性地链接?
  • 设置为飞行模式?
  • 一个电话打进来时?
  • 接收到一条信息时?
  • 接收到一个提醒通知时?
  • 在电量很低甚至自动关机时?
  • 被强制更新时?
  • 收到一条语音留言时?

这类测试最容易发现错误和Bug。我强烈建议你在这些状况下进行测试(不只仅只是开机、确认它能够正常工做,还要尝试用户使用的整个流程,并在特定的时间间歇内强制链接和中断)。


六、App的维护
想要加快整个测试的过程很简单,只需测试一次就一劳永逸了,对吗?请三思。

此刻我遇到的一个问题是:iPad上的一些App在更新后,不再能下载了。对于一个用户来讲,这是很是使人沮丧的。
可能,这也是开发者控制不了的。谁知道呢?我只知道它对于用户来说是不能用的。我也尝试卸载App,而后重装,但这个问题始终未能解决。我在网上大量的搜索,除了找到一些关于更新操做系统的建议外,没有任何其余解决方式。可能,下次有空时候,我还会再试试看。
关键问题在于:若是一个应用只被测试过一次,且只有一次(或仅在很短的一段时间内测试过),不少问题你都发现不了。一个App自身可能不会发现变化,但外界条件却可让这些问题发生。


当外界环境持续变化时,App又会受到哪些影响呢?让咱们问问本身:

  • 我能够下载这个App吗?
  • 我能够下载并安装更新吗?
  • 更新以后还能使用吗?
  • 系统更新后,它会发生什么?
  • 系统未更新,它又会发生什么?
  • 它会经过iTunes自动同步下载到其余设备吗?
  • 它自动执行任务或测试有意义吗?
  • 它会链接到网络服务吗?这会带来什么不一样?

移动端的App每个版本发布后,最好都去测试一下。每次发布新版本时,先定义最高优先级测试,确保其能在各类条件下进行(主要是在主流的平台上)。随着时间的推移,测试能够变得自动化。但请记住,自动化不是灵丹妙药,发现问题,只能经过人的眼睛。


七、测试不是对错判断
咱们讨论了移动测试的一些方面,但这些前提是:带着问题,才能发现问题。
一般,测试被认为是彻底合乎逻辑的、可计划的和可预测的,过程包括:测试脚本和测试计划、经过和失败、正确和错误的反馈。走完这些测试流程就离真相不远了。
固然,若是必要,咱们能够用上述方法进行测试,但这并非测试的目的。咱们不只是为了建立测试用例、发现Bug,更重要的是找到关键的问题,为项目组决定何时发布App提供有价值的信息。而找到

那些关键问题的最好方法就是:提问!

(1)、登陆  ●登陆用户名和密码错误时,界面有提示信息  ●用户主动退出登陆后,下次启动APP时,应该进入登陆界面  ●对于支持自动登陆的APP,数据交换时 ,是否能自动登陆成功且数据库操做无误  ●密码更改后,登陆时是否作到了有效数据的校验  ●对于未登陆时一些页面的操做,是否作了控制  ●切换帐号登陆,检验登陆的信息是否作到及时更新  ●对于多个端都进行操做时,确保数据库操做无误,且每一个端能够及时看到数据的更新  ●对于一些软件,支持一个帐号只容许登陆一台机器,这时,须要检查帐号登陆多个手机时,是否将原用户剔除,且可以给出提示信息  ● APP切换到后台时,再次切换到前台的测试,如登陆时,有电话打进来(2)、离线  离线是应用程序在本地的客户端会缓存一部分数据以功程序下次调用  ●对于一些程序,须要在登陆进来后,这时没有网络的状况下能够浏览本地数据  ●对于无网络时,刷新获取新数据时,不能获取数据且能给出友好提示  ●切换到后台,再次切换到前台时,能够正常查看  ●离线后又连上网,这时对数据有更新时,须要从服务器端获取新数据来更新客户端数据,且要更新本地缓存信息  ●对于一些界面的数据不提供离线查看,须要给出相应提示且界面更新后无任何数据(3)、经验由于ios系统有不断的更新,因此会出现这样那样兼容性的问题,其实咱们软件中有一点,我记得很清楚,就是在送人彩票环节,赠送成功后会弹出一个舒适提示(问用户是,否要提醒用户领取),用户一旦点了【好的】,会跳到一个短信提醒框,此时就会出错,在iphone5上都没事,一旦在4s上运行就有可能付出闪退。若是是同一个用户,那么她在android,ios上登陆后,记录应该都是同样的。一款手机软件在android系统上测试要特别注意,android手机款式多,内存,分辨率不一,因此测试难过也比较大。咱们的软件有一个问题一直走不去,就是在小手机上,若是应用开多,占内存大了,就会出现闪退。有新的版本要上线前,必定要测旧的版本,不能由于新版本上线了,老版本就不能用了,用老版本的用户仍是大有人在。有一次,我用新版本注册的用户去玩老版本,结果就有有错过,固然这样玩的人不多。若是一页面里有不少条记录里,要注意上下多滑动,我在测试过程当中,好几回在上下滑动中又因为数据出现错误,致使闪退,尤为是android.到了某个页面,忽然断网了,而后你在不知情的状况下,点击某个按钮想继续往下走,此时,不能出现闪退的状况,而要给出断网提示。文本框校验时采用等价类划分法,边界值法,错误推测法与场景法,至少这些方法的概念,本身网上去搜。不少手机app在打开后,通常用户都不须要先注册登陆,到了合适的地方,弹出合适的提示,很好友的让用户去登陆。固然有些页面,并且有时没有判断,未登陆去点一些按钮,有可能会闪退。未登陆与登陆显示的页面是彻底不同的,要仔细测。用户登陆状态过久,sessionId会过时,会出现“虽然是登陆状态,系统会提示用户没有登陆。”外部软件须要更新致使自家软件闪退。我公司是一款博彩类软件,用户须要经过支付宝或财付通支付,有一次在用支付快捷支付时,提示我支付快捷支付须要更新,我就点了更新,更新完成后,咱们的软件就异常退出了。输入数据,点某颗按钮,会出现错误提示,有时无论这个提示,继续猛点这个按钮,会出现出人意外的结果哦。上线前必定要测一下软件更新,我好几回这里没测,结果挨了批。这真是叫作“晚节不保”。全部功能都测了n遍了,大胆放心的上了,但是没有在测试环境测软件的更新。结果上线后,用户更新了就出大问题了,大大影响用户量。

相关文章
相关标签/搜索