一種高可靠性軟件測試方案(二)
CraftGS中應(yīng)用的軟件確認技術(shù)包括單元測試技術(shù)、集成測試技術(shù)、系統(tǒng)測試技術(shù)和交付測試技術(shù)。
其中單元測試的主要任務(wù)是驗證詳細設(shè)計規(guī)格說明中所劃分出來的軟件單元是否被程序編制人員用代碼形式正確地實現(xiàn)了。這里軟件單元可能是某個函數(shù)(或稱方法)也可能是某個抽象數(shù)據(jù)類型(如類、數(shù)據(jù)結(jié)構(gòu)或者模板)。單元測試在實際測試當(dāng)中也常常被稱為類測試(在面向?qū)ο蟮脑O(shè)計中)或白盒測試(白盒的意思是面向代碼)。單元測試的工作原理是建構(gòu)樁模塊和驅(qū)動模塊以驅(qū)動被測單元運行,然后,測試人員輸入設(shè)計好的測試用例,測試被測單元能否按照設(shè)計要求處理這些測試用例,對出現(xiàn)異常的測試用例,測試人員應(yīng)做記載并反饋給軟件開發(fā)團隊。
做完單元測試以后,下一步的工作是對照軟件概要設(shè)計規(guī)格說明,驗證各軟件單元組裝后形成模塊能否達到概要設(shè)計規(guī)格說明中模塊的設(shè)計目標(biāo);在模塊級集成工作完成之后,測試人員還應(yīng)測試各模塊組裝后形成的用戶系統(tǒng)內(nèi)部存在沖突,各模塊能否正常工作。這里,模塊可能是指某個軟件部件,也可能是指某個或某幾個分系統(tǒng)。通常在做集成測試時先是從分系統(tǒng)內(nèi)部的集成測試開始做起,做完以后再測試各分系統(tǒng)是否能集成為最終要實現(xiàn)的大系統(tǒng)。也有其他做法(如自頂向下集成測試方法、核心系統(tǒng)先做集成測試或每日集成測試等等)。總之,萬變不離其宗。集成測試要保證模塊的內(nèi)部正確性以及保證模塊能最終集成為大系統(tǒng)。集成測試有時也被稱為組裝測試(在型號軟件中)或灰盒測試(有人認為集成測試介于白盒與黑盒之間)。
做完集成測試以后,下一步工作就是做系統(tǒng)測試。系統(tǒng)測試的主要任務(wù)是驗證經(jīng)集成測試后形成的軟件系統(tǒng)是否滿足軟件需求規(guī)格說明中的各需求項。這些需求項包括:業(yè)務(wù)需求、功能需求、非功能性需求(如:性能、可靠性、安全性、系統(tǒng)維護等方面的要求)以及一些約束性需求(如開發(fā)標(biāo)準、編程語言、通訊協(xié)議)等等。由于需求項涉及的領(lǐng)域很廣泛,這就導(dǎo)致了系統(tǒng)測試中對應(yīng)的測試門類相當(dāng)龐雜。如:功能測試、執(zhí)行路徑測試、可靠性測試、壓力測試、可恢復(fù)性測試、可移植性測試等等。這些測試最顯著的特征是在一定環(huán)境條件下(如:模擬現(xiàn)場或極端條件),設(shè)計各種測試用例,輸入并運行完整的軟件系統(tǒng),根據(jù)軟件系統(tǒng)運行過程中的實際表現(xiàn),評估軟件系統(tǒng)是否符合軟件需求項的各類要求。由于這類測試一般不涉及內(nèi)部代碼,因此,也有人把系統(tǒng)測試稱做是黑盒測試。
在做完系統(tǒng)測試以后,軟件產(chǎn)品就到了交付用戶使用這個階段了。交付過程中的重要一環(huán)就是交付測試,交付測試的目標(biāo)是保證用戶對所交付的系統(tǒng)的滿意。與前面所討論的測試不同,交付測試主要的參與者應(yīng)該是目標(biāo)客戶??蛻魠⑴c越多越好。交付測試的內(nèi)容一般包括安裝測試、可用性測試、alpha測試、beta測試等。其中安裝測試的主要任務(wù)是測試軟件系統(tǒng)能否在模擬環(huán)境下或?qū)嶋H現(xiàn)場由目標(biāo)用戶順利完成在目標(biāo)機器上的安裝;可用性測試的主要任務(wù)是測試軟件系統(tǒng)在完成安裝以后能否完成用戶的模擬任務(wù)或現(xiàn)場任務(wù);alpha測試采用的形式一般是由一個用戶在開發(fā)環(huán)境下對軟件系統(tǒng)進行類似于黑盒的測試,測試的目的是從用戶的角度評價軟件產(chǎn)品的功能、可使用性、可靠性、性能和支持,尤其注重產(chǎn)品的界面和特色;beta測試采用的形式一般是先由軟件的多個用戶在實際使用環(huán)境下使用beta版軟件系統(tǒng)一段時間,然后把使用中出現(xiàn)的各類故障或缺陷反饋給beta測試負責(zé)人員,再由測試負責(zé)人員移交給軟件開發(fā)者,由開發(fā)人員負責(zé)修正并完善軟件系統(tǒng)。Beta測試的目的是確保軟件產(chǎn)品交付給全體用戶之前能部分或全面地修正其在實際應(yīng)用中可能出現(xiàn)的各類BUG或不足。
4.3 在CraftGS項目中應(yīng)用軟件測試管理技術(shù)
一如前文所述,測試技術(shù)解決了測試采用的方法和技術(shù)問題,然而,對于一個工程而言,還需要相應(yīng)的測試管理才能保證各項測試活動的有序開展。因此,在CraftGS項目中,軟件測試管理技術(shù)要解決的問題是如何確保軟件測試技術(shù)(包括軟件驗證技術(shù)和軟件確認技術(shù))能在軟件項目在軟件生命內(nèi)得到順利實施,并產(chǎn)生預(yù)期的效果。
按照軟件測試管理面對的管理對象的差異,軟件測試管理技術(shù)大致分為軟件測試團隊組織管理、軟件測試計劃管理、軟件缺陷(錯誤)跟蹤管理以及軟件測試件管理四大部分。以下一一詮釋:
軟件測試團隊組織管理通俗地講就是測試團隊?wèi)?yīng)該如何組建。在實際項目開發(fā)中,我們常??吹接行﹩挝缓鲆暅y試團隊存在的意義,當(dāng)要實施測試時,往往臨時找?guī)讉€程序員充當(dāng)測試人員;也有些單位盡管認識到了組建測試團隊的重要性,但在具體落實的時候往往安排一些毫無開發(fā)經(jīng)驗的行業(yè)新手去做測試工作,這常常導(dǎo)致測試效率的低下,測試人員對測試工作索然無味。CraftGS項目的測試團隊首先聘有一名資深的測試領(lǐng)域?qū)<?,他具有極為豐富的航天項目軟件測試經(jīng)驗,對軟件開發(fā)過程中常見的缺陷或錯誤了然于胸,此外,他還具有較好的親和力和人格魅力。其次,CraftGS項目測試團隊還具有很多具備一技之長的成員,如對某些自動化測試工具運用嫻熟或能輕而易舉地編寫自動化測試腳本。另外,測試團隊
評論