启发式评估(heuristic evaluation)
作者:Jakob Nielsen 来源:aliued.cn 发布时间:2009-08-27 13:03:00
启发式评估法(Heuristic Evaluation)是一种用来发现用户界面设计中的可用性问题从而使这些问题作为再设计过程中的一部分被重视的可用性工程法。 启发式评估法包括让一小批评估人员评估界面以及判断这些界面是否符合已经确认的可用性规则(即Heuristics)。
一般而言,启发式评估法是很难让单个评估人员去做的,因为一个人永远不可能发现一个界面上所有的问题。幸运地是,许多不同的项目经验已经表明不同的人可以发现不同的可用性问题。因此,我们可以通过使用多个评估人员的方法来大大地提高启发式评估法的效率。图1中显示了一个关于启发式评估法的案例分析中的一个例子,在这个方案里,19个评估人员被用来发现一个让客户进入他们的银行账号的语音回复系统中的16个可用性问题(Nielsen 1992)。图中每个黑色方块表示一个评估人员发现了其中的一个问题。图中清楚地显示,在一大块区域里不同的评估人员发现的可用性问题是不相重叠的。非常明确,一些问题是非常容易发现的以至几乎所有的评估人员都发现了,但是也有一些问题只有很少的几个评估人员发现。
此外,我们不能只是鉴定谁是最好的评估人员然后完全依赖这个人的发现。
首先,同一个人他/她并不每次都是最好的评估人员。
第二,一些最难发现的可用性问题(图中最左边的部分)却被那些并没有发现很多问题的评估人员发现了。
因此,在任何启发式评估中使用多个评估人员是非常必要的(关于最理想的评估人员的数量请参看翻译的另一篇文章)。我的建议是在一般情况使用3到5个评估人员,既然我们不会通过使用大批量的评估人员来获得额外的信息。
图1显示了在对一个银行系统的启发式评估中哪个评估人员发现了哪个可用性问题。每一行代表一个评估人员,每一列代表一个可用性问题。每一个方块表示是否那一行代表的评估人员发现了那一列代表的问题:黑色表示评估人员发现了这个问题,白色表示没有发现。所有行按最成功的评估人员在最下面最不成功的评估人员在最上面的规则排列。所有列按最容易发现的可用性问题在最右边最难发现的问题在最左边的规则排列。
启发式评估法通过每个评估人员单独检查界面来执行。只有当所有的评估都结束之后,评估人员才被允许交流并将他们的发现整合在一起。为了确保每个评估人员独立的无偏见地进行评估,这个过程是非常重要的。评估的结果可以通过两种方式记录:让每个评估人员做书面报告或者让所有评估人员边仔细查看界面边口述他们的意见给一个指定的评估观察员。书面报告体现了正式的评估记录,但需要评估人员付出额外的精力以及评估管理者去读记录并总结。增加一个观察者增加了每个评估环节的管理费用,但却减少了评估人员的工作量。另外,由于观察者只需理解并整理一组自己写的而不是别人写的记录,所以评估结果也就会在评估的最后一个环节之后相当短的时间内完成。此外,观察者可以在评估人员操作界面的同时遇到类似界面不稳定等问题的时候协助评估人员,也可以在评估人员只有有限的专业知识并需要人对界面上某些特定方面做出解释的时候提供帮助。
在一个用户测试情形中,观察者(通常叫实验者,Experimenter)有责任解释用户的行为动作从而推断这些行为动作在界面设计中如何跟可用性问题如何联系起来。这样,即使在用户对用户界面设计一无所知的情况下也可以进行用户测试。相反,分析用户界面的责任就放在了一个启发式评估环节中的评估人员, 因此,一个观察者只需要记录评估人员对界面的评论意见,不必去解释评估人员的行为动作。
启发式评估和传统用户测试之间的另外两个区别就是观察者在评估过程中回答来自评估人员的问题的自动自发性和评估人员在使用用户界面的时候获得的提示和线索的程度。在传统用户测试中,人们一般想要发现用户在使用界面时所犯的错误;因此,实验人员(Experimenters)只愿意提供绝对必要的帮助。此外,用户需要通过使用系统来找到回答他们问题的答案,而不是让实验人员解答。在对一个特殊领域应用的启发式评估中,拒绝回答评估人员关于这一领域的问题是不合理的,尤其是在非此领域专家在充当评估人员的时候。相反,回答评估人员的问题可以使他们更好地评定用户界面在关于这一领域方面的可用性。同样地,当评估人员在使用界面时遇到问题的时候,他们可以获得提示如果去继续操作从而不致于浪费宝贵的评估 时间。然而,有一点必须重点指出,只有在评估人员很明显地遇到麻烦并已经对可用性问题提出问题的时候才能被给予帮助。


猜你喜欢
- 1、遍历 json 对象的属性//定义json对象 var person= { name: 'zhangsan', pass
- 在IE中提供了一个fireEvent方法,顾名思义就是触发某个事件发生的意思。刚开始我以为是会跟平时使用onclick()一样,没想到最近在
- Python中的中文是个很头痛的问题,Python2和Python3都会出现,而且py2中出现的概率要大些。 有一道面试题: Py
- 面向对象编程的2个非常重要的概念:类和对象对象是面向对象编程的核心,在使用对象的过程中,为了将具有共同特征和行为的一组对象抽象定义,提出了另
- 主要步骤1.生成普通python数组(bytearray(),os.urandom())2.转换成numpy数组(numpy.array()
- 为了偷个懒,利用这个数据库,但是在附加的时候出错了。错误如下:一开始还以为数据库位置存在问题,所以重新放置了一个位置,仍然无效。最后,上网寻
- 本文研究的主要是python可视化包Bokeh的相关内容,具体如下。问题:需要把pandas的数据绘图并通过网页显示,matplotlib需
- 按位与或(&、|、^):按照二进制进行逻辑运算例如:数字换成二进制,各自位上的0/1进行逻辑运算,得到的结果转换为数字3 &
- CSRFCSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。CSRF指攻击者盗用了你的身份,以你的名义发送
- MLP分类效果一般好于线性分类器,即将特征输入MLP中再经过softmax来进行分类。具体实现为将原先线性分类模块:self.classif
- 2010新的架构工具可以让我们了解应用程序和功能设计,并帮助验证设计和执行不偏离。它除了支持一般系统分析设计流程(需求→实体)外,也支持另一
- 这篇文章主要给大家介绍了关于Django跨域请求问题解决的相关资料,文中介绍的实现方法包括:使用django-cors-headers全局控
- 问题描述:ImportError: No module named ‘XXXX'解决方式一: 将XXXX包放在python的site
- 本文实例讲述了javascript格式化json显示方法。分享给大家供大家参考。具体分析如下:将json对象或者json字符串格式化方便在网
- 新装MySQL后,首次执行 mysql -uroot -p 后会发现root密码不为空,要重置root密码请参考以下步骤。编辑mysql配置
- 使用axios遇到的相对路径和绝对路径问题部分依赖说明:"vue": "^2.5.2","
- 本文实例讲述了Python 私有化操作。分享给大家供大家参考,具体如下:私有化xx: 公有变量_x: 单前置下划线,私有化属性或方法,fro
- 最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下:1、scatter函数原型2、其
- window.location.pathname 比如: /windows/location/page.html 我想得到“windows”
- Xajax是PHP一个不用刷新或者跳到其他页面,就能通过点击组件等与后台后台数据库交互的技术Xajax是php的一个插件,要想使用Xajax