董 曦,李 磊
(1.中國船舶重工集團公司 第723研究所,江蘇 揚州 225001;2.中國航空無線電電子研究所,上海 200233)
軍用軟件研制過程中,軟件合格性測試是保證軟件質(zhì)量的重要手段。隨著軟件規(guī)模和復(fù)雜性的增大、軟件開發(fā)交付周期縮短,軟件合格性測試的工作強度也隨之增大。然而,軟件合格性測試是一項非常繁瑣并且復(fù)雜的工作。如何才能提高測試的效率和質(zhì)量已經(jīng)成為軟件測試工作人員最為關(guān)注的問題。軍用軟件研制能力成熟度模型,也稱GJB5000A,提供了一個軟件工程方法的框架。其中,GJB 5000A二級PPQA過程域為軟件研制過程中的質(zhì)量保證提出了指導(dǎo)。由此借鑒,將PPQA應(yīng)用于軟件合格性測試過程,同樣能夠極大地提高軟件合格性測試的過程和產(chǎn)品質(zhì)量。
GJB 5000A的全稱是軍用軟件研制能力成熟度模型,它是一個為軟件組織在其開發(fā)和維護過程中獲得控制并向軟件工程和優(yōu)秀管理的文化進化提供指南的模型。GJB 5000A的體系結(jié)構(gòu)由成熟度等級、關(guān)鍵過程域、過程能力和關(guān)鍵實踐等內(nèi)容構(gòu)成[1]。圖1描述了構(gòu)成GJB 5000A的5個成熟度等級。
在GJB 5000A二級的7個過程域中,PPQA過程域主要為了客觀的評價過程和產(chǎn)品,在評價過程中標識不符合項并與相關(guān)人員溝通,最終確保不符合項得到解決[2]。PPQA過程域相應(yīng)的專用目標和專用實踐如圖2所示。
圖2 PPQA的專用目標和專用實踐
軟件合格性測試是在軟件配置項的真實或仿真運行環(huán)境下,主要考核軟件功能之間能否協(xié)調(diào)正確地工作,是否滿足軟件研制任務(wù)書和軟件需求規(guī)格說明的要求。測試的主要類型有:功能測試、性能測試、邊界測試、接口測試、余量測試、安全性測試、恢復(fù)性測試、人機界面測試、強度測試、安裝性測試、代碼審查、文檔審查等。
軟件合格性測試有自己的生命周期模型,即軟件測試過程。一般情況,軟件合格性測試遵循著測試策劃、測試設(shè)計與實現(xiàn)、測試執(zhí)行、測試總結(jié)的過程,執(zhí)行項目的過程有一定的項目管理活動作為支持,如:配置管理、質(zhì)量保證、測量分析等[3-5]。軟件合格性測試過程如圖3所示。
圖3 典型合格性測試過程
PPQA作為項目管理的一種,是對軟件合格性測試的全生命周期進行質(zhì)量保證活動。在軟件合格性測試期間,QA人員依據(jù)檢查單對軟件合格性測試中產(chǎn)生的所有工作產(chǎn)品,如測試文檔、測試代碼等,以及測試過程、測試評審會等都要進行檢查并建立記錄,對于不符合項要及時交流確保解決。
在軟件合格性測試的過程中,涉及的人員包括測試方領(lǐng)導(dǎo)、測試項目組長、測試人員、測試配置管理員、項目QA。在一些測評機構(gòu)中,往往由測評中心QA擔任所有測試項目QA,因此,本文人員角色劃分也以此為例,如圖4所示。
項目QA對測試項目中的每個參與者都有權(quán)進行審查。并且,QA人員有獨立上報的途徑,即不符合項歸零過程中有意見不一致的情況下,可以與測試項目組長和測試方領(lǐng)導(dǎo)反映,由領(lǐng)導(dǎo)最終定奪。
圖4 軟件合格性測試角色劃分
軟件合格性測試的初期活動為測試策劃。測試策劃的主要工作為根據(jù)項目的實際情況,對被測軟件的被測試項和測試類型有所定義,對被測項目所需要的人力、物力資源、技術(shù)特點等提出基本的要求,再根據(jù)部門可以劃撥的資源進行統(tǒng)籌的計劃制定。這一階段所產(chǎn)生的測試工作產(chǎn)品主要有《軟件合格性測試計劃》。
QA人員所做的主要工作是對《軟件合格性測試計劃》的檢查;主要關(guān)注點為是否符合國軍標的要求,是否符合單位體系文件中的模板格式,是否給出了測試依據(jù),測試是否充分,是否有對測試環(huán)境的要求,資源計劃是否合理等。各單位可以根據(jù)實際情況本地化自己的檢查單。
QA人員也要測試人員日常的測試過程做出審查,如周報、月報是否填寫,月例會有沒有召開。另外,對《軟件合格性測試計劃》評審會這項活動要審查,對于此過程的檢查內(nèi)容包括評審會召開時間是否合理、參與人員是否到齊等。
測試設(shè)計與實現(xiàn)的主要工作包括根據(jù)評審之后的《軟件合格性測試計劃》編寫《軟件合格性測試說明》,設(shè)計測試用例,編寫測試代碼,搭建測試環(huán)境等。《軟件合格性測試說明》評審入庫標志著測試設(shè)計與實現(xiàn)階段的結(jié)束。
QA人員審查的主要內(nèi)容有:對《軟件合格性測試說明》文檔內(nèi)容是否與計劃相符合,測試用例、測試代碼是否正確、合理、有效、并且覆蓋充分,測試環(huán)境是否達到測試要求等?,F(xiàn)階段的資源、進度實施是否與計劃相一致等。
同樣,QA人員也要測試人員的個人周報、月報是否填寫,項目月例會有沒有召開等做出審查。對于《軟件合格性測試說明》的評審會這一過程活動的審查,基本與前期評審會一致。
另外,測試人員可以增加Review環(huán)節(jié),互相審查對方的測試用例和測試代碼,從技術(shù)角度排查出潛在問題,進一步加強質(zhì)量控制。
測試執(zhí)行階段是通過執(zhí)行所有測試用例,得出測試用例執(zhí)行結(jié)果,根據(jù)結(jié)果分析并且與開發(fā)人員溝通,提出問題報告反饋開發(fā)方,回歸測試直到所有問題歸零、所有測試用例執(zhí)行通過的一個循環(huán)過程。此時,QA人員應(yīng)該關(guān)注測試人員測試的規(guī)范性、測試用例執(zhí)行情況。檢查是否所有測試用例都按照測試步驟逐一執(zhí)行完畢,檢查測試人員是否如實記錄測試結(jié)果,檢查測試過程是否符合軟件測試計劃的要求,檢查合格性測試發(fā)現(xiàn)的BUG是否提交給責任人,檢查責任人是否對測試發(fā)現(xiàn)的BUG修改文檔或代碼,檢查軟件修改后是否進行了回歸測試等。對不符合要求的測試行為,給出不符合項,直到不符合項解決。
測試總結(jié)過程是為了評估測試效果和被測軟件項,描述測試狀態(tài)。測試總結(jié)階段的產(chǎn)品為通過評審后的《軟件合格性測試報告》?!盾浖细裥詼y試報告》是一份重要的文檔,是根據(jù)實際測試全過程對被測軟件的客觀評價以及本次測試活動的總結(jié)。
對于《軟件合格性測試報告》,QA人員可以關(guān)注其與國軍標、體系文件的符合性,文檔上下文、術(shù)語、概念的一致性,與其他文檔的可追蹤性。還應(yīng)審查該報告是否描述了測試過程,是否給出了該軟件的總體評估,是否給出了測試中發(fā)現(xiàn)的所有遺留的缺陷、限制或約束,是否描述了測試環(huán)境與操作環(huán)境的差異,是否對被測試軟件的設(shè)計、操作或測試提出了改進建議,測試日志是否給出了測試執(zhí)行的日期、時間、地點、人員、結(jié)果記錄等。對于測試報告的評審,更應(yīng)加強對參與人員、測試結(jié)論等方面的關(guān)注。
客觀性是PPQA過程域?qū)嵤┲械囊c之一。
1)QA人員的安排上面盡量保證其獨立性。在條件允許的情況下,QA人員可以是在所有測試項目之外的獨立組織。如果單位或部門人力資源緊張,QA人員也可是其他測試項目組同行。
2)QA人員使用的主要工具為檢查單,檢查單可以由項目組長和QA人員參考單位體系文件要求結(jié)合項目特點進行裁剪。QA人員在實施質(zhì)量保證的過程中,必須嚴格按照對照模板中的檢查項,逐一排查不符合項。
PPQA活動貫穿在整個軟件合格性測試項目生命周期中,QA人員與測試項目組成員的交流、溝通必不可少。項目之初,制定項目各個檢查單的時候,就需要QA人員與測試項目組長共同商討得出。在發(fā)現(xiàn)不符合項的時候,QA人員更加需要與測試人員、測試組長進行交流,確保不符合項得以解決。在不符合項得不到解決的時候,QA人員還要有與測試方領(lǐng)導(dǎo)獨立交流的渠道。
PPQA活動對于QA人員的要求較高。
1)QA人員必須對涉及軟件合格性測試項目的所有國軍標的理解。如:GJB 438B,GJB/Z 141,GJB 2786A,GJB 5000A,GJB 5236,GJB 439等。另外,每個被測單位、每個測評部門、每個測試項目都有屬于自己的本地化要求,這就要求QA人員能夠結(jié)合項目自身特點對檢查單做出合理改動。
2)PPQA運用到軟件合格性測試之初,必然會存在許多難度與挑戰(zhàn),對QA人員有著多方面的要求,往往需要一些綜合或?qū)m椀呐嘤?xùn)工作。
本文簡單介紹了GJB 5000A模型、PPQA過程域和軟件合格性測試的基本知識,將 GJB 5000A二級PPQA過程域應(yīng)用在軟件合格性測試過程中,對具體實施方法和實施要點進行了闡述。該應(yīng)用在實際軟件合格性測試項目中,可以起到積極和重要的作用。
[1]GJB 5000A-2008, 軍用軟件研制能力成熟度模型[S]. 2008.
[2]石柱. 軍用軟件能力成熟度模型可重復(fù)級實施指南[M]. 北京:中國標準出版社, 2006.
[3]柳純錄. 信息系統(tǒng)項目管理師教程[M]. 北京:清華大學出版社, 2012.
[4]董威. 基于 CMM 的軟件測試技術(shù)及其應(yīng)用[D].上海:華東師范大學, 2005.
[5]朱艷. 基于 CMM 的軟件測試管理支持系統(tǒng)研究[D]. 大連:大連海事大學, 2006.