2013-04-11 282 views
6

我对系统测试与验收测试之间的真正区别有些困惑。当我搜索这个主题时,答案会有所不同,我无法看到测试案例可能会有很大的不同。系统测试与验收测试 - 测试用例差异

事实我发现:

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

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

所以,我的问题是基本上,这两个测试阶段的测试用例会有什么不同?它们都是端到端测试,并着重于它是一个功能性系统,它符合规范,这在很大程度上也是业务需求(因为它是他们订购的)。似乎来自系统测试的测试用例可以在验收测试中重用,因为它们都包含完整的流程?

回答

3

客户的验收测试不应该有真正的正式测试用例。这完全是关于客户使用系统的情况,因为他们已经计划好了,并且看到他们对工作原理的理解与实际工作的相符程度。 测试用例约束了验收测试,因为通常情况下,从它产生的东西就像“X很好,但是你也可以添加Y”和“我们说域Z应该是一个整数,但实际上我们可能需要在其中放置文本”。

+5

我不同意。验收测试绝对应该有一个正式的测试用例,否则你会给客户一个“免于写出愚蠢的免费要求”的卡片。 – 2013-04-11 09:20:48

+0

我在想,客户和供应商之间的每一份合同的基础都是需求规格说明。如果客户正在进行验收测试,并且没有使用该特定系统作为基础对系统进行测试并接受系统,则他们没有法律要求事后说出嘿,您错过了这一点。客户和供应商都应该验证满足要求吗? – 2013-04-11 09:22:21

+0

诚然,要求客户审查规范并不会造成什么伤害。这听起来有点像“我们认为这就是你想要的,请确认我们已经实现了它”,而不是更开放的“系统做你想做的事情吗?” – 2013-04-11 09:27:51

7

简短的回答是这样的:

系统测试开发商和/或质量保证执行,以确保系统做什么它被设计做。这可以通过使用例如Selenium(用于Web应用程序)等自动完成。这样做的目的是保证质量,许多组织不会为此而烦恼。

验收测试客户和/或管理人员进行,以确保系统做什么,他们认为它应该。通常认为这是开发人员修复软件的合同义务的终结。

区别在于系统测试通常会测试客户并不在意的事情,比如“数据库连接是否按正确的顺序提交”。验收测试通常关注诸如“主观用户体验如何”等。

2

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

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

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

如果您使用V-Model进行工作,则系统测试将与系统级设计和验收测试一致,并与业务需求保持一致。