测试人员常被看作bug寻找者,但你曾想过他们实际是如何开展测试的吗?你是否好奇他们究竟都做些什么,以及他们如何在一个典型的技术项目中体现价值? 带你经历测试人员的思维过程,探讨他们测试移动app时的各种考虑。本文的目的在于揭示测试人员的这一思维过程,并展示他们通常所考虑内容的广度和深度。
测试人员需要询问问题 测试人员的核心能力在于提出有挑战性的相关问题。如果你能将调查、询问技巧和技术、产品的知识结合起来,渐渐地,你也会成为一个好的测试人员。 比如,测试人员可能会问: · 这个App应该在什么平台上使用? · 这个App到底是干什么的? · 如果我这样做,会发生什么情况? 诸如此类。 测试人员能从各种场景中发现问题,它们可能来自对话、设计、文档、用户反馈或者是产品本身。这些可能性太多了……因此,让我们一探究竟吧!
从哪里开始测试 理想情况下,测试人员应该掌握所测产品的所有最新细节资料。但事实上这很少见,因此,像其他人一样,测试人员只能将就使用手上有限的资料。但这不是不能测试的借口!测试人员其实是可以从内部和外部多种不同的来源处收集信息的。 这个阶段,测试人员可以问这些问题: · 有哪些信息:规格?项目会议?用户文档?知识渊博的团队成员?有支持论坛或者是公司在线论坛提供帮助?有现存Bug的记录吗? · 该应用是在什么系统、平台和设备上进行运作和测试? · 该应用是处理什么类型的数据(比如个人信息、信用卡等等)? · 该应用有整合外部应用(比如API和数据来源)吗? · 该应用需要用到特定的移动端网页吗? · 现有消费者如何评价这个产品? · 有多少时间可用于测试? · 测试的优先级和风险是什么? · 哪些用户使用起来不愉快,为什么? · 如何发布和更新? 基于以上收集的信息,测试人员可以制定测试计划了。通常预算决定测试方法,一天测完,一个星期或一个月测完的方法肯定不同。当你逐渐熟悉团队、工作流程以及这类问题的解决方式时,你就更容易预测结果了。
案例:Facebook App的社会评论 当作为一名测试人员收集信息时,我喜欢选用Facebook App作为案例,因为用户的抱怨到处都是。以下仅仅展示了部分遇到难题的用户在iTunes App Store中发表的评论,网络上还有很多。 [url=][/url] iPhone上的Facebook App有很多负面的评论 如果我接受挑战去测试Facebook这个App,我肯定会考虑这些反馈,否则就是傻子。
测试人员的创造力 你可能知道这个App原本想做的事,但是它究竟可以做什么事呢?用户实际上是如何使用它的?测试人员擅长作为旁观者来思考,尝试不同的事物,以及不断地询问“如果。。。会怎么样”和“为什么”的问题。 比如,移动端的测试人员常常以不同的用户角色进行测试——当然有点夸张,但是,这种把自己当成不同用户进行思考、分析和设想的能力对测试是备受启发的。 测试人员可能会设想自己是以下用户: · 毫无经验; · 很有经验; · 爱好者; · 黑客; · 竞争对手。 当然还有更多可选的角色,这主要取决于你们所开发的产品是什么。其实除了角色特点外,其操作行为和工作流程也很重要。人们使用产品方式常常很奇怪,比如: · 在不应该返回的时候返回了; · 不耐心而且多次敲按键; · 输入错误的数据; · 不理解该怎么做; · 可能没有按要求进行设置; · 可能会自以为是地认为自己知道该怎做什么(比如通常不阅读说明)。
测试人员遇到这些问题时,也常常发现意料之外的Bug。有时候,这些Bug微不足道,但是更深入的调查就会发现更严重的问题。 很多问题是可以被预先确定和测试的。做app测试时,以下的问题并不都有关,但是也可以尝试问问: · 是否按照所说的来做呢? · 是按设计完成任务的吗? · 不是按设计完成任务的吗? · 如果处于一直被使用或者负荷情况下,状况会怎么样?会反应迟钝吗?会崩溃吗?会更新吗?有反馈吗? · 崩溃报告会反馈到App吗? · 用户可能有哪些创造性的、逻辑性的或是消极的导航方式?用户相信你的品牌吗? · 用户的数据安全如何? · 有可能被中断或是被破解吗? · 运行到极限时会发生什么状况? · 会要求打开相关服务吗(如GPS、Wi-Fi)?如果用户打开会怎样?没打开又会怎样? · 将用户重新引向哪儿?去网页?还是从网页到App?这会导致问题出现吗? · 沟通过程和市场反馈是否符合该App的功能、设计和内容? · 登录流程是怎样的?能在App上直接登录还是要去网页端? · 登录是否整合了其他服务,比如用Facebook和Twitter帐号登录? 测试不是对错判断 我们讨论了移动测试的一些方面,但这些前提是:带着问题,才能发现问题。 通常,测试被认为是完全合乎逻辑的、可计划的和可预测的,过程包括:测试脚本和测试计划、通过和失败、正确和错误的反馈。走完这些测试流程就离真相不远了。 当然,如果必要,我们可以用上述方法进行测试,但这并不是测试的目的。我们不仅是为了创建测试用例、发现Bug,更重要的是找到关键的问题,然后让别人去用真机调试,为项目组决定什么时候发布App提供有价值的信息。而找到那些关键问题的最好方法就是:提问!
|