Web 应用程序测试用例示例(清单)

⚡ 智能摘要

完整的Web应用程序测试清单涵盖可用性、功能性、兼容性、数据库、API、安全性、性能和可访问性检查。以下每个部分都提供了可直接使用的测试场景,质量保证团队可以直接将其复制到测试管理工具中。

  • ⚙️ 功能优先: 在开始任何外观审核之前,请验证必填字段、边界长度、闰年、除以零以及超时行为。
  • 🧭 可用性信号: 检查对齐方式、工具提示、键盘访问、滚动条和错误消息恢复,确保首次使用的用户不会遇到任何问题。
  • 🌐 兼容性矩阵: 在Chrome浏览器上重复关键流程, FirefoxEdge、Safari 和移动浏览器,以暴露布局和脚本差异。
  • 🗄️ 数据库完整性: 将前端值与存储的记录进行匹配,验证两层中的键、触发器、存储过程和字段长度。
  • ???? API层: 将状态码、架构、身份验证、速率限制和下游故障处理与浏览器分开断言。
  • 🔐 安全基线: 强制使用 HTTPS,加密存储的密钥,在多次失败后锁定帐户,并探测 SQL 注入和暴力破解。
  • 🚀 性能和访问: 使用自动化方式加载脚本配置文件,而不是手动操作,然后确认 WCAG 对比度、标签和键盘操作。

在测试 Web 应用程序时,应考虑下面提到的模板。下面提到的清单几乎适用于所有类型的 Web 应用程序,具体取决于业务需求。

上面的模板展示了如何在一张表格中涵盖所有检查清单领域的场景。更多背景信息,请参阅…… Web应用程序测试 概述。

现在让我们详细看看每个清单:

功能测试

什么是功能测试?

  • 测试产品的特性和操作行为以确保它们符合其规格。
  • 测试忽略系统或组件的内部机制,而仅关注响应所选输入和执行条件而产生的输出。

功能测试的目的或目标是什么?

  • 的目标 功能测试 是为了验证您的产品是否符合开发文档中提到的预期功能规格。

功能测试场景示例:

  • 测试所有必填字段都应被验证。
  • 测试所有必填字段是否应显示星号。
  • 测试系统不应显示可选字段的错误消息。
  • 测试闰年是否正确验证且不会导致错误/误算。
  • 测试数字字段不应接受字母,并且应显示正确的错误消息。
  • 如果数字字段允许,则测试负数。
  • 计算时应正确处理测试除以零。
  • 测试每个字段的最大长度以确保数据不会被截断。
  • 测试当数据达到字段的最大大小时是否显示弹出消息(“此字段限制为 500 个字符”)。
  • 测试更新和删除操作是否应显示确认消息。
  • 测试金额值应以货币格式显示。
  • 测试所有输入字段是否存在特殊字符。
  • 测试超时功能。
  • 测试排序功能。
  • 测试可用按钮的功能
  • 测试隐私政策和常见问题解答是否明确定义并应提供给用户。
  • 测试如果任何功能失败,用户将被重定向到自定义错误页面。
  • 测试所有上传的文档是否能正常打开。
  • 测试用户是否能够下载上传的文件。
  • 测试系统的电子邮件功能。
  • 测试 Java 脚本在不同的浏览器(IE, Firefox、Chrome、Safari 和 Opera).
  • 测试一下如果用户在网站中删除 cookie 会发生什么情况。
  • 测试一下如果用户访问网站后删除 cookie 会发生什么情况。
  • 测试组合框/列表框内的所有数据是否按时间顺序排列。

一旦各项功能运行正常,下一个问题就是真实用户能否在没有帮助的情况下操作它们。

可用性测试

什么是可用性测试?

  • 可用性测试不过是用户友好性检查。
  • 可用性测试旨在测试应用程序流程,以便新用户能够轻松理解该应用程序。
  • 基本上,可用性测试会检查系统导航。

可用性测试的目的或目标是什么?

可用性测试使用标准可用性测试实践来确定产品的易用性和有效性。

可用性测试用例示例

  • 网页内容应正确,不得有任何拼写或语法错误
  • 所有字体应符合要求。
  • 所有文本都应正确对齐。
  • 所有错误消息都应该正确,没有任何拼写或语法错误,并且错误消息应该与字段标签相匹配。
  • 每个字段都应有工具提示文本。
  • 所有字段都应正确对齐。
  • 字段标签、列、行和错误消息之间应留出足够的空间。
  • 所有按钮都应具有标准格式和尺寸。
  • 每个页面都应有主页链接。
  • 禁用的字段应显示为灰色。
  • 检查损坏的链接和图像。
  • 任何类型的更新和删除操作都应显示确认消息。
  • 以不同的分辨率检查网站(640 x 480、600×800 等?)
  • 检查最终用户是否可以轻松运行系统。
  • 检查标签是否能正常工作。
  • 滚动条仅在需要时出现。
  • 如果提交时出现错误消息,则应该显示用户填写的信息。
  • 标题应显示在每个网页上
  • 所有字段(文本框、下拉菜单、单选按钮等)和按钮都应该可以通过键盘快捷键访问,并且用户应该能够使用键盘执行所有操作。
  • 检查下拉数据是否因字段大小而被截断。另外,检查数据是否是硬编码的或通过管理员管理的。

在一个浏览器中显示良好的布局在另一个浏览器中可能会出现问题,因此需要在每个受支持的环境中重新显示相同的屏幕。

兼容性测试

什么是兼容性测试?

  • 兼容性测试用于确定您的软件是否与系统中应运行的其他元素兼容,例如浏览器、 Opera系统或硬件。

兼容性测试的目的或目标是什么?

  • 兼容性测试的目的是评估软件在特定浏览器中的运行情况, Opera系统、硬件或软件。

兼容性测试场景示例:

  • 在不同的浏览器(IE、 Firefox、Chrome、Safari 和 Opera) 并确保网站正常显示。
  • 测试正在使用的 HTML 版本是否与适当的浏览器版本兼容。
  • 测试图像在不同的浏览器中是否正确显示。
  • 测试字体在不同的浏览器中是否可用。
  • 测试 java 脚本代码是否可在不同的浏览器中使用。
  • 在不同的浏览器上测试动画 GIF。

一致的渲染效果并不能证明屏幕背后的记录是什么。 跨浏览器测试 矩阵结构使该区域易于管理。

数据库测试

什么是数据库测试?

  • In 数据库测试 测试通过 Web 或桌面应用程序插入的后端记录。Web 应用程序中显示的数据应与数据库中存储的数据相匹配。

要执行数据库测试,测试人员应该注意以下几点:

  • 测试人员应该透彻理解功能需求、业务逻辑、应用程序流程和数据库设计。
  • 测试人员应该弄清楚应用程序所使用的表、触发器、存储过程、视图和游标。
  • 测试人员应该了解创建的触发器、存储过程、视图和游标的逻辑。
  • 测试人员应该找出通过 Web 或桌面应用程序执行插入更新和删除(DML)操作时受到影响的表。

借助上述要点,测试人员可以轻松地编写数据库测试的测试场景。

数据库测试的示例测试用例:

  • 请核对数据库名称:数据库名称应与规范相符。
  • 验证表、列、列类型和默认值:所有内容都应符合规范。
  • 验证该列是否允许为空。
  • 验证每个表的主键和外键。
  • 验证存储过程:
  • 测试存储过程是否已安装。
  • 验证存储过程名称
  • 验证参数名称、参数类型和参数数量。
  • 测试参数是否是必需的。
  • 通过删除一些参数来测试存储过程
  • 测试当输出为零时,零记录应该受到影响。
  • 通过编写简单的测试存储过程 SQL 查询。
  • 测试存储过程是否返回值
  • 使用示例输入数据测试存储过程。
  • 验证表中每个标志的行为。
  • 验证每次页面提交后数据是否正确保存到数据库中。
  • 如果执行了 DML(更新、删除和插入)操作,请验证数据。
  • 检查每一个字段的长度:后端和前端的字段长度必须相同。
  • 验证 QA、UAT 和 production 的数据库名称。名称应该是唯一的。
  • 验证数据库中的加密数据。
  • 验证数据库大小。还要测试执行的每个查询的响应时间。
  • 验证前端显示的数据,确保与后端相同。
  • 通过在数据库中插入无效数据来验证数据的有效性。
  • 验证触发器。

API 测试清单

现在大多数业务规则都位于 REST 或 GraphQL 端点之后,因此仅凭浏览器检查无法证明系统正常工作。直接测试端点可以暴露问题。tract 和授权缺陷远早于用户界面出现。

在最终签核终端节点之前,请涵盖以下场景:

API 测试示例场景:

  • 验证记录的状态代码,包括成功、验证失败、未经授权的访问和服务器错误。
  • 验证响应有效负载是否与已发布的架构相符,包括字段名称和数据类型。
  • 验证缺失或格式错误的参数是否返回可读消息,而不是堆栈信息。 trace.
  • 验证身份验证令牌是否会过期、正确刷新,以及注销后是否无法重放。
  • 验证基于角色的授权,以防止普通帐户通过更改标识符访问管理员端点。
  • 验证每个参数的边界值,包括空字符串和最大长度。
  • 验证速率限制是否返回正确的限流响应,而不是静默失败。
  • 验证当第三方服务超时时,端点是否能优雅降级。
  • 检查响应或错误消息中是否出现密码、令牌或内部路径。

在每个环境中运行此列表,因为测试环境和生产环境通常会使用不同的权限集。请参阅 API测试 概述和 手动测试 REST API.

其中几项检查与安保工作重叠。

安全测试

安全测试 涉及从安全角度识别任何缺陷和漏洞的测试。

安全测试的示例测试场景:

  • 验证包含重要数据(如密码、信用卡号、安全问题的秘密答案等)的网页应通过 HTTPS(SSL)提交。
  • 验证密码、信用卡号等重要信息是否应以加密格式显示。
  • 验证密码规则在所有认证页面上实施,例如注册、忘记密码、更改密码。
  • 验证密码是否已更改,用户将无法使用旧密码登录。
  • 验证错误消息不应显示任何重要信息。
  • 验证如果用户已从系统中注销或用户会话已过期,则用户将无法浏览该网站。
  • 验证无需登录即可直接访问安全和不安全的网页。
  • 验证“查看源代码”选项是否被禁用并且对用户不可见。
  • 如果用户多次输入错误密码,则验证用户帐户是否被锁定。
  • 验证 cookies 不应存储密码。
  • 验证如果任何功能无法正常工作,系统不应显示任何应用程序、服务器或数据库信息。相反,它应该显示自定义错误页面。
  • 验证 SQL 注入攻击。
  • 验证用户角色及其权限。例如,请求者不应能够访问管理页面。
  • 确认重要操作已记录在日志文件中,并且这些信息应该…… trac能够。
  • 验证地址栏中的会话值是否采用加密格式。
  • 验证 cookie 信息是否以加密格式存储。
  • 验证应用程序是否受到暴力攻击

经过加固的应用在负载下会发生弯曲变形,因此仍然无法使用,所以下一步要测量规模。

性能测试

性能测试 旨在评估系统或组件是否符合指定的性能要求。

常规测试场景:

  • 确定应用程序在不同负载条件下的性能、稳定性和可扩展性。
  • 确定当前架构是否能够支持峰值用户级别的应用程序。
  • 确定哪种配置大小可提供最佳性能水平。
  • 识别应用程序和基础设施瓶颈。
  • 确定新版本的软件是否对响应时间产生不利影响。
  • 评估产品和/或硬件以确定其是否可以处理预计的负载量。

如何进行性能测试?通过手动测试还是自动化

实际上,手动进行性能测试是不可能的,因为存在以下一些缺点:

  • 将需要更多的资源。
  • 无法同时执行操作。
  • 无法进行适当的系统监控。
  • 执行重复任务并不容易。

因此,为了克服上述问题,我们应该使用性能测试工具。以下是一些流行的测试工具的列表。

还有一个用户群体尚未被纳入考虑:那就是通过辅助技术访问这些屏幕的用户。

无障碍测试清单

无障碍测试确认,使用屏幕阅读器、仅键盘导航或放大镜的用户能够完成与其他用户相同的操作流程。这也是一项采购要求,因为企业需要确保用户能够无障碍地使用产品。tracts 通常指 WCAG 2.2 AA 级这些缺陷属于结构性缺陷,及早修复成本要低得多。

无障碍测试示例场景:

  • 确保有意义的图像带有描述性的替代文本,装饰性图像对辅助技术隐藏。
  • 确保每个表单控件都有以编程方式关联的标签,而不仅仅是相邻的占位符文本。
  • 确认页面仅使用键盘即可正常工作,并且每次按键时都有可见的焦点指示器。
  • 检查文本和交互元素与其背景是否满足最低对比度要求。
  • 确认标题顺序符合逻辑,没有跳级,以便屏幕阅读器导航正常工作。
  • 验证错误信息是否已传达给辅助技术,并确定出错的字段。
  • 验证页面在 200% 缩放比例下是否仍然可用,无需水平滚动。
  • 验证自定义小部件(例如模态框、选项卡和手风琴)是否公开正确的角色和状态。

自动扫描器只能发现部分问题,因此还需要手动键盘输入和屏幕阅读器检查。 可访问性测试 参考资料涵盖了工具方面的内容。

常见问题

测试计划是一份正式文档,涵盖发布范围、进度安排、资源、风险和退出标准。检查清单则是一份轻量级的覆盖率提醒,列出需要验证的条件。计划指导整个项目;检查清单指导每次测试。

Rev每次重大版本发布、新集成或生产事故发生后都应检查此清单。每发现一个缺陷,就应添加一行记录,以防止同样的故障再次发生。一份从未修订的清单很快就会无法反映应用程序的实际运行情况。

大多数团队都将安全覆盖范围建立在以下基础之上: OWASP 网络安全测试指南符合 WCAG 2.2 标准的可访问性,以及符合 ISTQB 标准的总体流程术语。这些参考标准确保了检查清单的可审计性,而不是仅仅基于团队习惯。

是的。将需求、用户故事或 API 规范输入大型语言模型,可以生成一个可靠的场景初稿。测试人员仍然需要剔除重复项,添加模型无法推断的业务规则,并确认每个条目都真正可验证。

自愈定位器可在标记更改后重新识别元素,从而减少维护工作中常见的故障。人工智能还能对重复缺陷进行聚类,并对需要优先运行的测试套件进行排序,因此即使检查清单不断增长,回归测试周期也能保持较短。

总结一下这篇文章: