软件易用性测试研究1前言长期以来,IT行业一直有着重视技术创新而忽视人类因素的倾向,这导致多数产品存在程度不同的可用性问题。据研究机构近期对发达国家的统计:商用计算机用户的有效生产率仅有30%~40%;48%的软件缺陷属于可用性问题;在计算机应用系统开发项目中,31%的项目因可用性质量问题而失败,51%的项目只获得部分成功;90%的企业网站可用性较差;70%的企业对其网站设计不够满意;用户在商业网站上找到所要信息的几率只有42%;网上购物者最终放弃寻找欲购商品的几率为62%;51%的网站可用性问题是由于未运用最基本的可用性原则造成的。这些数据说明目前的IT产品存在严重的可用性问题。在我国,由于产业发展水平相对落后,产品的可用性问题更加严重。由于我们目前在这方面认识和实践的不足,关于易用性具体的测试内容与测试方法还掌握的很少。本文更多的是从收集的资料中整理出一个初步的易用性结构描述,有待进一步的研究和实践去丰富和提高。易用性,在很多资料和质量体系中也被称为可用性.本文中这2个名词含义是一致的。2软件易用性概述软件易用性是软件质量体系结构中一个重要的质量特性。在各个标准体系中都有关于这方面的定义描述。在一些组织的标准定义中,可用性也是一个被采用的名称。无论该特性名称和具体细节如何,所有关于易用性或者可用性的研究都是围绕着用户对于产品的感受这个中心展开的。易用性(可用性)体现的是用户在使用过程中所实际感受到的产品质量,即使用质量(qualityinuse)。国标中对于易用性及其子特性的描述如下:易用性usability与一组规定或潜在的用户为使用软件需作的努力和对这样的使用所作的评价有关的一组特性3.1易理解性understandability与用户为认识逻辑概念及其应用范围所花的努力有关的软件属性。3.2易学性learnability与用户为学习软件应用(例如运行控制、输入、输出)所花的努力有关的软件属性。3.3易操作性operability与用户为操作和运行控制所花努力有关的软件属性。ISO9126标准中的描述比原有国标更为明确和清晰:易用性在指定条件下软件产品被使用时,能够被理解、学习和吸引用户的能力。(功能性、可靠性、效率的一些方面也会影响易用性,但是在ISO9126中它们不被分类作为易用性)1)易理解性软件产品使用户明白软件是适当的以及怎么在特殊任务和使用条件下使用软件的能力。2)易学性软件产品使用户学习它的应用的能力。3)易操作性软件产品使用户操作和控制它的能力。(适合性、可变性、适应性和安装性可能会影响它)4)吸引性软件产品吸引用户的能力。(颜色、图片等)5)依从性软件产品遵循与易用性相关的标准、协定、风格指南或规章的能力在ISO9241中采用的是可用性这个名词。它包含了比单纯的软件易用性更为广泛的含义,体现的是用户在使用过程中所实际感受到的产品质量,即使用质量(qualityinuse)。是从用户角度衡量IT产品是否有效、易学、高效、好记、少错和令人满意的质量指标,是决定产品市场竞争力的关键因素。可用性产品在特定使用环境下为特定用户用于特定用途时所具有的有效性(effectiveness)、效率(efficiency)和用户主观满意度(satisfaction)。其中:有效性是用户完成特定任务时所具有的正确和完整程度;效率是用户完成任务的正确完整程度与所用资源(如时间)之间的比率;满意度是用户在使用产品过程中具有的主观满意和接受程度。3软件易用性相关因素软件的易用性是由软件的人机用户交互界面(UserInterface)来集中体现的。界面的布局设计,操作的逻辑与流程,交互信息的显示,帮助和索引文档…用户对于这些元素能否容易的学习,理解,操作的程度就是软件产品的易用性.UI所包含的元素是多种多样的.软件包含的全部窗口,菜单,按钮,下拉框,背景,图标,文本,提示,图象,声音,视频等等媒体和信息本身以及这些元素组织和表现的方式都是UI.评价UI的标准有以下七个要素:符合标准和规范、直观性、一致性、灵活性、舒适性、正确性、实用性3.1符合标准和规范符合标准和规范被认为是最重要的用户界面要素。对于操作系统平台,有其自己的标准和规范,如微软的WINDOWS,那么对于某个平台上运行的软件,就需要把该平台的标准和规范作为UI设计说明的补充内容。对于测试工作来讲,也就要根据这些标准和规范设计测试用例。如果软件本身要创立软件易用性标准,那么需要遵守其他6个元素。3.2直观性当测试用户界面时,测试人员要考虑以下问题,以及如何衡量自己软件的直观程度:用户界面是否洁净、不唐突、不拥挤?UI不应该为用户制造障碍。所需功能或者期待的响应应该明显,并在与其出现的地方。UI的组织和布局合理吗?是否允许用户轻松地从一个功能转到另一个功能?下一步做什么明显吗?任何时刻都可以决定放弃或者退回、退出吗?输入得到承认了吗?菜单或者窗口是否深藏不露?有多余的功能吗?软件整体抑或局部是否做得太多?是否有太多特性把工作复杂化了?是否感到信息太庞杂?如果其他所有努力失败,帮助系统真能帮忙吗?3.3一致性测试的软件本身以及与其他软件的一致性是一个关键属性。用户的使用习惯性强了,希望一个程序的操作方式能够带到另一个程序中。如果操作方式不同,会或多或少地给用户带来挫败感。如果软件或操作系统平台有一个公共的标准,那么UI就要遵守它。如果没有,那就要注意软件的特性,确保形似操作以形似方式进行。在UI测试过程中,要考虑以下几个基本术语:快捷键和菜单选项。快捷键一般要具有通用性,如F1为系统帮助。术语和命令。整个软件使用同样的术语吗?特性命名一致吗?例如:数据字典是否有时被叫做数据词典。用户级别。软件同一UI风格是否对应同一用户级别?是否有UI风格与用户级别不相称的情况出现?按钮的位置和等价的按键。如“确定”和“取消”按钮的相对位置;确定等价键通常使用回车键,而取消等价键通常使用ESC键。3.4灵活性由于用户对于软件应用喜欢选择做做什么和怎样做,所以软件需要有较大的灵活性,同时也可能会发展为复杂性,加大测试工作的复杂性。测试软件UI是否灵活,可以参考以下几点:状态跳转。灵活的软件实现同一任务有多种选择和方式。结果是增加了通向软件各种状态的途径。状态转换图将变得更加复杂,福建测试人员需要花费更多时间决定测试那些相互连接的路径。状态终止和跳过。当软件具有用户非常熟悉的模式时,用户需要直接跳到想去的页面;或者因为种种原因,用户需要提前终止当前的运行情况。数据输入和输出。用户愈来愈希望有多种方式实现数据的输入和输出,所以要针对用户所可能需要的输入和输出方式进行测试。3.5舒适性毫无疑问,软件应该用起来舒适,而不应该为用户工作制造障碍和困难。但是,软件舒适是一种感觉,比较模糊,所以要设计出软件舒适的正确公式是不可能的,但测试人员在测试时要根据实际情况对软件是否具有舒适性进行鉴别:恰当。软件外观和感觉应该与所做的工作和用户背景相符,不同的行业或用户对软件的外观要求是不同的,在设计时,既不能太夸张也不能太朴素。错误处理。程序应该在用户执行非法和不合理的操作之前提出警告,并且允许用户恢复由于错误操作导致丢失的数据。对于用户恶意的严重错误操作,程序要能够以一定规则进行判别,并采取适当的处理方式。性能。一般情况下,系统性能当然是愈高愈好,但是某些情况下,用户需要操作慢一些,以便能够发现软件的一些操作情况。3.6正确性UI正确性比起舒适性要明显得多,当然也就容易测试。正确性主要是指UI是否正确,不会使程序实际执行情况与用户理解产生偏差。但是有些问题测试人员要加以注意:市场定位偏差。软件有没有多余的或者遗漏的功能,或者某些功能执行了与市场宣传材料不符合的操作?语言描述和组织。程序员的语言描述和组织往往会使用户产生歧义或费解,或者令用户难以接受。多媒体缺陷。UI设计的图标、图像、声音和视频设计不合理或不正确。如:图标大小不一致,声音没有采用相同的格式和采样率。与UI说明不一致,即没有实现所见即所得。在测试过程中,一定要仔细检查执行程序的结果与UI描述的是否一致。3.7实用性UI实用性主要是指具体UI特性是否实用。在测试过程中,检查每一功能点的UI是否具有实际实用价值,是否能够有助于用户执行软件相应的功能,否则就被认为实用性不好,为实用性的缺陷。4软件易用性研究方法与技术对同一软件的易用性的评价是因人而异的,不同的用户由于他的经历,能力,思维方式和习惯的差异,对于同一软件会得出不同的感受.所以易用性研究的各种方法其核心都是以用户为中心.只有了解软件所面向的用户,然后从用户的角度分析和设计,才能得出真正具有优秀的易用性的软件产品.同样,在软件易用性的测试与评估活动中,核心的理念也是以用户为中心,从用户的角度出发。以下各种方法和理论,是在软件易用性活动中比较重要和经常采用的。4.1可用性工程可用性工程(UsabilityEngineering)是IT产品及其用户界面开发的一种工程方法论,贯穿于产品整个生命周期的各个阶段,包括从需求获取、可用性问题分析、设计方案的开发以及测试评估在内的一整套实用方法,泛指以提高产品可用性质量为目的的一系列过程、方法、技术和标准,其核心是以用户为中心的设计方法论(user-centereddesign,UCD)。它强调从用户的角度来进行产品的设计开发,这使它有别于传统和常规的开发方法。具体说来,在产品开发过程中运用可用性工程方法可以实现以下目标:准确而详细地理解用户特征、用户任务和使用环境;明确定义产品可用性质量的用户需求;基于同类产品或产品的原有版本,建立产品可用性质量基准;在产品生命周期的各个阶段,随时、快速、准确地获得用户反馈,发现可用性问题,及时改进产品设计;检验和确认产品是否满足可用性质量的用户需求;减少后期维护,避免无效开发,从而降低开发成本,缩短生产周期;评估和认证产品是否符合有关可用性的国际标准;定性或定量地评估产品的可用性质量,按照国际标准向采购方提供产品可用性质量测试报告;对同类产品的可用性进行比较分析,了解自己产品的竞争力,以针对性地改进产品和制定相应的产品发展策略;评估和改进产品开发过程的可用性能力成熟度(UMM)并获得国际标准认证。可用性工程活动的范围广泛、形式多样,典型活动包括可用性规划、现场研究(观察、采访)、专家评审、原型开发及用户界面设计、可用性测试和评价(反馈收集型测试、绩效评估型测试、竞争力测试)、企业可用性指南、标准及开发过程规范的制定等。大致分为规划、标准运用、早期原型、专家评估、用户评估和用户主观评估六大类。4.2用户中心论以用户为中心的设计方法是软件开发的一种思想和方法论,它注重所开发软件产品的可用性。按照ISO9241-11的定义,以用户为中心的关键点是强调产品的最终使用者与产品之间的“交互质量”,它包括三方面特性:有效性、效率和满意度,其宗旨就是在软件开发过程中要紧紧围绕用户,在系统设计和测试过程中,要有用户的参与,以及时获得用户的反馈信息。实现这一目标通常要利用原型与用户进行交互,根据用户的反馈意见不断改进设计。遵循这种思想来开发软件,可以使软件产品具有易于理解、便于使用的优点,从而减少培训费用,减轻对用户的压力,提高用户的满意度。4.3用户人群分析不同的软件面向不同的用户人群,即使是同一软件,也可能会被不同类型的用户所实用。所以,在测试之前,要对软件的使用用户做分析,如:用户年龄、教育背景、操作习惯等。产品的可用性不仅取决于产品本身,还受使用环境的影响。使用环境包括以下几方面:用户特征包括知识背景、技能、经验、学历、年龄、体力等,有时还可按经验、职务或能力来分组;使用产品的目标产品的主要用途以及工作时间长短、强度等;社会物理环境如计算环境、温湿度环境、法律环境、社会文化习惯环境等。在详细分析使用环境的基础上,设计出测试环境并在测试计划中明确定义,并使测试环境具有使用环境的典型特征,包括:测试对象特征知识背景、技能、学历、年龄和体力等;测试任务应符