您好,歡迎來(lái)到上海上器集團(tuán)試驗(yàn)設(shè)備有限公司!
[摘要] 隨著軟件系統(tǒng)規(guī)模和復(fù)雜度日益升高,越來(lái)越多的軟件項(xiàng)目明確提出軟件的可靠性要求。而涉及高可靠性軟件開(kāi)發(fā)的軟件企業(yè)也越來(lái)越意識(shí)到,軟件測(cè)試在這些項(xiàng)目開(kāi)發(fā)過(guò)程中絕不是一種輔助性工作,而是從軟件質(zhì)量控制角度保證軟件工程過(guò)程質(zhì)量的Z有效方法。有鑒于此,本文以CraftGS航天項(xiàng)目模型為例,系統(tǒng)地介紹了一套行之有效的軟件測(cè)試方案,該方案對(duì)同類(lèi)高可靠性軟件項(xiàng)目測(cè)試工作的開(kāi)展具有一定的參考意義和指導(dǎo)作用。
[關(guān)鍵詞] 高可靠性 軟件測(cè)試 軟件驗(yàn)證技術(shù) 軟件確認(rèn)技術(shù) 軟件測(cè)試管理
1 引言
高可靠性軟件泛指一類(lèi)軟件:該類(lèi)軟件運(yùn)行過(guò)程中若出現(xiàn)故障會(huì)引發(fā)重大災(zāi)難性事故或經(jīng)濟(jì)損失。通常航天型號(hào)軟件、銀行系統(tǒng)軟件、醫(yī)療行業(yè)軟件、通訊行業(yè)軟件等均屬此范疇。目前,越來(lái)越多的軟件企業(yè)涉及高可靠性軟件項(xiàng)目,如何保證軟件質(zhì)量成為眾多企業(yè)面臨的一個(gè)很重要的課題。這篇文章結(jié)合某航天項(xiàng)目地面應(yīng)用系統(tǒng)模型(本文命名為 CraftGS ),重點(diǎn)討論如何從軟件測(cè)試的角度保證此類(lèi)產(chǎn)品的軟件質(zhì)量。
2 CraftGS 項(xiàng)目簡(jiǎn)介
CraftGS 是一個(gè)很經(jīng)典的衛(wèi)星地面應(yīng)用系統(tǒng)模擬項(xiàng)目。它分為 5 個(gè)子系統(tǒng):數(shù)據(jù)接收子系統(tǒng) (DAS) 、數(shù)據(jù)預(yù)處理子系統(tǒng) (DPS) 、運(yùn)行管理子系統(tǒng) (OMS) 、數(shù)據(jù)管理子系統(tǒng) (DMS) 以及數(shù)據(jù)產(chǎn)品實(shí)現(xiàn) (DPRS) 子系統(tǒng)。 CraftGS 的總體可靠度要求是 0.95 。各分系統(tǒng)分配到的可靠度指標(biāo)是如下:
分系統(tǒng)名 | 可靠度指標(biāo) |
DAS | 0.99994 |
DPS | 0.99865 |
OMS | 0.99910 |
DMS | 0.99950 |
DPRS | 0.99502 |
CraftGS 的業(yè)務(wù)邏輯是 Data Package 從衛(wèi)星傳入 DAS , DAS 負(fù)責(zé)解包,將解包后數(shù)據(jù)傳入 OMS 及 DPS , OMS 通過(guò) DAS 傳來(lái)的數(shù)據(jù)檢測(cè)衛(wèi)星是否正常運(yùn)行并負(fù)責(zé)衛(wèi)星飛行姿態(tài)調(diào)整; DPS 負(fù)責(zé)調(diào)制 DAS 傳來(lái)的數(shù)據(jù),轉(zhuǎn)換成有意義的邏輯數(shù)據(jù)。 DPS 處理后的邏輯數(shù)據(jù)傳入 DMS 以及 DPRS 。其中 DMS 負(fù)責(zé)數(shù)據(jù)備份、數(shù)據(jù)查詢(xún)及數(shù)據(jù)鏈路維護(hù)等操作; DPRS 負(fù)責(zé)將 DPS 處理過(guò)的邏輯數(shù)據(jù)分門(mén)別類(lèi)地轉(zhuǎn)換成數(shù)據(jù)產(chǎn)品,并封裝發(fā)布。
考慮到項(xiàng)目固有的可靠性安全性要求, CraftGS 系統(tǒng)采用 Java+Unix 技術(shù)架構(gòu)實(shí)現(xiàn)。該架構(gòu)從編程語(yǔ)言級(jí)和系統(tǒng)級(jí)對(duì)軟件產(chǎn)品質(zhì)量做了保證。為了控制軟件產(chǎn)品開(kāi)發(fā)過(guò)程中的質(zhì)量,筆者推薦采用如下軟件測(cè)試方案。
3 測(cè)試方案:軟件驗(yàn)證技術(shù) + 軟件確認(rèn)技術(shù) + 軟件測(cè)試管理
CraftGS 系統(tǒng)的軟件測(cè)試方案由三個(gè)部分組成,即軟件驗(yàn)證技術(shù)、軟件確認(rèn)技術(shù)和軟件測(cè)試管理技術(shù)。它們內(nèi)涵及相互之間的關(guān)系如下圖所示:
CraftGS 測(cè)試方案 | ||
測(cè)試技術(shù)層面 | 測(cè)試管理層面 | |
軟件驗(yàn)證技術(shù) | 需求規(guī)格說(shuō)明驗(yàn)證 | 軟件測(cè)試團(tuán)隊(duì)組織管理 |
設(shè)計(jì)規(guī)格說(shuō)明驗(yàn)證 | ||
代碼驗(yàn)證 | 軟件測(cè)試計(jì)劃管理 | |
交付驗(yàn)證 | ||
軟件確認(rèn)技術(shù) | 單元測(cè)試 | 軟件缺陷(錯(cuò)誤)跟蹤管理 |
集成測(cè)試 | ||
系統(tǒng)測(cè)試 | 軟件測(cè)試件管理 | |
交付測(cè)試 |
其中,軟件驗(yàn)證技術(shù)著眼于排除軟件開(kāi)發(fā)文檔中的錯(cuò)誤。驗(yàn)證活動(dòng)涉及的文檔按開(kāi)發(fā)流程主要涉及需求規(guī)格說(shuō)明、設(shè)計(jì)規(guī)格說(shuō)明(包括概要設(shè)計(jì)規(guī)格說(shuō)明、詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明、數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)格說(shuō)明)、編碼規(guī)格說(shuō)明、產(chǎn)品交付文檔等一系列書(shū)面材料。目前驗(yàn)證技術(shù)的實(shí)施在很大程度上是依靠測(cè)試人員手工完成的。驗(yàn)證活動(dòng)視實(shí)際需要有時(shí)還會(huì)涉及到開(kāi)發(fā)人員和目標(biāo)客戶(hù),需要得到他們必要的理解和支持。驗(yàn)證測(cè)試采用的主要測(cè)試手段有:面對(duì)面質(zhì)詢(xún)、文檔抽查、非正式會(huì)議、同行評(píng)審等等。
相對(duì)于軟件驗(yàn)證技術(shù),軟件確認(rèn)技術(shù)則主要著眼于排除程序代碼中的錯(cuò)誤。活動(dòng)涉及的對(duì)象主要是程序部件的代碼或軟件成品。在實(shí)施過(guò)程中,常常按被測(cè)代碼的規(guī)模和測(cè)試所處的層次將軟件確認(rèn)測(cè)試分為四個(gè)階段,即:?jiǎn)卧獪y(cè)試(也叫類(lèi)測(cè)試)、集成測(cè)試(也叫組裝測(cè)試)、系統(tǒng)測(cè)試和交付測(cè)試。確認(rèn)測(cè)試基本上由軟件測(cè)試人員對(duì)照相關(guān)開(kāi)發(fā)文檔運(yùn)行程序獨(dú)立完成的。必要時(shí),也可讓設(shè)計(jì)人員帶領(lǐng)測(cè)試人員閱讀程序代碼共同發(fā)現(xiàn)其中的錯(cuò)誤,(即所謂代碼評(píng)審會(huì))。有意見(jiàn)認(rèn)為,在單元測(cè)試 ( 或類(lèi)測(cè)試 ) 階段,應(yīng)該有軟件編碼人員參與,這樣能減輕測(cè)試人員閱讀代碼障礙。原則上,測(cè)試?yán)碚摬惶岢绦蜃髡哓?fù)責(zé)把關(guān)自己編寫(xiě)的程序的質(zhì)量。在實(shí)際實(shí)施過(guò)程中,可視實(shí)際情況靈活處理。(如成對(duì)編程可能會(huì)較好的處理單元測(cè)試這個(gè)難題,上面提到的代碼評(píng)審會(huì)也是為應(yīng)對(duì)這個(gè)難題而想出的一個(gè)好辦法。),軟件確認(rèn)技術(shù)目前已經(jīng)部分地實(shí)現(xiàn)了測(cè)試工具的自動(dòng)化,市面上已有不少自動(dòng)化工具能在測(cè)試人員的輔助下完成相應(yīng)的測(cè)試工作(例如用于 Java 代碼單元測(cè)試的 Junit 工具,又如用于 GUI 測(cè)試的 Rational Visual Test 工具,等等)。
軟件驗(yàn)證技術(shù)和軟件確認(rèn)技術(shù)均屬于測(cè)試技術(shù)層面的東西。然而對(duì)于工程質(zhì)量的保證而言,光靠軟件測(cè)試技術(shù)還遠(yuǎn)遠(yuǎn)不夠,還需要技術(shù)管理層面上的東西。軟件測(cè)試管理技術(shù)的誕生正是為彌補(bǔ)這個(gè)不足。按照管理的對(duì)象不同,測(cè)試管理技術(shù)大致涵蓋軟件測(cè)試團(tuán)隊(duì)組織管理、軟件測(cè)試計(jì)劃管理、軟件缺陷(錯(cuò)誤)跟蹤管理以及軟件測(cè)試件管理四大部分。下面,筆者將結(jié)合 CraftGS 項(xiàng)目對(duì)該測(cè)試方案做一個(gè)詳細(xì)的詮釋。
4 在 CraftGS 項(xiàng)目中具體應(yīng)用上述測(cè)試方案
CraftGS 五個(gè)分系統(tǒng)的開(kāi)發(fā)過(guò)程均在 CraftGS 測(cè)試團(tuán)隊(duì)的質(zhì)量控制下有序進(jìn)行,嚴(yán)格地實(shí)施了上述測(cè)試方案。經(jīng)專(zhuān)家評(píng)定,各分系統(tǒng)及Z后集成后的系統(tǒng)總體均達(dá)到了任務(wù)書(shū)中所分配的可靠性指標(biāo)。
4.1 在 CraftGS 項(xiàng)目中應(yīng)用軟件驗(yàn)證技術(shù)
CraftGS 項(xiàng)目中應(yīng)用的軟件驗(yàn)證技術(shù)主要包括需求規(guī)格說(shuō)明驗(yàn)證、設(shè)計(jì)規(guī)格說(shuō)明驗(yàn)證、代碼驗(yàn)證以及交付驗(yàn)證。以下逐一說(shuō)明。
需求規(guī)格說(shuō)明驗(yàn)證的主要任務(wù)是保證用戶(hù)的功能需求、業(yè)務(wù)需求、以及其他的一些需求(如非功能性需求、約束性需求等等)都已經(jīng)被分配到軟件需求規(guī)格說(shuō)明的各需求項(xiàng)中。
設(shè)計(jì)規(guī)格說(shuō)明驗(yàn)證相對(duì)需求規(guī)格說(shuō)明驗(yàn)證而言,稍微復(fù)雜些,它包括 3 個(gè)部分的內(nèi)容:即概要設(shè)計(jì)規(guī)格說(shuō)明驗(yàn)證、詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明驗(yàn)證以及數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)格說(shuō)明驗(yàn)證。其中概要設(shè)計(jì)規(guī)格說(shuō)明驗(yàn)證的主要任務(wù)是確保軟件需求規(guī)格說(shuō)明中的需求項(xiàng)全部已經(jīng)分配到了概要設(shè)計(jì)規(guī)格說(shuō)明的各軟件模塊之中并且無(wú)多余物,詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明驗(yàn)證的主要任務(wù)是確保概要設(shè)計(jì)規(guī)格說(shuō)明中的模塊已經(jīng)全部分配到詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明的各軟件單元之中并且無(wú)多余物,數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)格說(shuō)明雖然從范疇上講應(yīng)該屬于詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明范疇,但筆者認(rèn)為因改把它獨(dú)立出來(lái)實(shí)施驗(yàn)證活動(dòng)。(數(shù)據(jù)庫(kù)設(shè)計(jì)和軟件設(shè)計(jì)畢竟有很多不同之處。)數(shù)據(jù)庫(kù)設(shè)計(jì)規(guī)格說(shuō)明驗(yàn)證的重點(diǎn)任務(wù)是驗(yàn)證數(shù)據(jù)庫(kù)與外部應(yīng)用程序的接口是否正確、數(shù)據(jù)操作實(shí)現(xiàn)界面是否清晰、數(shù)據(jù)庫(kù)整體設(shè)計(jì)是否合理、數(shù)據(jù)表設(shè)計(jì)是否符合 3NF 要求(如違反范式要說(shuō)明詳細(xì)理由)以及數(shù)據(jù)表中的字段(鍵)和索引的設(shè)計(jì)是否合理等等。完成設(shè)計(jì)規(guī)格說(shuō)明以后,下一步要做代碼驗(yàn)證。
代碼驗(yàn)證的內(nèi)容包括:代碼編寫(xiě)規(guī)范審查、代碼審查和代碼靜態(tài)分析三個(gè)部分。代碼編寫(xiě)規(guī)范審查主要是審核代碼排版的格式以及注解的格式是否符合開(kāi)發(fā)團(tuán)隊(duì)的相應(yīng)規(guī)范;代碼審查的任務(wù)主要是驗(yàn)證詳細(xì)設(shè)計(jì)中的軟件單元是否都已被代碼覆蓋并正確實(shí)現(xiàn),并且代碼中不含冗余物;代碼靜態(tài)分析技術(shù)主要任務(wù)是檢查變量或標(biāo)號(hào)的定義與使用、表達(dá)式運(yùn)算以及程序的流程設(shè)計(jì)上是否存在缺陷或錯(cuò)誤。
做完代碼驗(yàn)證以后,軟件系統(tǒng)需要依次做單元測(cè)試、集成測(cè)試和系統(tǒng)測(cè)試,這部分內(nèi)容屬軟件確認(rèn)技術(shù)范疇,下面有專(zhuān)門(mén)的論述。軟件系統(tǒng)在做完系統(tǒng)測(cè)試后,就面臨著交付使用的問(wèn)題,在系統(tǒng)正式移交給用戶(hù)之前,還需要做交付驗(yàn)證和交付測(cè)試。交付測(cè)試技術(shù)下文有專(zhuān)門(mén)的論述,不贅述,這里主要談交付驗(yàn)證技術(shù)。交付驗(yàn)證包括安裝驗(yàn)證和使用驗(yàn)證兩部分內(nèi)容。其中,安裝驗(yàn)證的主要任務(wù)是保證程序能按照用戶(hù)手冊(cè)的提示正確安裝到目標(biāo)機(jī)器上,使用驗(yàn)證的主要任務(wù)是確保程序能按照用戶(hù)手冊(cè)的提示的操作正確完成某項(xiàng)功能或事務(wù)處理。這兩部分工作通常是由測(cè)試人員完成的,用以核實(shí)相關(guān)安裝和使用手冊(cè)是否正確無(wú)誤。
4.2 在 CraftGS 項(xiàng)目中應(yīng)用軟件確認(rèn)技術(shù)
CraftGS 中應(yīng)用的軟件確認(rèn)技術(shù)包括單元測(cè)試技術(shù)、集成測(cè)試技術(shù)、系統(tǒng)測(cè)試技術(shù)和交付測(cè)試技術(shù)。
其中單元測(cè)試的主要任務(wù)是驗(yàn)證詳細(xì)設(shè)計(jì)規(guī)格說(shuō)明中所劃分出來(lái)的軟件單元是否被程序編制人員用代碼形式正確地實(shí)現(xiàn)了。這里軟件單元可能是某個(gè)函數(shù)(或稱(chēng)方法)也可能是某個(gè)抽象數(shù)據(jù)類(lèi)型(如類(lèi)、數(shù)據(jù)結(jié)構(gòu)或者模板)。單元測(cè)試在實(shí)際測(cè)試當(dāng)中也常常被稱(chēng)為類(lèi)測(cè)試(在面向?qū)ο蟮脑O(shè)計(jì)中)或白盒測(cè)試(白盒的意思是面向代碼)。單元測(cè)試的工作原理是建構(gòu)樁模塊和驅(qū)動(dòng)模塊以驅(qū)動(dòng)被測(cè)單元運(yùn)行,然后,測(cè)試人員輸入設(shè)計(jì)好的測(cè)試用例,測(cè)試被測(cè)單元能否按照設(shè)計(jì)要求處理這些測(cè)試用例,對(duì)出現(xiàn)異常的測(cè)試用例,測(cè)試人員應(yīng)做記載并反饋給軟件開(kāi)發(fā)團(tuán)隊(duì)。
做完單元測(cè)試以后,下一步的工作是對(duì)照軟件概要設(shè)計(jì)規(guī)格說(shuō)明,驗(yàn)證各軟件單元組裝后形成模塊能否達(dá)到概要設(shè)計(jì)規(guī)格說(shuō)明中模塊的設(shè)計(jì)目標(biāo);在模塊級(jí)集成工作完成之后,測(cè)試人員還應(yīng)測(cè)試各模塊組裝后形成的用戶(hù)系統(tǒng)內(nèi)部存在沖突,各模塊能否正常工作。這里,模塊可能是指某個(gè)軟件部件,也可能是指某個(gè)或某幾個(gè)分系統(tǒng)。通常在做集成測(cè)試時(shí)先是從分系統(tǒng)內(nèi)部的集成測(cè)試開(kāi)始做起,做完以后再測(cè)試各分系統(tǒng)是否能集成為Z終要實(shí)現(xiàn)的大系統(tǒng)。也有其他做法(如自頂向下集成測(cè)試方法、核心系統(tǒng)先做集成測(cè)試或每日集成測(cè)試等等)。總之,萬(wàn)變不離其宗。集成測(cè)試要保證模塊的內(nèi)部正確性以及保證模塊能Z終集成為大系統(tǒng)。集成測(cè)試有時(shí)也被稱(chēng)為組裝測(cè)試(在型號(hào)軟件中)或灰盒測(cè)試(有人認(rèn)為集成測(cè)試介于白盒與黑盒之間)。
做完集成測(cè)試以后,下一步工作就是做系統(tǒng)測(cè)試。系統(tǒng)測(cè)試的主要任務(wù)是驗(yàn)證經(jīng)集成測(cè)試后形成的軟件系統(tǒng)是否滿(mǎn)足軟件需求規(guī)格說(shuō)明中的各需求項(xiàng)。這些需求項(xiàng)包括:業(yè)務(wù)需求、功能需求、非功能性需求(如:性能、可靠性、安全性、系統(tǒng)維護(hù)等方面的要求)以及一些約束性需求(如開(kāi)發(fā)標(biāo)準(zhǔn)、編程語(yǔ)言、通訊協(xié)議)等等。由于需求項(xiàng)涉及的領(lǐng)域很廣泛,這就導(dǎo)致了系統(tǒng)測(cè)試中對(duì)應(yīng)的測(cè)試門(mén)類(lèi)相當(dāng)龐雜。如:功能測(cè)試、執(zhí)行路徑測(cè)試、可靠性測(cè)試、壓力測(cè)試、可恢復(fù)性測(cè)試、可移植性測(cè)試等等。這些測(cè)試Z顯著的特征是在一定環(huán)境條件下(如:模擬現(xiàn)場(chǎng)或條件),設(shè)計(jì)各種測(cè)試用例,輸入并運(yùn)行完整的軟件系統(tǒng),根據(jù)軟件系統(tǒng)運(yùn)行過(guò)程中的實(shí)際表現(xiàn),評(píng)估軟件系統(tǒng)是否符合軟件需求項(xiàng)的各類(lèi)要求。由于這類(lèi)測(cè)試一般不涉及內(nèi)部代碼,因此,也有人把系統(tǒng)測(cè)試稱(chēng)做是黑盒測(cè)試。
在做完系統(tǒng)測(cè)試以后,軟件產(chǎn)品就到了交付用戶(hù)使用這個(gè)階段了。交付過(guò)程中的重要一環(huán)就是交付測(cè)試,交付測(cè)試的目標(biāo)是保證用戶(hù)對(duì)所交付的系統(tǒng)的滿(mǎn)意。與前面所討論的測(cè)試不同,交付測(cè)試主要的參與者應(yīng)該是目標(biāo)客戶(hù)??蛻?hù)參與越多越好。交付測(cè)試的內(nèi)容一般包括安裝測(cè)試、可用性測(cè)試、 alpha 測(cè)試、 beta 測(cè)試等。其中安裝測(cè)試的主要任務(wù)是測(cè)試軟件系統(tǒng)能否在模擬環(huán)境下或?qū)嶋H現(xiàn)場(chǎng)由目標(biāo)用戶(hù)順利完成在目標(biāo)機(jī)器上的安裝;可用性測(cè)試的主要任務(wù)是測(cè)試軟件系統(tǒng)在完成安裝以后能否完成用戶(hù)的模擬任務(wù)或現(xiàn)場(chǎng)任務(wù); alpha 測(cè)試采用的形式一般是由一個(gè)用戶(hù)在開(kāi)發(fā)環(huán)境下對(duì)軟件系統(tǒng)進(jìn)行類(lèi)似于黑盒的測(cè)試,測(cè)試的目的是從用戶(hù)的角度評(píng)價(jià)軟件產(chǎn)品的功能、可使用性、可靠性、性能和支持,尤其注重產(chǎn)品的界面和特色; beta 測(cè)試采用的形式一般是先由軟件的多個(gè)用戶(hù)在實(shí)際使用環(huán)境下使用 beta 版軟件系統(tǒng)一段時(shí)間,然后把使用中出現(xiàn)的各類(lèi)故障或缺陷反饋給 beta 測(cè)試負(fù)責(zé)人員,再由測(cè)試負(fù)責(zé)人員移交給軟件,由開(kāi)發(fā)人員負(fù)責(zé)修正并完善軟件系統(tǒng)。 Beta 測(cè)試的目的是確保軟件產(chǎn)品交付給全體用戶(hù)之前能部分或全面地修正其在實(shí)際應(yīng)用中可能出現(xiàn)的各類(lèi) BUG 或不足。
4.3 在 CraftGS 項(xiàng)目中應(yīng)用軟件測(cè)試管理技術(shù)
一如前文所述,測(cè)試技術(shù)解決了測(cè)試采用的方法和技術(shù)問(wèn)題,然而,對(duì)于一個(gè)工程而言,還需要相應(yīng)的測(cè)試管理才能保證各項(xiàng)測(cè)試活動(dòng)的有序開(kāi)展。因此,在 CraftGS 項(xiàng)目中,軟件測(cè)試管理技術(shù)要解決的問(wèn)題是如何確保軟件測(cè)試技術(shù)(包括軟件驗(yàn)證技術(shù)和軟件確認(rèn)技術(shù))能在軟件項(xiàng)目在軟件生命內(nèi)得到順利實(shí)施,并產(chǎn)生預(yù)期的效果。
按照軟件測(cè)試管理面對(duì)的管理對(duì)象的差異,軟件測(cè)試管理技術(shù)大致分為軟件測(cè)試團(tuán)隊(duì)組織管理、軟件測(cè)試計(jì)劃管理、軟件缺陷(錯(cuò)誤)跟蹤管理以及軟件測(cè)試件管理四大部分。以下一一詮釋?zhuān)?nbsp;
軟件測(cè)試團(tuán)隊(duì)組織管理通俗地講就是測(cè)試團(tuán)隊(duì)?wèi)?yīng)該如何組建。在實(shí)際項(xiàng)目開(kāi)發(fā)中,我們常??吹接行﹩挝缓鲆暅y(cè)試團(tuán)隊(duì)存在的意義,當(dāng)要實(shí)施測(cè)試時(shí),往往臨時(shí)找?guī)讉€(gè)程序員充當(dāng)測(cè)試人員;也有些單位盡管認(rèn)識(shí)到了組建測(cè)試團(tuán)隊(duì)的重要性,但在具體落實(shí)的時(shí)候往往安排一些毫無(wú)開(kāi)發(fā)經(jīng)驗(yàn)的行業(yè)新手去做測(cè)試工作,這常常導(dǎo)致測(cè)試效率的低下,測(cè)試人員對(duì)測(cè)試工作索然無(wú)味。 CraftGS 項(xiàng)目的測(cè)試團(tuán)隊(duì)首先聘有一名的測(cè)試領(lǐng)域?qū)<?,他具有極為豐富的航天項(xiàng)目軟件測(cè)試經(jīng)驗(yàn),對(duì)軟件開(kāi)發(fā)過(guò)程中常見(jiàn)的缺陷或錯(cuò)誤了然于胸,此外,他還具有較好的親和力和人格魅力。其次, CraftGS 項(xiàng)目測(cè)試團(tuán)隊(duì)還具有很多具備一技之長(zhǎng)的成員,如對(duì)某些自動(dòng)化測(cè)試工具運(yùn)用嫻熟或能輕而易舉地編寫(xiě)自動(dòng)化測(cè)試腳本。另外,測(cè)試團(tuán)隊(duì)還聘有兼職成員。如驗(yàn)證測(cè)試實(shí)施過(guò)程中,同行評(píng)審是Z常使用的一種形式,這些同行專(zhuān)家就屬于兼職測(cè)試團(tuán)隊(duì)成員的范疇。至于測(cè)試團(tuán)隊(duì)里里的測(cè)試新手,這部分人可以安排去從事交付驗(yàn)證或黑盒測(cè)試之類(lèi)的工作。
軟件測(cè)試計(jì)劃管理通俗地講就是安排好測(cè)試流程。這部分內(nèi)容具體涵蓋軟件測(cè)試策劃、軟件測(cè)試技術(shù)剪裁、測(cè)試進(jìn)度管理、成本管理等幾個(gè)部分。其中測(cè)試策劃工作主要是指具體測(cè)試活動(dòng)實(shí)施之前做好策劃工作,如起草測(cè)試大綱以及測(cè)試計(jì)劃;軟件測(cè)試技術(shù)剪裁工作主要是指測(cè)試團(tuán)隊(duì)?wèi)?yīng)根據(jù)軟件項(xiàng)目的具體實(shí)際剪裁出所要實(shí)施的測(cè)試技術(shù);測(cè)試進(jìn)度管理工作主要是指排出各項(xiàng)測(cè)試的時(shí)間進(jìn)度及人員安排,如有變動(dòng)時(shí)應(yīng)做相應(yīng)調(diào)整;測(cè)試成本管理工作的內(nèi)容即開(kāi)列出測(cè)試活動(dòng)中會(huì)涉及到的資源需求。 CraftGS 項(xiàng)目測(cè)試團(tuán)隊(duì)較好地按照上述要求,完成了軟件測(cè)試計(jì)劃管理。
軟件缺陷(錯(cuò)誤)跟蹤管理通俗地講就是確保發(fā)現(xiàn)的缺陷(錯(cuò)誤)已經(jīng)被開(kāi)發(fā)團(tuán)隊(duì)糾正或處理過(guò)并且沒(méi)有引入新的缺陷(錯(cuò)誤)。具體來(lái)講,當(dāng)測(cè)試團(tuán)隊(duì)通過(guò)各種途徑發(fā)現(xiàn)了文檔或代碼中的缺陷或錯(cuò)誤以后,并不是交一份測(cè)試報(bào)告就草草了事,而是在遞交報(bào)告以后繼續(xù)督促開(kāi)發(fā)團(tuán)隊(duì)及時(shí)關(guān)閉已知缺陷或錯(cuò)誤(當(dāng)然,如有必要應(yīng)對(duì)這些缺陷、錯(cuò)誤做嚴(yán)重程度排序,以便開(kāi)發(fā)團(tuán)隊(duì)能視輕重緩急安排處理順序)。當(dāng)開(kāi)發(fā)團(tuán)隊(duì)關(guān)閉了測(cè)試報(bào)告中的缺陷(錯(cuò)誤)以后,測(cè)試團(tuán)隊(duì)還需驗(yàn)證開(kāi)發(fā)團(tuán)隊(duì)在關(guān)閉過(guò)程中有沒(méi)有引入新的錯(cuò)誤。通常,這個(gè)過(guò)程稱(chēng)為回歸測(cè)試。回歸測(cè)試如發(fā)現(xiàn)問(wèn)題,繼續(xù)報(bào)開(kāi)發(fā)團(tuán)組,按上述流程循環(huán),直至回歸測(cè)試Z終通過(guò)。這部分工作在 CraftGS 項(xiàng)目中是使用自動(dòng)化的測(cè)試管理工具完成的,(市面上可選擇的工具有 華創(chuàng)缺陷管理系統(tǒng) (BMS) 和 Rational ClearQuest 等等 ),這么做非常有效率。
軟件測(cè)試件管理通俗地講就是指努力建設(shè)好測(cè)試團(tuán)隊(duì)的財(cái)富庫(kù)并對(duì)測(cè)試團(tuán)隊(duì)成員進(jìn)行技能培訓(xùn)以幫助他們能使用好這個(gè)財(cái)富庫(kù)。這里,財(cái)富庫(kù)是指軟件測(cè)試件。測(cè)試件( Testware ,指測(cè)試工作形成的產(chǎn)品)是一個(gè)不常見(jiàn)到的詞匯,它包括是測(cè)試團(tuán)隊(duì)在長(zhǎng)期實(shí)踐過(guò)程中逐步積累起來(lái)的經(jīng)驗(yàn)教訓(xùn)、測(cè)試技巧、測(cè)試工具、規(guī)格文檔以及一些經(jīng)過(guò)少量修改能推廣至通用的測(cè)試腳本程序。測(cè)試件管理工作做得越好,測(cè)試團(tuán)隊(duì)在實(shí)際測(cè)試過(guò)程中就能越少走彎路,測(cè)試團(tuán)隊(duì)內(nèi)部的知識(shí)交流和傳遞就越充分,測(cè)試腳本或規(guī)格文檔的重復(fù)開(kāi)發(fā)工作也就能被有效地避免。軟件測(cè)試件管理工作包括兩部分,一是建設(shè),另一個(gè)是培訓(xùn)。建設(shè)工作大抵是收集各類(lèi)測(cè)試外文檔、測(cè)試工具、測(cè)試腳本,也包括收集整理測(cè)試人員的會(huì)議發(fā)言、總結(jié)報(bào)告、技術(shù)心得等等。培訓(xùn)工作大抵是通過(guò)技術(shù)講座、正式或非正式團(tuán)隊(duì)會(huì)議、印發(fā)學(xué)習(xí)資料等形式進(jìn)行。 CraftGS 項(xiàng)目組考慮到測(cè)試團(tuán)隊(duì)的長(zhǎng)久發(fā)展,較好地完成了測(cè)試件管理,測(cè)試團(tuán)隊(duì)成員的技能水平在較短的時(shí)間內(nèi)都有了非常迅速的進(jìn)步。
5 結(jié)語(yǔ):高可靠性軟件測(cè)試技術(shù)需要更多關(guān)注