在Visual Studio 2010選擇合適的項(xiàng)目測試方法
在這里我們將討論的是Visual Studio 2010選擇合適的項(xiàng)目測試方法,希望通過這些文章,能幫助大家更好的用好VS 2010的測試功能。
應(yīng)用軟件開發(fā)完畢后,對于軟件的測試非常的關(guān)鍵。軟件測試人員的身價也一漲再漲,甚至有蓋過程序開發(fā)人員的趨勢。從中也可以看出程序測試人員的重要性。特別是在團(tuán)隊(duì)開發(fā)項(xiàng)目中,選擇什么樣的測試類型、如何相互協(xié)調(diào)等等,顯得尤其的重要。筆者這里就以一個團(tuán)隊(duì)項(xiàng)目為例,談?wù)勅绾芜x擇合適的測試類型。
一、普通測試。
普通測試是指現(xiàn)有的程序或者來自另一個源的測試。經(jīng)過一定的包裝之后,在Visual Studio 2010中作為測試運(yùn)行。通常情況下,如果采用普通測試的話,有一個前提條件,即需要有比較完善的基礎(chǔ)架構(gòu)。其測試效果的好壞,則主要去取決于在框架外部創(chuàng)建的自動化測試工具。在使用一般測試的時候,可以包裝現(xiàn)有的測試程序或者第三方工具。在進(jìn)行測試時,可以根據(jù)不同的測試需要選擇返回不同的結(jié)果。如有些情況下,只需要測試是否通過,那么就可以讓其只返回“通過”或者“失敗”的結(jié)果即可,而不需要返回具體的原因。而有時候可能還需要具體的結(jié)果。如現(xiàn)在可能需要測試某個功能優(yōu)化的效果,那么就需要返回內(nèi)部測試的詳細(xì)結(jié)果。
普通測試最常用的一個地方就是通過普通測試來收集代碼覆蓋率數(shù)據(jù)。如通過如下步驟就可以收集到代碼覆蓋率的相關(guān)數(shù)據(jù)。
第一步創(chuàng)建或者打開包含普通測試的測試項(xiàng)目。在解決方案資源管理器中,打開“解決方案項(xiàng)”文件夾。然后在這個文件夾中找到一個叫做testrunconfig的文件,并雙擊打開。第二步在打開的對話框中,可以看到“代碼覆蓋率”的按鈕。單擊這個按鈕,在“選擇要檢測的項(xiàng)目”對話框中,選擇要為其手機(jī)代碼覆蓋率數(shù)據(jù)的成品代碼二進(jìn)制文件。單擊應(yīng)用進(jìn)行測試即可。在這個過程中需要注意一個問題。有時候在“選擇要檢測的項(xiàng)目”對話框中可能會找不到需要測試的二進(jìn)制代碼文件。這主要是需要檢測的二進(jìn)制文件沒有與添加程序集關(guān)聯(lián)的原因。此時需要先點(diǎn)擊“添加程序集”,然后再在“選擇需要測試的程序集”對話框中,制定需要測試的二進(jìn)制文件。通常情況下第一次測試是需要這么操作。第二次測試時可以直接打開。另外如果測試的是成品代碼,那么需要注意包含成品代碼的二進(jìn)制文件可能不是一般測試中所包含的文件。遇到這種情況的話,測試人員需要指定普通測試將中間應(yīng)用程序作為測試來包裝。也就是說利用中間應(yīng)用程序來運(yùn)行需要測試的成品代碼。這往往能夠取得比較好的測試效果。
二、單元測試。
單元測試與普通測試有本主的區(qū)別。單元測試是編程測試中的一種重要方法。其主要通過調(diào)用帶參數(shù)類的方法,來驗(yàn)證返回值是否是用戶所期望的值。簡單的說,就是測試人員輸入幾個參數(shù),然后看應(yīng)用程序得到的結(jié)果,是否與我們所期望的值類似。顯然,對于單元測試來說,要取得比較好的效果,不在于測試的數(shù)量,而在于提供的參數(shù)是否包含了實(shí)際應(yīng)用中涵蓋的范圍。簡單的說,如果現(xiàn)在要測試一個單元格金額合計的程序,那么就需要提供金額為零、為負(fù)、為空(如果對輸入的金額沒有限制的話)等值,以取得在包含這些數(shù)據(jù)時會返回什么樣的運(yùn)算結(jié)果。
在Visual Studio 2010平臺中,程序測試人員可以選擇采用平臺自帶的單元測試模板進(jìn)行測試,也可以自己手工編寫代碼進(jìn)行測試。在這個平臺中,提供了兩種專用的單元測試變體,分別為數(shù)據(jù)驅(qū)動型單元測試和ASP.NET單元測試。前者主要是針對數(shù)據(jù)源的每一行反復(fù)調(diào)用時采用的。此時單元測試使用每一行的數(shù)據(jù)作為輸入數(shù)據(jù)。后者主要用來測試Web應(yīng)用程序的代碼或者IIS進(jìn)程中所運(yùn)行的代碼。
如果以上這兩個測試模板不能夠滿足要求的話,則就需要手工添加新的單元測試代碼。手工添加測試代碼時,也有兩種方法。一是直接添加,即使用單元測試在測試項(xiàng)目中添加一個源文件,該文件中包含一個有效的空白單元測試方法,然后再手工編寫這個方法的代碼。二是通過向?qū)硗瓿?。可以選擇“使用測試向?qū)?rdquo;顯示創(chuàng)建單元測試對話框。測試人員可以使用這個對話框利用當(dāng)前項(xiàng)目中的方法來生成單元測試。不過雖然使用向?qū)韯?chuàng)建單元測試,可以節(jié)省代碼編寫的時間。但是生成單元測試之后,仍然需要檢查并在必要的時候進(jìn)行手工的調(diào)整。
三、負(fù)載測試。
顧名思義,負(fù)載測試主要就是用來測試用戶并發(fā)訪問時應(yīng)用程序的性能。負(fù)載測試的原理比較簡單,就是將單元測試、普通測試等方法進(jìn)行封裝,然后使用虛擬用戶同時運(yùn)行應(yīng)用程序,以判斷在多用戶的環(huán)境中應(yīng)用程序的運(yùn)行狀態(tài)。在負(fù)載測試下運(yùn)行這些測試將生成比較多的測試結(jié)果,包括以表格或者圖標(biāo)形式顯示的性能計數(shù)器等相關(guān)的計數(shù)器?,F(xiàn)在大部分應(yīng)用程序都是服務(wù)器/客戶機(jī)模式,用戶數(shù)量比較多,負(fù)載測試是一種必不可少的測試方法。
如現(xiàn)在需要使用Visual Studio 2010開發(fā)一個Web應(yīng)用程序。其有可能有成千上萬個用戶。一個用戶使用的時候,性能等方面可能沒有問題。但是如果許多用戶同時訪問這個應(yīng)用程序,是否會有性能上的障礙呢?在測試的時候,同時叫上千個人對應(yīng)用程序進(jìn)行同時訪問,也不怎么現(xiàn)實(shí)。在實(shí)際工作中,通常是通過負(fù)載測試來完成。如可以將Web測試添加到負(fù)載測試項(xiàng)目中,然后可以模擬數(shù)千個用戶與某個特定的Web應(yīng)用程序同時進(jìn)行交互訪問。負(fù)載測試可以幫助程序開發(fā)人員判斷在應(yīng)用程序的訪問達(dá)到最大量的時候,是否否出現(xiàn)錯誤或者性能上的瓶頸。而不是等到真的出現(xiàn)這種情況時再去彌補(bǔ)。
用戶選擇負(fù)載測試的時候,需要注意如下問題。
一是要從少到多進(jìn)行測試。有時候用戶可能需要測試應(yīng)用軟件的最大訪問量是多少,此時最好從少到多進(jìn)行測試。這主要是因?yàn)槿绻撁嬉驍?shù)據(jù)庫或者CPU瓶頸而導(dǎo)致響應(yīng)時間比較長的話,則會限制每個虛擬用戶每秒發(fā)出的請求數(shù),從而影響到最后測試的結(jié)果。比較合理的做法是,先從少量的負(fù)載開始,并確保緩慢增加負(fù)載時能夠保持合理的響應(yīng)時間。如可以通過響應(yīng)時間目標(biāo)屬性為每個請求設(shè)置期望的最長響應(yīng)時間。工具加上合理的經(jīng)驗(yàn),才能夠得到比較準(zhǔn)確的結(jié)果。
二是在負(fù)載測試時,最好進(jìn)行直接測試,而不要在測試端與被測試端之間加入代理服務(wù)器。雖然在Visual Studio 2010提供的負(fù)載測式方法中,可以啟用自動代理服務(wù)器檢測工具。但是,如果啟用這個工具的話,可能會帶來一些誤診。因?yàn)榇矸?wù)器性能不同,會直接影響到檢測的結(jié)果。為了保持客觀公正的效果,最好不要使用代理服務(wù)器。畢竟代理服務(wù)器會在負(fù)載測式中降低性能,較少吞吐量。絕大部分情況下,在使用代理服務(wù)器之后,應(yīng)用程序的性能都會有所下降。
從以上的分析中可以看出,在Visual Studio 2010平臺中提供了比較豐富的測試方法。但是不同的測試方法其側(cè)重點(diǎn)有所不同,都有各自的應(yīng)用領(lǐng)域。作為程序測試人員,比較重要的一點(diǎn)就是如何根據(jù)企業(yè)的實(shí)際情況,選擇合適的測試方法,并在各個項(xiàng)目成員之間取得一致。
【編輯推薦】