【IT168 评论】
第一次走到新的办公室,透过落地的巨大玻璃门,可以看到里面的会议室。许多人会习惯的去推门,同时脚步并没有停下来。结果“哐”的一声巨响,整个身子就撞了上去,鼻子贴到了玻璃上。原来,这扇门是只能拉而不能推的,这是每个人都会遇到的事情:只能拉的门去推,只能推的门去拉,或者直接一头撞进那种左右滑动的移门上去。这是Donald A. Norman在一本很有趣的书,名字叫The Design of Everyday Things里描述关于门的例子。
这个时候,许多人常会自责“自己真不小心”。其实,傻的不是我们,而是门的设计师。因为这是会让人犯错误的设计,是易用性出了问题。易用性差的门,就像给我们设计的圈套,等着我们掉进去。所以,易用性是一门学问,软件易用性对于软件开发越来越重要,它常常是软件是否被广泛使用的决定性因素之一。比如Windows的技术不比Unix先进但却更流行,其中一个因素是易用性做得很好,如界面友好、操作简便、丰富的帮助支持和外形靓丽。
一.软件开发中常见的易用性误区
人们对于软件易用性的重视程度越来越高,但软件易用性测试一直是一个很具挑战性的测试内容。目前很多易用性测试是通过用户反馈来完成的,例如在一定范围内散发试用版,然后等用户的反馈。但是这种方式投入较多,而且等待反馈需要的时间也很长,最重要的是测试效果也是强差人意。究其原因主要是对于软件易用性存在着诸多误解。
(1)忽视和误解了软件易用性概念
近年来,虽然在软件开发中GUI Design(图形化交互界面设计)以及易用性已经得到软件团队的普遍重视,但众多软件开发团队在该领域还处于起步阶段,甚至妄图用“美工”这一图形设计角色来解决软件产品中出现的各种诸如人机交互、界面设计以及易用性改善方面的问题,而这样的做法必然导致软件产品的不可用,其易用性则更加无从谈起。
易用性是用户体验的一个重要方面,但许多软件开发人员往往会沉溺于自己的思维习惯,而不管用户使用得是否顺畅。例如,在易用性方面缺乏考虑用户是谁、他们背景是什么、用户具备了哪些知识、用户想做什么或需要做什么、用户工作时的情境是什么状况等。实际上,易用性是一种以使用者为中心的设计概念,易用性的重点在于让软件产品能够符合使用者的习惯与需求,是希望让使用者在使用的过程中不会产生压力或感到挫折,希望使用者能有愉悦的心情并用最少的努力发挥最大的效能。
(2)混淆了有用性与易用性的区别
我们常搞混有用性和易用性的区别。普遍的情况是很多软件企业仍然对易用性熟视无睹,对真正改进客户满意度的途径不能理解。这些企业仅仅关注于软件产品功能的基本可用,而忽略了其易用性。事实上,易用性是软件产品的一个基本属性,标志着软件产品的可用程度和成熟度。
有用(Usefulness)这个概念可以进一步分为易用性和功能性。尽管这两个词是相关的,但它们却是不可以相互替换的。功能性是指产品完成任务的能力,产品被设计为能完成更多的任务,那么产品的功能性就越强。我们回顾一下,80年代末微软的MS_DOS版文字处理软件,该软件提供了很多很强的文字编辑功能,但是要求用户必须学习并记住很多神秘的按键才能完成任务。这样的软件可以说具有很高的功能性(提供给用户很多必要的功能),但易用性很低(用户必须花大量时间和精力去学习、使用它们)。
因此,如果给用户一个功能非常强大的程序,但却很难使用,那么用户将很可能会抵制它或者寻求其它替代物。所以,易用性测试是帮助开发人员确定用户能否容易地执行特定的任务,但是易用性测试并不能直接确定产品本身是否有价值或有功能。因此,要分清一件事物的两个方面,在分析的时候要避免将所有的问题都归结于易用性问题。
(3)没有正确理解发现、弄懂和效率
易用性有很多方面,包括发现、弄懂、效率等特征。发现是指涉及用户根据需求去查找软件产品的某项功能的难易程度,具体说就是用户找到某项功能需要花多长时间及用户在查找过程中会犯多少错误(如找错位置)。弄懂是指用户通过一个过程明白怎样使用某项已发现的功能,意思是说这个过程需要多长时间及用户学会这个功能会犯多少错误。效率则是指一个有经验的用户去使用某项功能需要多长时间。
(4)没有考虑应用的高效性和帮助指南
软件易用性还有一个,就是是否具有高效性和帮助指南。例如,是否有能加快速度的操作方法,例如快捷键,初级用户可以没有看到,但针对专业用户来说可以提高效率。因此,应该允许用户对常用的操作进行快捷设置,这样软件就能同时迎合无经验用户和经验丰富的用户的需要。最后,易用性还应该包括帮助指南,如帮助用户识别、诊断以及恢复错误。错误信息应该以简单的语言而非代码来表达,正确恰当地指出问题所在,并建设性地提供一个解决办法。
二.什么是软件的易用性测试?
(1)什么是易用性?
软件易用性是用户对软件的易使用性、质量、效率以及效果的感觉。在软件质量指标体系中,易用性(Usability):是交互的适应性、功能性和有效性的集中体现。易用性是用来衡量使用一个软件产品完成指定任务的难易程度。这跟功能性、喜欢这些相关的概念是不一样的。
在《软件工程产品质量》质量模型中,易用性包含易见性、易学习性和易用性。即软件产品被理解、学习、使用和吸引用户的能力。易见是指单单凭观察,用户就应知道程序的状态。易学是指不通过帮助文件或通过简单的帮助文件,用户就能对一个陌生的软件产品有清晰的认识。易用是指用户不翻阅手册就能使用该软件。效率性是指用户熟悉软件功能或界面后,完成任务的速度。出错率是指在使用软件过程中,用户出现了多少错误,这些错误有多严重,从错误中是否容易恢复等。
(2)什么是易用性测试?
易用性是软件工程中的一个专门的研究领域。由于软件易用性涉及到心理学、艺术、软件工程等多学科领域,所以易用性测试需要对多个领域的知识有较深入的研究。同时,由于易用性测试依赖于用户的主观判断,难以建立客观的易用性评估模型以及评价体系。目前还没有形成完整、统一的易用性测试的测试方法、评价标准和测试方案。
易用性测试的目的在于增加软件操作的简易性,让用户容易接受软件,方便用户的日常使用。因为易用性是非功能性需求,加上易用性不像功能那样有明确的界限。所以,易用性有很多的主观成份或无法直接测量,而必须透过间接测量或观察某些属性的方式。此外,易用性是针对不同人的,开发和测试人员无法准确知道该软件产品是否对别人同样易用。所以,很多时候易用性测试也没有一个标准。但一般来说,软件产品的易用性测试可分为四部分:就是安装易用性测试、功能易用性测试、界面易用性测试和辅助系统易用性测试。
(3)易用性测试的四大内容
①安装易用性测试
主要涉及这几个方面:一是对安装手册和安装平台的评估;二是对安装的自动化程度测试,比如安装尽量全部自动化,手工的要尽量采用选择框等措施;三是安装选项和设置的测试;四是安装过程的中断测试,如断电、文件冲突等;五是对多环境安装测试,如标准、最低、笔记本等环境中测试;六是对安装的正确性测试,如考察对其它应用程序是否有影响。最后,还有修复安装测试与卸载测试,如检查修复安装后是否有不良影响,是否能完全卸载,不能完全卸载时有无明确提示等。
②功能易用性测试
主要测试业务符合性、功能定制性、业务模块的集成度、数据共享能力、约束性、交互性和错误提示等。其中,业务符合性是指界面风格、表格设计、业务流程、数据加密机制等是否符合相关的法律法规、业界规划以及使用人员的习惯;数据共享能力是指数据库表的关联和数据重用;错误提示测试是指关键操作或数据删除等操作前是否有明确的提示,或报错时是否有给出足够的出错原因等。
③界面易用性测试
界面是软件与用户交互的最直接的层面,界面的好坏决定用户对软件的第一印象。用户界面测试可分为整体界面测试和界面中的元素测试。界面整体测试是指对界面的规范性、一致性、合理性等进行测试和评估;界面中的元素测试主要包括窗口、菜单、图标、文字、鼠标等。一般来说,设计合理的界面能给用户带来轻松愉悦的感受和成功的感觉,相反失败的界面设计会让用户有挫败感,再实用强大的功能都可能在用户的畏惧与放弃中付诸东流。
④辅助系统易用性测试
辅助系统是指帮助、向导和信息提示等辅助功能。主要分两种情况:一是法律要求的,如针对残疾人可以使用的软件,在用户界面上应要按法律规定为有残疾障碍的人员进行易用性测试;二是软件中的辅助特性的易用性测试。
三.如何高效的进行软件易用性测试?
软件的易用性究竟好不好,用户是否满意,不是单方面感觉出来的,需要有一套合理的测试方式和方法。简单地说,软件易用性测试工作大致分为以下步骤:
(1)制定测试计划
制定易用性测试计划,并准备易用性测试用例和易用性测试规程,包括制定测试计划分为几个测试阶段、每个阶段的目的和任务等。
(2)搭建测试环境,选择合适的测试人员
先是要根据软件需求搭建相应的测试环境,然后要对测试者进行选择。对于测试人员的选择,最好选择一些有代表性的用户,如最终用户或者内部没有参与开发的工作人员。经验表明,易用性测试通常不能由参与开发的人员来测试,这样会造成“易用的假象”,而是应该给多个不同的用户类分别进行测试。
(3)测试执行和过程控制
依据和对照基线化软件、基线化需求及软件需求测试文档,进行软件易用性测试。例如,测试是否具有直观的操作界面,测试是否按用户的一般认识逻辑性与行业习惯进行软件设计,测试是否提供在线帮助,在线帮助是否有充分的实例,测试操作方式是否采用菜单驱动与热键响应相结合,测试是否存在复杂的菜单选项和繁琐的操作过程,还有旧版测试比较和竞争对手的软件比较测试等。注意在测试过程中,不要试着去指导或帮助测试人员,否则就会干扰测试结果。此外,要让测试出来的问题具有普遍意义而非个人倾向,需要至少5个用户参与易用性测试,其结果才具有说服力。
(4)测试结果分析和测试报告
记录在易用性测试期间发现的所有问题,附上截图或者关键录像片段,目的是了解问题的具体情况和背后的原因。最后,要提交易用性测试分析报告,说明测试的软件能力、缺陷、限制和不足,以及可能给软件运行带来的影响,也可提出为弥补上述缺陷的建议。最后,说明测试结论是否通过。