作为测试人员,系统测试和验收测试有什么区别?验收测试会产生哪些额外的测试用例?

what is the difference between system and acceptance testing as a tester? what extra test cases will acceptance testing produce?

我在这里看了一些以前类似问题的答案,但我不满意。因此,系统测试和验收测试都会根据需求评估系统。

验收测试是针对 users/customers 的,他们决定是否接受该系统。但是验收测试对我们测试人员来说也是如此......在这里我有点困惑我将在验收阶段产生哪些我在系统阶段还没有产生的额外测试用例?

重要的是要知道所有测试阶段都有重叠。这是设计使然,既可以弥补之前测试短语中的任何空白,也可以从不同的角度测试同一事物。

系统测试根据需求列表检查整个系统。验收测试根据用户的需求检查整个系统,可能是通过实际使用它。而且众所周知,需求说的和用户想要的可能是两件不同的事情。重要的区别是谁在推动测试:开发人员还是用户。

Wikipedia has a good explanation about the difference between User Acceptance Testing and System Testing.

User acceptance testing (UAT) consists of a process of verifying that a solution works for the user. It is not system testing (ensuring software does not crash and meets documented requirements), but rather ensures that the solution will work for the user (i.e., tests that the user accepts the solution); software vendors often refer to this as "Beta testing".

This testing should be undertaken by a subject-matter expert (SME), preferably the owner or client of the solution under test, and provide a summary of the findings for confirmation to proceed after trial or review. In software development, UAT as one of the final stages of a project often occurs before a client or customer accepts the new system. Users of the system perform tests in line with what would occur in real-life scenarios.[9]

Beta 测试的类比很好:在使用软件的过程中,Beta 测试人员会运行 各种您没有想到的场景。这些通常不在要求中。它们可能已被遗忘、假设、过于详细、或根本没有想到或存在错误(尤其是并发错误)。

  • “当我们添加第 257 个用户时系统崩溃了。”
  • "我正在编辑一个文档,而其他人删除了它,并且 文件复活了。它仍然应该被删除。"
  • “如果我在保存文档时按退出键,我会得到文档的两份副本。”
  • “文本在深色模式下难以阅读。”

"Acceptance testing" is sometimes done by the development team on behalf of the users. The on-site customer 将从黑盒角度编写一组团队必须实施的验收测试。这些可以成为回归测试。

  • “在不到 1 秒的时间内按名称对 10,000 个文档进行排序。”
  • “所有列都必须可以升序和降序排序。”
  • “网站必须遵循 WCAG 2.1 的 X、Y 和 Z 部分”

开发团队进行的这种验收测试有时可以替代用户验收测试,或者可以在 UAT 之前完成,以确保软件在呈现给客户之前尽可能处于良好状态接受.