对现有产品进行可用性测试,旨在发现用户在使用产品中存在的问题,从而得到优化的方案,最终提高产品的可用性。假如产品的可用性可以分为三个档次:可用,易用和乐用。那么三个档次之间存在着体验的递进关系,“可用”代表着产品能满足用户需求;“易用”代表产品不仅能满足用户需求而且简单易懂,用户凭借已有的经验和简单的提示就能对产品运用自如;那么“乐用”代表着这个产品不仅简单易用,用户使用的过程中还能有情感上的美好体验,比如成就感、情感共鸣、意外的惊喜、感动和快乐。可用性测试的目的就是要让用户在使用产品的场景中从可用到易用,最好能达到乐用。
让产品达到“乐用”的档次是比较难的,产品设计者必须深刻的理解用户的需求及应用场景,攻克技术和工艺等难关,用“神来之笔”给用户带来打动人心的使用体验。想象100年前一直骑马的人第一次乘坐福特汽车时的感受,再想想一直使用命令行操作界面的人第一次看到苹果的Macintash计算机,第一次使用图形界面时的感受,那应该就是“乐用”的体验。虽然“乐用”难以达到,但是“易用”还是可以努力达到的。“可用”但难用的产品在我们日常的生活中随处可见,我们可能会常常抱怨“谁这么蠢,居然设计成这个样子?”然后将就着使用。如果能让我们的产品都能达到易用的层次,这个世界就能少了一点抱怨,变得更加友好。
说到产品的可用性,不能不提尼尔森的十大可用性原则。这十个原则不仅能在设计的时候提供指导,还能在测试的过程中带来启发。关于尼尔森可用性原则,现在网上有很多个版本,我也懒得去考证哪个是最正宗的。我这里有个版本,我觉得是很实用的,比较靠谱的:
这个可用性原则原本是用来作“启发式”设计的,我认为在可用性测试的过程中同样适用。这张图把十个原则按照理解(产品)、操作(用户)和反馈(产品)进行分组。
理解,这一组的三个原则从产品传递给用户信息的角度出发,有利于用户理解产品,快速形成正确的心智模型:1.一致性(Consistency),产品从色彩、文案、组件及操作的方式都要保持统一性。相同不需要理由,不同的话就需要特别的原因,为什么要不一样?多问几次为什么要设计的不一样;2.用户熟悉的意象和语言(use familar metaphors,languege),使用用户熟悉的设计语言及业界成熟的设计规范去表达传递产品的意图。慎重创新,千万不要标新立异。如果你的“创新”不能达到突破性的效果,或者没有充足的理由,请老老实实恰当的运用已有的设计规范,这并不可耻。这样可以降低用户的学习成本,使用户从其他产品使用过程中形成的观念在新的产品上依然适用;3.简洁、功能性的设计(clean,functional design),形式追随功能,功能决定形式,形式和功能统一。简洁的,功能性的设计有利于形成产品本身的示能(affordance),让用户一看见这个产品的结构或界面就能理解如何与之进行交互。不必要的装饰,或者嘈杂的信息会误导或者干扰用户,带来认知的压力和负担。
操作,这一组三个原则从用户操作产品与产品交互的角度出发,有利于用户顺畅地使用产品:1.自由度(freedom),给用户一种掌控感,不要强迫用户,给用户选择和做决定的权利。“必须得这样做”,产品如果传递出这样的信息是很不礼貌的,会让用户反感和排斥。2.灵活高效(flexibility),中级用户的数量远高于初级和高级用户数。为大多数用户设计,不要低估,也不可轻视,保持灵活高效。3.感知而非回想(recognition over recall),人的长期记忆有缺陷而且不可靠。使用产品过程中避免用户需要回忆过去的某些信息,即使是前一个界面的信息也不可以。把当前用户完成任务所需要的信息及时提供给用户,减轻用户的认知负担。
反馈,这一组的四个原则从产品在用户的操作后给予用户的反馈出发,有利于用户感知结果:1.显示状态(show state),实时告知用户当前处于什么位置。对于耗时的任务,当前进行到什么程度。减轻用户的焦虑和担心。及时的反馈并不完全依赖于产品的性能而是设计应该做到的。2.防错(prevent errors),对于使用过程中的犯错,用户会下意识的自责。但是更多事实是设计上的漏洞导致用户有犯错的可能。更多的考虑产品的异常情况,边界情况,考虑更多的可能性。有效地利用各种约束条件避免用户犯错。3.纠错(support error recovery),有时候错误不可避免,那么要尽量降低错误带来的负面影响。用户在探索产品的过程中难免会犯错,如果要鼓励用户去尝试,就要在设计层面尽量避免尝试的风险和代价。让用户方便的回到之前的状态,退回到错误之前,比如iphone的home键。4.提供帮助(provide help),这是可用性的最后一道防线了。在用户不知所措的时候给予适当的帮助,提示帮助用户完成任务。比如首次使用向导,改版后功能模块位置移动后的提示,或者是常见问题的指南。
在产品设计的阶段充分考虑到上述的十个方面,在可用性方面理论上没有什么问题了。理论上理论是和实践一样的,实际上往往不一样。在真实的使用场景下对实际用户进行可用性测试也就很有必要了。下面总结下可用性测试过程中关键步骤及需要注意的问题:
1.明确测试的目的,测试是为了找到用户实际使用过程中暴露中的严重问题。
2.设置关键任务,用户在测试过程中要完成哪些任务?不同类型的用户可能要完成不同的任务。这些任务是为了验证哪些预判问题?或者只是测试产品主要任务。
3.梳理问题脚本,用户在完成测试后需要回答哪些问题?用户在任务过程中是怎么想的?哪些因素导致用户无法正常进行任务或者使用过程存在歧义?
4.从不同的维度(新老用户、性别、年龄、购买频次、团购与否...)选择测试用户并进行分组。预约用户,安排测试场地及测试时间。
5.记录(摄像、录音)观察用户使用产品的过程,及完成任务的情况。根据问题脚本对用户提问,并根据实际情况恰当地调整问题。
6.整理分析测试结果,找到问题的共性及影响可用性的严重程度。讨论得出针对这些问题的优化方案,最终生成可用性测试报告。
7.把测试过程及报告传达给产品利益相关者并讨论方案对策,最终落实方案达到提高产品可用性的目的。
据说5到8个用户测试完成后,就能完全暴露影响产品可用性的问题。测试的过程中要保证客观性,因为测试之前,产品和设计师都会对产品可能存在的问题有个预判,所以提问时不要诱导用户。不能让这些成见影响测试的客观性,测试的目的是发现问题而不是验证问题。测试的结果往往让你意想不到,这也是测试的价值所在。