UI(User Interface)是用户界面的英文简称。UI 设计则是指对软件的人机交互、操作逻辑、 界面美观的整体设计。好的 UI 设计不仅让软件变得有个性、有品味,还让软件的操作变得舒适、 简单、自由,充分体现软件的定位和特点。
软件测试工程师不需要设计 UI,只需要从用户的角度测试 UI 即可。 优秀的 UI 具备以下七个要素。 (1)符合标准和规范。 最重要的用户界面要素是软件符合行业的标准和规范。如果测试的对象是运行在一个特定的平 台上,那么软件需要遵守的标准和规范不仅仅是软件本身的标准和规范,还包括该平台的标准和规 范,并建立相对应的测试用例。 企业的标准与规范一般是由 UI 开发工程师、工业设计工程师以及一些易用性专家制定,这些 标准和规范必须经过大量测试和验证。 但在实际工作中并不是一成不变地按照标准与规范来设计,因为 UI 评审带有主观性,所以在 开发时,可能对标准和规范进行适当的修改或提高。
(2)直观性。 直观性是指用户一看即明白按钮的功能、作用,如 Word 中的保存按钮,大家一看便明白该按 钮具有保存文档的功能。衡量软件的直观程度应该考虑以下几个方面因素: 第一:用户界面要干净、不能唐突、排版需要有规则。界面上的按钮应该具有引导性,使客户 知道哪个按钮可以单击,哪些按钮只是显示内容。 第二:界面组织和布局是否合理。界面的导航、标题栏等都应该排版合理,可以在任何时刻快 捷地切换到任何界面,可以随时退出系统。
第三:是否有冗余的功能。页面信息不能太过复杂,功能需要简洁。 第四:如果一个功能多次试验都无法成功,通过帮助文件是否可以找到答案。 (3)一致性。 一致性是指被测试的系统在一些与其他软件类似或相同的功能上,其属性是否具有一致性。如 分别通过记事本和写字板来打开一个程序,都可以按 Ctrl+F 组合键查找文本中的内容,如图 15-1 所示。
类似这种功能从一个程序转向另一个程序时应该具备一致性,否则用户会感觉很不习惯,甚至 有糟糕的感觉。特别在 Windows 操作系统平台上开发的软件,功能特性应该遵守 Windows 平台的 标准。 衡量软件的一致性应该考虑以下几个方面因素: 第一:快捷键和菜单选项的一致性。如一般保存使用 Ctrl+S 组合键,按 F1 键可以弹出帮助 信息。 第二:术语的一致性。当一个术语有多种翻译方式时,需要保证每处的翻译一致,如查找的翻 译,不能在某个页面翻译为“Find”而在另外一个页面翻译为“Search”,应该一致翻译为“Find” 或“Search”。 第三:按钮位置和按钮等价的一致性。按钮位置是指页面上按钮位置排列情况,如一般情况下 在对话框中,“确定”按钮放在“取消”按钮的左边。按钮等价是指某个按钮的功能使用另外一种 方式也可以实现一样的功能,如在一个对话框中的“确定”按钮一般等价于 Enter 键,“取消”按 钮等价于 Esc 键。 第四:操作步骤的一致性。相同或类似功能的操作步骤需要一致,如打印功能,一般单击“打 印”按钮时会弹出如图 15-2 所示的对话框,确定后再进行打印。 (4)灵活性。 灵活性是指用户可以在界面上灵活地选择其需要的功能,而不致于需要多个步骤才能达到目 的。如百度的主页可以很灵活地选择搜索的类型,如图 15-3 所示。
衡量软件的灵活性应该考虑以下几个方面因素: 第一:状态实现。一般情况下,同一任务或功能有多种选择方式可以实现,但这样会导致状态 转换图变得更加复杂。 第二:状态跳过。当用户对系统的使用很熟悉时,在使用某个功能时会跳过其中众多的提示或 对话框,而直接到达目的地。如复制一段文本内容,如果不知道快捷键,就需要先选中待复制的文 本内容,再单击右键,在弹出菜单中选择“复制”命令,如果知道快捷键则可以直接使用 Ctrl+C 组合键进行复制,进而跳过单击右键的步骤。 第三:数据输入与输出。一般情况下系统允许多种输入方法,如需要在 Excel 表中插入文字, 可以通过键盘输入、粘贴等方式;输出的结果也可以支持多种格式,如系统支持 Word、HTML、 Excel 等格式的报告输出。 (5)舒适性。 一个优秀的软件应该让用户感觉到很舒适,而不是为用户的工作制造困难。但是对于软件的 舒适性并没有一个公式来衡量,所以很难通过设计的维度来定义,只能通过测试来鉴别软件的舒 适性。 衡量软件的舒适性应该考虑以下几个方面因素: 第一:风格恰当、合理。软件的外观应该与软件的性质和属性相一致,如酒店管理系统就不应该使用很多色彩与音效,但游戏网站则没有这方面的限制,否则会让最终用户感觉软件的风格与内 容不符,影响用户使用的舒适度。 第二:错误提示信息。当用户在执行一些严重错误的操作时(当然有时是无意地单击了一个操 作),应该给出相应的提示,并且允许用户恢复由于错误操作而导致丢失的数据,如删除数据操作, 系统应该提示“是否确定删除”。 第三:帮助信息。对一些按钮或对话框的功能,应该给予相应的帮助信息提醒,如Microsoft Word 中当光标停留在某个按钮(如图表按钮)时,会给出一个友好提示信息,如图 15-4 所示。
第四:进度提示。很多系统的错误信息一闪而过,这样导致用户无法看清,还有一种情况是操 作比较缓慢,但没有任何提示信息,这样让用户无法适从,还以为是系统出问题了,此时,至少应 该向用户反馈操作的时间响应,才能很好地做到人机交互。如复制文件的过程,系统会有一个进度 条来提示复制的当前进度以及剩余时间,如图 15-5 所示。
(6)正确性。 舒适性不好定义,但 UI 设置的正确性很好定义。UI 正确性是指 UI 是否正确实现了其功能。 如图 15-6 所示,该对话框中的 OK 按钮没有任何作用,当进行数据导入时,不需要使用 OK 按钮, 只有 Cancel 按钮有效,用于中止导入。
衡量软件的正确性应该考虑以下两个方面因素: 第一:是否有错误或遗漏功能。需要确定实现的软件与需求说明书中所定义的功能是否一致, 是否有遗漏或错误的功能。 第二:翻译与拼写。软件工程师在翻译时经常将计算机语言的关键字拼成一个句子,这样导致 翻译不准确,也很难做到一致。 (7)实用性。 实用性是指软件的特征、属性是否实用,即客户感觉该功能是否实用。如果一个功能的实用性 很差,就需要分析客户为什么不喜欢使用。