測試數(shù)據(jù)建模
現(xiàn)在很多軟件應用,都設(shè)計成2部分:應用程序Application + 數(shù)據(jù)庫DB。要對這種類型的應用軟件進行測試,“測試數(shù)據(jù)”這個概念就非常的關(guān)鍵。測試用例中的“前置條件”,基本就是圍繞測試數(shù)據(jù)來設(shè)計的。以淘寶網(wǎng)的測試為例,驗證每個功能點時,最重要的就是準備好各種類型的數(shù)據(jù)對象,比如:不通信用級別的賣家,不同類目屬性的商品等等。
熟練的測試工程師手里都會保存一批測試數(shù)據(jù)(比如賬號、商品),并且分類管理,不同場景的測試用例,都會有專門的測試數(shù)據(jù)來支持。在ta的心里,存在著一套完整的測試設(shè)計方案,在工作中也會顯得游刃有余。要達到這種狀態(tài),需要經(jīng)過一段時間的積累,需要“磨合”。對測試數(shù)據(jù)的控制力,也是測試工程師的重要能力之一,可惜這種能力很難被識別,被比較。
最近2年,軟件測試工作在逐漸向開發(fā)團隊轉(zhuǎn)移,由以前的測試團隊“全包”,變成了現(xiàn)在的“半包”。很多觀點也認為,開發(fā)團隊來做測試工作,有著得天獨厚的優(yōu)勢,因為開發(fā)對應用程序的結(jié)構(gòu)最熟悉,哪里容易出現(xiàn)問題也最清楚。當然也有很多開發(fā)表示反對,原因大概有下面幾個:
● 沒時間,能把代碼寫完就不錯了
● 開發(fā)工程師沒有測試工程師的那種思維方式
● 測試數(shù)據(jù)準備起來比較困難
這里的“測試數(shù)據(jù)問題”是客觀存在的,但不僅僅是這么簡單的一句話可以概括,需要深入分析。我們觀察開發(fā)工程師在做測試工作的時候,在測試數(shù)據(jù)方面會遇到下面幾個問題:
1、對于一些比較復雜的測試場景,搞不清應該構(gòu)造哪些測試數(shù)據(jù)對象,最后只好隨便抓一個來測試,只要沒拋異常,就算pass;
2、就算搞清了測試數(shù)據(jù)的需求,去哪找這些數(shù)據(jù),仍然是一個大問題,最后還是隨便抓一個來測試;
3、就算把所有的測試數(shù)據(jù)都做好,如何根據(jù)測試場景隨機應變的使用,如何維護這些數(shù)據(jù)始終有效,也非常不容易;
分析到這里我們發(fā)現(xiàn),測試工程師對測試數(shù)據(jù)的控制能力,真的不簡單,開發(fā)工程師在工作中一般沒有接受過類似的訓練,所以很容易陷入“測試數(shù)據(jù)”的泥潭。而且,這個問題跟人的能力有關(guān),不是單純依靠工具能解決的。
關(guān)于“測試數(shù)據(jù)建模”,主要是解決上面的第一個問題:當我們要測試一個功能點,或者一系列場景的時候,需要設(shè)計出怎樣的測試數(shù)據(jù)組合。
我們先假設(shè)一個最簡單的場景,這個場景只需要用到1個數(shù)據(jù)對象:USER,那么這里的測試數(shù)據(jù),就是USER的每個屬性的枚舉值:性別、年齡、狀態(tài)、等 級,我們用一句話就可以概括一個數(shù)據(jù)對象,比如:女性user、20歲的user、狀態(tài)是已認證的user。測試用例可以這樣寫,但是實際測試時,熟練的 測試工程師并不會分別測試,而是把多種情況組合在一起,比如:20歲的已經(jīng)認證的女性user。每個人的組合方式都不一樣。有一種算法叫做 “Pairwise Testing”,可以比較科學的組合多個屬性的枚舉值。但是有經(jīng)驗的測試工程師發(fā)現(xiàn),年齡和性別的邏輯關(guān)系很密切,這里的組合需要特別的設(shè)計,依靠 Pairwise的基礎(chǔ)設(shè)計還遠遠不夠,需要引入業(yè)務邏輯的分析。
所以同樣的測試用例,不同的工程師在測試時,花費的時間,得出的結(jié) 果,會有很大的不同。僅僅一個數(shù)據(jù)對象,就會產(chǎn)生這么復雜的情況,那么請設(shè)想一下,如果一個場景需要用到5個數(shù)據(jù)對象,并且它們之間存在復雜的邏輯關(guān)系 時,測試工程師需要面臨怎樣的困難局面,我們已經(jīng)無法用一句話來概括測試數(shù)據(jù)的具體值。這里“測試數(shù)據(jù)建模”的概念就自然的引出了,建模的目的,就是我們 可以很容易的描述清楚,復雜場景下的測試數(shù)據(jù)是怎樣的。
很多工程師習慣用思維導圖來進行測試數(shù)據(jù)的設(shè)計,比如上文那個例子,大家會看到這樣的設(shè)計圖:
但是在真實的測試場景中,我們使用的是matrix來組織測試數(shù)據(jù),如下:
posted on 2013-01-10 13:41 順其自然EVO 閱讀(224) 評論(0) 編輯 收藏 所屬分類: 測試學習專欄