用户界面与用户体验测试

在这一部分,我们将探讨如何评估用户界面对用户的影响。这是另一个自动化带来好处但无法在没有人类参与的情况下完成工作的领域。

测试用户界面

用户界面是我们软件系统中唯一对最重要的人——我们的用户——有影响的部分。它们实际上是用户进入我们世界的窗口。无论我们有一个命令行界面、一个移动 Web 应用程序还是一个桌面 GUI,我们的用户界面都会帮助或阻碍他们完成任务。

用户界面的成功取决于两件事是否做得好:

  • 它提供了用户所需(和想要)的所有功能

  • 它允许用户以有效和高效的方式完成他们的最终目标

其中,提供功能是两者中更具程序性的部分。就像我们使用 TDD 来驱动服务器端代码的良好设计一样,我们也可以在前端代码中使用它。如果我们的 Java 应用程序生成HTML ——称为服务器端渲染——使用 TDD 是轻而易举的。我们测试 HTML 生成适配器,就完成了。如果我们使用的是在浏览器中运行的 JavaScript/Typescript 框架,我们可以使用 Jest( https://jestjs.io/ )等测试框架进行 TDD

在测试我们向用户提供正确功能后,自动化就变得不那么有用了。通过 TDD,我们可以验证用户界面中是否存在所有正确的图形元素。但我们无法判断它们是否满足用户的需求。

考虑一下这个虚构的用户界面,用于购买与我们的 Wordz 应用程序相关的商品:

image 2025 01 12 18 23 14 521
Figure 1. Figure 11.2 – Example user interface

我们可以使用 TDD 来测试所有界面元素——框和按钮——是否存在并且正常工作。但我们的用户会在乎吗?以下是我们需要问的问题:

  • 它看起来和感觉好吗?

  • 它是否符合企业品牌和风格指南?

  • 对于购买 T恤 的任务,它是否易于使用?

  • 它是否向用户呈现了一个逻辑流程,引导他们完成任务?

在这个例子中,答案是否定的。坦率地说,这是一个糟糕的用户界面布局。它没有风格、没有感觉、没有品牌标识。你必须在文本字段中输入产品名称。没有产品图片、没有描述、没有价格!这个用户界面确实是电子商务产品销售页面中最糟糕的。然而,它会通过我们所有的自动化功能测试。

设计有效的用户界面是一项非常人性化的技能。它涉及一点心理学,了解人类在面对任务时的行为,结合艺术眼光,并得到创造力的支持。用户界面的这些品质最好由人类评估,这为我们的开发过程增加了另一个手动步骤。

评估用户体验

与用户界面设计密切相关的是用户体验设计。

用户体验超越了用户界面上的任何单个元素或视图。它是用户从端到端的整个体验。当我们想从电子商务商店订购最新的 Wordz T恤时,我们希望整个过程都很简单。我们希望每个屏幕上的工作流程都是清晰、整洁的,并且更容易做对而不是做错。更进一步,服务设计是关于优化从想要一件 T恤 到穿上它的体验。

确保用户有良好的体验是用户体验设计师的工作。这是一项结合了同理心、心理学和实验的人类活动。自动化在这里的帮助有限。其中一些机械部分可以自动化。明显的候选工具包括 Invision( https://www.invisionapp.com/ ),它允许我们生成可以交互的屏幕模型,以及 Google Forms,它允许我们通过网络收集反馈,无需编写代码来设置。

在创建候选用户体验后,我们可以设计实验,让潜在用户完成一项任务,然后要求他们提供关于他们体验的反馈。

一个简单的手动表单足以捕获这种反馈:

Table 1. Table 11.3 – User experience feedback form
经验 评分 1(差)– 5(好) 评论

我的任务很容易完成

4

我在研究员的提示下完成了任务。

我在没有指导的情况下完成任务时感到自信

2

关于T恤尺码的文本输入框让我困惑。是否可以改为一个下拉菜单,提供可选的选项?

界面引导我完成任务

3

最终还可以,但那个文本框让我不爽,所以我给这个任务打了较低的分数。

用户体验设计主要是一项人类活动。测试结果的评估也是如此。这些工具只能帮助我们创建我们设想的模型并收集实验结果。我们必须与真实用户进行会话,征求他们对体验的意见,然后将结果反馈到改进的设计中。

虽然用户体验很重要,但下一部分将讨论我们代码的一个关键任务:安全性和运维。