2013-04-11 185 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進行工作,則系統測試將與系統級設計和驗收測試一致,並與業務需求保持一致。