匡婷
(中國船舶重工集團公司第七一五研究所 浙江省杭州市 310000)
隨著信息技術的高速發展和廣泛應用,軟件在武器裝備系統中的作用日益重要,軟件一旦失效,就可能導致整個系統發生故障,對于可靠性和安全性要求高的武器裝備來說,可能導致災難性的后果[1]。目前,軟件的質量形勢嚴峻,在文獻[2]中指出“導致軟件項目失敗的主要原因與技術和工具沒有任何關系,更多的是缺乏過程規范”。因此,各軍用軟件承研單位對自身軟件研制過程的規范性也日益重視。GJB 5000A 等級是衡量組織軍用軟件研制能力的重要依據,其中PPQA 是一個重要的過程域,它對所有軟件過程活動和工作產品起著監督指導作用,并且為組織軟件過程改進提供來自項目基層的第一手信息。在推廣GJB 5000A 過程中,軟件質量保證活動是一個占用時間精力多、短期效果不明顯的過程活動。本文通過探討實施軟件質量保證活動過程中存在的問題,提出改進PPQA實施效果的關鍵。
為得到客觀真實的PPQA 過程域存在的問題情況,匯總了本單位近5年來內部評估和年度監督評價關于PPQA 過程域存在的問題,按實踐分類,統計結果見表1。
從表1 中可以看出問題主要集中體現在PPQA 過程域的專用實踐SP1.1、SP1.2、SP2.1、SP2.2 中,部分項目在共用實踐GP2.2、GP2.4、GP2.5、GP2.10 也產生了問題。
從組織層、項目層、QA(項目質量保證人員)三個層面分析上述問題。組織層面的原因有:體系文件規定不到位、提供的檢查表單不適用、領導不重視、未提供適用的工具;項目組層面的原因有:項目組執行力不足,未積極配合支持QA 的工作;QA 層面的原因有:QA 客觀獨立性不足、技能水平不足、溝通能力不足、未及時完成評價或記錄。從而得到問題原因對照表見表2。
通過上文的分析,制定滿足標準符合組織實際情況的體系文件,編制適用的檢查表單,充分發揮領導作用,充分利用工具提高效率,項目組充分理解并積極配合QA 的工作,保證軟件質量保證工作的客觀性,提升QA 的專業技能水平,進行及時有效的溝通交流以及及時開展軟件質量保證評價工作,方可避免上述問題,從而進一步改進組織開展軟件質量保證工作的有效性。
組織體系文件制定不到位往往是由于體系編制人員對標準的理解有偏差造成的。從表2 中可以看出由于體系文件規定不到位而產生的問題主要集中在共用實踐中。一般關于共用實踐的要求不會單獨成文,它們會被分散在各相關體系文件或組織規章制度中,從而會被忽視或遺漏。如GP2.5“培訓人員”的要求通常會在人事部門關于人員培訓的規章制度中規定。因此,在制定體系文件時,文件編制人員應對照標準逐條核對,確保無偏差、無遺漏。
QA 的大部分工作是對照組織提供的檢查表單對過程活動或工作產品進行評價。檢查單應因地制宜,根據組織要求和項目特點制定,并根據使用過程中出現的問題不斷優化。檢查表單設置的檢查項應明確、無歧義、有目的性、能夠得出結論。如“每項功能是否詳細描述了輸入、處理、輸出及內部生成數據?是否可測?”該檢查項關于“功能的輸入、處理、輸出及內部生成數據是否可測”,QA 難以得出結論,應在評審軟件需求規格說明時關注該問題,由同行專家和軟件測試組給出是否可測的結論。適用的檢查單可幫助QA 提高工作效率和評價有效性。
“領導作用”作為質量管理七大原則之一,在組織質量管理過程中有著舉足輕重的地位。在GJB 5000A 推廣實施中同樣需要領導發揮帶頭作用。領導應在思想上認同軟件過程改進工作,從而帶動整個組織對軟件過程改進、軟件質量保證工作的認同。首先,領導應確保質量保證工作的人力、物力資源是充分的。其次,領導層應考慮將軟件過程改進工作納入單位考核,明確獎懲,為從事軟件工程化工作的人員提供職業發展方向,不僅能提高相關人員的工作積極性,保證軟件過程質量,還能形成良好的競爭氛圍,推動軟件過程持續改進。最后,領導層應保證QA 獨立向上匯報的渠道,保證不符合項能得到及時有效的處理,最終達到保證軟件產品質量的目的。
“磨刀不誤砍柴工”,好的工具可以事半功倍。對軟件質量保證工作而言,工具也很重要。首先,QA 需要交流跟蹤不符合項的解決,利用工具自動跟蹤不符合項的處理,就可以有效避免遺漏或未及時跟蹤驗證的情況。其次,軟件質量保證工作需建立記錄,還需要統計分析數據得出質量趨勢,靠人工統計分析,不但費時費力,而且難以保證數據的一致性和準確性,利用工具可及時建立準確無誤的記錄。另外,QA 對軟件代碼的檢查也可以結合軟件單元測試工具進行靜態分析得到的結果給出評價結論。利用軟件測試工具,可以給出客觀有價值的代碼評價意見。
QA 對于項目組來說具有兩面性,既能促使項目組順利的開展工作,也要求不滿足規范的項目花時間和精力整改。如果項目負責人認可軟件過程改進,就會要求項目組按照GJB 5000A 的要求開展項目,那么QA 將促使項目朝著滿足標準規范的方向順利開展。如果軟件負責人并不認可軟件過程改進,甚至存在抵抗心理,對項目組要求松懈,在項目開展過程中自然會出現表里不一的情況,那么QA 將會成為項目的“阻礙”。在實踐過程中,往往注重結果,不重視過程,由于項目進度緊張,而實施軟件質量保證工作會占用大量時間,軟件質量保證工作常常被弱化或走過場。事實上,軟件質量保證評價是軟件產品質量的第一道防線,及時有效的開展軟件質量保證工作可預防缺陷減少項目組后期排故的工作量。軟件質量保證工作及時有效的開展,離不開項目組的理解與支持。項目組只有按計劃完成工作任務,QA 才能按計劃完成評價任務,項目才能按計劃有條不紊的開展;項目組只有與QA 積極溝通,在規定期限內解決不符合項,不符合項才能及時關閉,軟件質量才能得到保證。

表1:PPQA 過程域存在的問題

表2:問題原因對照表
客觀性是PPQA 工作成功的關鍵,客觀性通過獨立性和準則兩方面來達到[2]。獨立性是項目QA 應獨立于項目組甚至獨立于項目所在的部門,并且具有獨立的向組織適當層次領導上報的渠道。如果QA 不具備獨立性,QA 會礙于情面,無法從第三方的角度給出客觀的評價結果,也無法將問題向上層反饋,從而導致軟件質量保證工作毫無意義。準則是指開展軟件質量保證評價的依據,一般包括標準、規程、規范、組織體系要求等。只有具備獨立性的QA 嚴格依據準則開展軟件質量保證工作,才能有效監督軟件過程活動、客觀審核軟件工作產品、及時關閉不符合項,從而達到保證最終產品質量的目的。
一般來說在推廣GJB 5000A 之初,QA 是組織內少有的明白人。QA 的專業水平往往決定著開展軟件質量保證工作的效果。QA 不僅需要監督評價軟件過程活動和軟件工作產品,還需指導項目的實施。因此對QA 的綜合素質要求較高,不僅需要全面掌握標準、規程、組織體系的要求,還需熟悉項目策劃、軟件估計、需求分析、軟件設計、軟件測試的方法和常見的編程語言。QA 要做好軟件質量保證工作,除了專業技能外,還應具備一定的項目實踐經驗,這樣在開展評價工作時,才能抓住重點、提高效率。
溝通能力是QA 的又一項重要技能。一方面,及時有效的溝通是確保解決不符合項的關鍵。處理不符合項難免會出現反復的情況,QA 在尊重項目組工作成果的同時應堅持原則,把握好分寸。即使上報問題,也應做到客觀、公正、嚴謹、準確。另一方面,QA 是軟件過程改進的實踐者,在項目實施過程中,部分不符合項是由組織體系文件存在問題而導致,QA 應及時與軟件工程過程組(EPG)溝通,反饋問題。另外,在QA 開展工作過程中發現體系文件與標準不一致或檢查表單不適用等情況也應及時反饋至EPG。QA 反饋的信息可作為組織軟件過程改進的第一手材料。
QA 的評價工作具有實時性,應及時開展。QA 對工作產品的評價在工作產品完成后即進行,若未及時完成評價,一方面影響項目組下一步工作的開展,另一方面,未評價的工作產品直接進行評審會導致評審的效率很低,甚至需要重新組織評審。QA 對過程活動的評價在時機到達時就應開展,部分過程活動如項目監控、風險管理的評價頻率為周,如果本周應進行的過程評價未進行,本應及時發現的不符合項推遲一周才發現,會導致不符合項嚴重程度上升,糾正困難。
組織在全面推廣GJB5000A 時,PPQA 過程域是其中重要的一環,它不僅監督項目開展的所有過程保障軟件產品的質量,還為組織軟件過程改進工作提供來自項目層面的重要參考信息。經上文的分析,有效開展軟件質量保證工作離不開組織層、項目層和QA 三方面的努力。組織層應提供準確全面的體系文件、適用的檢查表單、合適的工具,并且領導層應充分重視;項目層應積極配合QA 的工作,不拖沓不推諉;QA 本身在保證提供客觀評價的同時應提升自身的專業技術水平,及時開展評價、通過有效溝通及時關閉不符合項。通過組織層、項目層和QA 三方面的共同努力,不但保證軟件質量保證工作的效果,還有利于組織軟件過程的持續改進。