4.
基于模型的測(cè)試
模型實(shí)際上就是用語(yǔ)言把一個(gè)系統(tǒng)的行為描述出來(lái),定義出它可能的各種狀態(tài),以及它們之間的轉(zhuǎn)換關(guān)系,即狀態(tài)轉(zhuǎn)換圖。模型是系統(tǒng)的抽象。基于模型的測(cè)試是利用模型來(lái)生成相應(yīng)的測(cè)試用例,然后根據(jù)實(shí)際結(jié)果和原先預(yù)想的結(jié)果的差異來(lái)測(cè)試系統(tǒng),過程如下圖所示。
三、軟件測(cè)試的類型
常見的軟件測(cè)試類型有:
BVT (Build Verification Test)
BVT是在所有開發(fā)工程師都已經(jīng)檢入自己的代碼,項(xiàng)目組編譯生成當(dāng)天的版本之后進(jìn)行,主要目的是驗(yàn)證最新生成的軟件版本在功能上是否完整,主要的軟件特性是否正確。如無(wú)大的問題,就可以進(jìn)行相應(yīng)的功能測(cè)試。BVT優(yōu)點(diǎn)是時(shí)間短,驗(yàn)證了軟件的基本功能。缺點(diǎn)是該種測(cè)試的覆蓋率很低。因?yàn)檫\(yùn)行時(shí)間短,不可能把所有的情況都測(cè)試到。
Scenario Tests(基于用戶實(shí)際應(yīng)用場(chǎng)景的測(cè)試)
在做BVT、功能測(cè)試的時(shí)候,可能測(cè)試主要集中在某個(gè)模塊,或比較分離的功能上。當(dāng)用戶來(lái)使用這個(gè)應(yīng)用程序的時(shí)候,各個(gè)模塊是作為一個(gè)整體來(lái)使用的,那么在做測(cè)試的時(shí)候,就需要模仿用戶這樣一個(gè)真實(shí)的使用環(huán)境,即用戶會(huì)有哪些用法,會(huì)用這個(gè)應(yīng)用程序做哪些事情,操作會(huì)是一個(gè)怎樣的流程。加了這些測(cè)試用例后,再與BVT、功能測(cè)試配合,就能使軟件整體都能符合用戶使用的要求。Scenario Tests優(yōu)點(diǎn)是關(guān)注了用戶的需求,缺點(diǎn)是有時(shí)候難以真正模仿用戶真實(shí)的使用情況。
Smoke Test
在測(cè)試中發(fā)現(xiàn)問題,找到了一個(gè)Bug,然后開發(fā)人員會(huì)來(lái)修復(fù)這個(gè)Bug。這時(shí)想知道這次修復(fù)是否真的解決了程序的Bug,或者是否會(huì)對(duì)其它模塊造成影響,就需要針對(duì)此問題進(jìn)行專門測(cè)試,這個(gè)過程就被稱為Smoke Test。在很多情況下,做Smoke Test是開發(fā)人員在試圖解決一個(gè)問題的時(shí)候,造成了其它功能模塊一系列的連鎖反應(yīng),原因可能是只集中考慮了一開始的那個(gè)問題,而忽略其它的問題,這就可能引起了新的Bug。Smoke Test優(yōu)點(diǎn)是節(jié)省測(cè)試時(shí)間,防止build失敗。缺點(diǎn)是覆蓋率還是比較低。
此外,Application Compatibility Test(兼容性測(cè)試),主要目的是為了兼容第三方軟件,確保第三方軟件能正常運(yùn)行,用戶不受影響。Accessibility Test(軟件適用性測(cè)試),是確保軟件對(duì)于某些有殘疾的人士也能正常的使用,但優(yōu)先級(jí)比較低。其它的測(cè)試還有Functional Test(功能測(cè)試)、Security Test(安全性測(cè)試)、Stress Test(壓力測(cè)試)、Performance Test(性能測(cè)試)、Regression Test(回歸測(cè)試)、Setup/Upgrade Test(安裝升級(jí)測(cè)試)等。
四、微軟的軟件測(cè)試工作
1.
基本情況
測(cè)試在微軟公司是一項(xiàng)非常重要的工作,微軟公司在此方面的投入是非常巨大的。微軟對(duì)測(cè)試的重視表現(xiàn)在工程開發(fā)隊(duì)伍的人員構(gòu)成上,微軟的項(xiàng)目經(jīng)理、軟件開發(fā)人員和測(cè)試人員的比例基本是1:3:3或1:4:4,可以看出開發(fā)人員與測(cè)試人員的比例是1:1。對(duì)于測(cè)試的重視還表現(xiàn)在最后產(chǎn)品要發(fā)布的時(shí)候,此產(chǎn)品的所有相關(guān)部門都必須簽字,而測(cè)試人員則具有絕對(duì)的否決權(quán)。
測(cè)試人員中分成兩種職位,Software Development Engineer in Test(測(cè)試組的軟件開發(fā)工程師)實(shí)際上還是屬于開發(fā)人員,他們具備編寫代碼的能力和開發(fā)工具軟件的經(jīng)驗(yàn),側(cè)重于開發(fā)自動(dòng)化測(cè)試工具和測(cè)試腳本,實(shí)現(xiàn)測(cè)試的自動(dòng)化。Software Test Engineer(軟件測(cè)試工程師)具體負(fù)責(zé)測(cè)試軟件產(chǎn)品,主要完成一些手工測(cè)試以及安裝配置測(cè)試。
2.
測(cè)試計(jì)劃
測(cè)試計(jì)劃是測(cè)試人員管理測(cè)試項(xiàng)目,在軟件中尋找Bug的一種有效的工具。測(cè)試計(jì)劃主要有兩個(gè)作用,一是評(píng)判團(tuán)隊(duì)的測(cè)試覆蓋率以及效率,讓測(cè)試工作很有條理的逐步展開。二是有利于與項(xiàng)目經(jīng)理、開發(fā)人員進(jìn)行溝通。有了測(cè)試計(jì)劃之后,他們就能夠知道你是如何開展測(cè)試工作的,他們也會(huì)從中提出很多有益的意見,確保測(cè)試工作順利進(jìn)行。總之,有了測(cè)試計(jì)劃可以更好的完成測(cè)試工作,確保用戶的滿意度。
測(cè)試人員在編寫測(cè)試計(jì)劃之前,應(yīng)獲得以下文檔:
1)程序經(jīng)理編寫的產(chǎn)品功能說(shuō)明書或產(chǎn)品開發(fā)計(jì)劃;
2)程序經(jīng)理或開發(fā)人員提供的開發(fā)進(jìn)度表。
根據(jù)產(chǎn)品的特性及開發(fā)進(jìn)度安排,測(cè)試人員制定具體的測(cè)試計(jì)劃。測(cè)試計(jì)劃通常包括以下內(nèi)容:
1)測(cè)試目標(biāo)和發(fā)布條件:
a. 給出清晰的測(cè)試目標(biāo)描述;
b. 定義產(chǎn)品的發(fā)布條件,即在達(dá)到何種測(cè)試目標(biāo)的前提下才可以發(fā)布產(chǎn)品的某個(gè)特定版本。
2)待測(cè)產(chǎn)品范圍:
a. 軟件主要特性/功能說(shuō)明,即待測(cè)軟件主要特性的列表;
b. 特性/功能測(cè)試一覽,應(yīng)涵蓋所有特性、對(duì)話框、菜單和錯(cuò)誤信息等待測(cè)內(nèi)容,并列舉每個(gè)測(cè)試范圍內(nèi)要重點(diǎn)考慮的關(guān)鍵功能。
3)測(cè)試方法描述:
a. 定義測(cè)試軟件產(chǎn)品時(shí)使用的測(cè)試方法;
b. 描述每一種特定的測(cè)試方法可以覆蓋哪些測(cè)試范圍。
4)測(cè)試進(jìn)度表:
a. 定義測(cè)試?yán)锍瘫?/p>
b. 定義當(dāng)前里程碑的詳細(xì)測(cè)試進(jìn)度。
5)測(cè)試資源和相關(guān)的程序經(jīng)理/開發(fā)工程師:
a. 定義參與測(cè)試的人員;
b. 描述每位測(cè)試人員的職責(zé)范圍;
c. 給出與測(cè)試有關(guān)的程序經(jīng)理/開發(fā)工程師的相關(guān)信息。
6)配置范圍和測(cè)試工具:
a. 給出測(cè)試時(shí)使用的所有計(jì)算機(jī)平臺(tái)列表;
b. 描述測(cè)試覆蓋了哪些硬件設(shè)備;
c. 測(cè)試時(shí)使用的主要測(cè)試工具。
此外,還應(yīng)列出測(cè)試中可能會(huì)面臨的風(fēng)險(xiǎn)及測(cè)試的依賴性,即測(cè)試是否依賴于某個(gè)產(chǎn)品或某個(gè)團(tuán)隊(duì)。比如此項(xiàng)測(cè)試依賴性WindowsCE這個(gè)操作系統(tǒng),而這個(gè)系統(tǒng)要明年2月份才能做好,那么此項(xiàng)測(cè)試就可能只有在明年5月份才能完成,這樣就存在著依賴關(guān)系。如果那個(gè)團(tuán)隊(duì)的開發(fā)計(jì)劃往后推,則此項(xiàng)測(cè)試也會(huì)被推遲。
posted on 2006-11-26 14:53
matthew 閱讀(311)
評(píng)論(2) 編輯 收藏 所屬分類:
軟件測(cè)試技術(shù)