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