6. 测试
最佳实践
扩展模块
任何超过一定复杂程度的代码库都需要一个与之相关的测试系统,以确保在添加新代码时,代码库能够继续正常运行并保持性能,并继续满足用户的需求。本模块列出了您应该首先了解的基础知识。
6.1 一般测试基础
学习成果
- 了解测试的总体目的
- 确保应用程序的功能适用于目标受众,并达到选定的质量水平。
- 确保代码和功能符合选定的质量标准,并符合设定的符合性标准、基准或指南。
- 常见测试类型的目的
- 功能测试(与单元测试相关):检查 Web 应用程序的功能是否按预期工作,例如用户交互、表单、导航、链接和其他核心功能。
- 可用性测试:评估 Web 应用程序的易用性。这包括评估用户导航应用程序、完成任务和实现目标的难易程度。
- 兼容性测试(又称跨浏览器测试):确保 Web 应用程序在不同的浏览器、操作系统和设备上正常运行。
- 性能测试:在不同工作负载下测量 Web 应用程序的响应能力、速度、可扩展性和稳定性(另请参见 扩展 4:性能)。
- 安全测试:识别 Web 应用程序安全机制中的漏洞和弱点(另请参见 扩展 5 安全和隐私)。
- 无障碍访问测试:确保 Web 应用程序可以被残疾人使用,符合无障碍访问指南,如 Web 内容无障碍指南 (WCAG)(另请参见 无障碍访问)。
6.2 功能和兼容性测试
学习成果
- 了解这两者之间密切相关 - 您希望您的 Web 应用程序功能适用于目标用户范围,跨目标浏览器/设备范围。此外,此类测试在很大程度上可以使用现有的工具进行自动化。
- 一些无障碍访问测试可以自动化,例如“所有图像是否有 alt 文本?”
- 执行自动化测试的典型流程
- 确定目标受众群体,以及他们使用的浏览器。
- 确定应该测试的功能项。这些可以从视觉方面(“布局是否符合预期?”)到面向用户的函数(“搜索框是否返回结果?”)再到更低级的代码(“函数 `x()` 是否返回预期结果?”)。
- 一些测试还将测试集成模块是否与代码库的其他部分正常工作(集成测试)。
- 使用合适的工具集编写测试以测试此功能。
- 定期运行测试(例如在每次提交到代码库后)以查看是否有任何测试失败。
- 记录测试结果。
- 修复代码并重新运行测试以确保它们通过,并确保代码更新不会引入新错误(回归测试)。
- 了解用于运行自动化测试的典型工具集
- 结合使用物理设备和虚拟机(如 VirtualBox)以提供不同的浏览器和设备组合。
- 使用 Selenium/WebDriver 在已安装的浏览器上运行特定测试并返回结果,提醒您浏览器中的故障出现。可以使用诸如 webdriver.io 和 nightwatch.js 的软件包通过 Node.js 代码控制 WebDriver(也存在其他平台集成)。
- Playwright 是一种流行的替代方案。
- 使用像 Jest 或 Mocha 这样的库直接在代码库中编写功能测试。
- 使用云服务进行自动化的跨浏览器功能测试,如 LambdaTest、Sauce Labs、BrowserStack 或 TestingBot。大多数这些服务都提供了 API,允许您从 Node.js 等平台运行测试。
- 了解如何使用持续集成 (CI) 工具将测试与 GitHub 集成
资源
6.3 易用性测试
学习成果
- 了解可用性测试与功能测试的不同之处 - 功能测试在很大程度上可以自动化(它主要查看某些代码是否返回预期结果),而可用性测试往往需要对真实测试对象进行手动测试(例如“页面是否允许我找到最重要的功能,它是否直观易用?”)。
- 一些无障碍访问测试应作为可用性测试的一个子集手动进行 - 例如,您可能能够使用 Tab 键切换到表单元素以填写它们,但表单对辅助技术用户来说是否有意义?他们能说出它要求他们提供哪些信息吗?
- 可用性测试的典型流程
- 确定您想要测试的应用程序功能的方面(这些方面可以是您想要测试的假设或问题陈述),以及哪些目标受众群体最适合进行测试。
- 招募一些测试对象来与您一起进行测试。5-10 次成功的测试应足以开始识别重复出现的可用性问题。
- 为您的测试对象编写测试脚本,以便他们执行测试(例如,“导航到产品页面,搜索小部件,并将其添加到购物车”)。
- 与您的测试对象一起运行可用性测试并记录测试过程。
- 分析测试过程,并确定需要做出的关键改进。
- 进行改进。
- 衡量改进是否解决了问题(例如,通过查看关键指标的变化,或通过使用新的测试对象重新运行可用性测试)。
- 运行可用性测试的典型工具集
- 需要清晰的说明:向测试对象解释测试的目的。指示他们在执行任务时大声说出自己的想法。观察他们的互动并记录他们遇到的任何问题或困难。鼓励参与者提供诚实的反馈。
- 视频会议软件,如 Zoom,包括屏幕共享功能,以便您可以观察测试对象的所作所为,并能够录制测试过程以便您稍后查看。
- 眼动追踪软件很有用,可以让你在用户尝试遵循你的脚本时看到他们看网站上的什么地方。
资源
- 可用性测试 101,nngroup.com (2019)