系统测试与验收测试 - 测试用例的差异

时间:2013-04-11 09:12:51

标签: c# java testing acceptance-testing system-testing

我对系统测试和验收测试之间的真正区别感到困惑。当我搜索这个主题时,答案各不相同,我没有看到测试用例如何大不相同。

我发现的事实:

系统测试在整个系统上进行,由供应商完成。系统测试是端到端测试,您可以根据需求规范(功能和非功能)测试系统中的完整流程(从登录到注销)。

验收测试由客户完成,以验证其是否满足客户需求。这也是完整的流程,并且基于需求规范。然而,构建的系统是根据需求规范设计的,并且外观/可用性通常已经在开发周期的早期阶段被接受。 如果系统涵盖了要求规范,则客户不应该说“这不是我们想要的,重做这个和那个”,除非合同允许这样做并且客户每小时付费。

所以,我的问题基本上是,这两个测试阶段的测试用例将如何不同?它们都是端到端测试,并专注于它是一个功能系统,它满足规范,其程度也是业务需求(因为它是他们订购的)。似乎系统测试中的测试用例可以在验收测试中重复使用,因为它们都能完成整个流程?

3 个答案:

答案 0 :(得分:8)

简短的回答是:

系统测试由开发人员和/或QA执行,以确保系统完成设计目标。这可以通过使用例如Selenium(用于Web应用程序)之类的东西自动完成。这样做的目的是保证质量,许多组织都不会为此烦恼。

验收测试由客户和/或经理执行,以确保系统执行他们认为应该执行的操作。通常认为修改软件的开发者合同义务已经结束。

不同之处在于,系统测试通常会测试客户并不真正关心的事情,例如“数据库连接是否以正确的顺序提交”。验收测试通常关注“主观用户体验如何”等内容。

答案 1 :(得分:4)

客户的验收测试不应该有正式的测试用例。所有这些都是关于客户使用系统,因为他们已经计划并看到他们对工作方式的理解与实际工作的匹配程度。 测试用例限制了验收测试,因为通常从它产生的东西就像“X很棒,但你也可以添加Y”和“我们说字段Z应该是一个整数但实际上我们可能需要在那里放置文本”。< / p>

答案 2 :(得分:2)

两种类型的测试都针对整个系统/应用程序执行。很可能很多测试都会重叠。

系统测试通常由独立的QA团队在类似生产的环境中执行。这可能是第一次一起测试所有组件。

验收测试通常在相同的环境或类似的(也类似于生产的)环境中运行,但团队的组成通常由系统的实际用户的子集组成。一种观点认为,用户将识别常规测试人员会忽略的场景,缺陷和观察行为。此外,这可以在用户部署到生产之前为用户提供一定程度的舒适度。

如果您使用的是V-Model,系统测试与系统级设计一致,验收测试符合业务要求。