劉紅
摘要:軟件質量危機的問題伴隨著軟件的產生,一直層出不窮,從未得到過真正的解決。事實上,軟件質量保證(SQA)在整個軟件開發甚至后期的軟件使用中發揮的作用非常大。要保證軟件質量問題,要嚴格把控軟件質量的工作要求、軟件質量保證工作人員的工作內容、目前面臨的主要問題以及解決措施等幾個方面。注重每一個環節和每一個細節,并不斷提高。該文對實施相關軟件質量保證工作的相關問題進行了總結歸納。
關鍵詞:軟件質量保證;過程控制;軟件工程
中圖分類號:TP311 ? ? ? ?文獻標識碼:A
文章編號:1009-3044(2020)24-0074-02
1 引言
軟件危機的概念是20世紀70年代提出的,此后國家,企業以及學術界對軟件質量保證的研發侵入了大量的財力,物力以及人力。當然也取得了很多有效地成果。但不可否認,目前取得的成績并沒有達到我們所期望的效果。
軟件質量問題在全國乃至全球都備受關注。目前,國內許多研究院所和企業單位都為此開展了相關工作。軟件質量保證至關重要,它作為存在于軟件評審、開發、使用和維護整個過程的評價活動,在一些公共特性,如糾錯和驗證中都有很大作用,甚至很多關鍵過程域系統都離不開軟件質量。
那么,究竟什么是軟件質量,軟件質量的評價標準是什么,它的工作內容和工作要求是什么,從業人員有何責任與義務,目前軟件質量存在問題的原因是什么以及如何解決,是本文著重關注的事情。
2 軟件質量保證的概念
“反映軟件產品滿足規定需求和潛在需求能力的特征和特征的總和。”這是國際化標準組織給出的軟件質量的概念。它將軟件質量概括為以下六項特性:功能性、可靠性、易使用性、效率、可維護性和可移植性。
經過多年的研究和發展,軟件質量保證的過程目前如下:首先,要使整個項目的軟件過程透明化,管理人員可以實時監控和研究。通過根據實際項目需要,管理層需要建立一套客觀具體并且可以加以實施的方法,方法中制定的計劃標準、實時方法和具體步驟都具有可行性,可以被項目組直接采用。接下來就需要軟件質量保證組與項目負責人和工作人員一起,全程參與項目的具體實施過程,以便保證這些軟件項目能夠滿足實際生產需要和上級領導的要求。
當然,除此之外,我們還希望軟件質量保證可以作為軟件開發小組的得力助手,能夠在軟件研發甚至之后的使用中收集項目中好的實施方法,和出現問題的原因,為修改企業內部軟件開發的整體規范提供既有用又可靠的依據,同時也為本企業其他項目的工作提供思路和經驗教訓。
3 軟件質量保證的評價標準
“軟件質量保證”是指向社會和用戶提供滿意的高質量軟件產品而進行的有組織、有計劃的活動。要驗證在軟件開發和使用過程中是否遵循了合理的過程和標準,主要包括以下幾個方面:
1)對軟件開發過程實施監控以保證產品質量。
2)軟件開發過程以及開發出來的軟件要符合領導的要求,在達到目標要求的同時,要安全、高效,盡量將人力和物力成本降到最低,并符合相應標準與規程。
3)軟件產品的生產過程如若發現問題,應及時處理,如果項目內部無法解決,必要時要將問題反饋給上級。
4)確保項目組制定的計劃、標準和規程是項目組所需要的,既能通過上級領導的審核,同時也滿足評審和審計的要求。
5)在后續軟件產品使用過程中,如果發現生產問題或者效率低下的問題,應及時找出原因并糾正,即在后期產品使用時要做好售后和維修工作。
4 軟件質量保證的工作內容
我們可以通過開發項目的整個過程來認識軟件質量保證的作用和工作內容。軟件質量保證是通過過程控制來協助提高軟件運行質量,以保證獲取高質量的軟件產品,提高工作效率,最終獲得高收益。軟件質量保證的主要工作內容如下:
首先要制定軟件質量保證計劃。在項目早期,SQA工作人員應在早期例會上,按照上級領導的要求和生產中要求項目最終想要完成的作業和目標,制定出切實可行的軟件質量保證計劃,在計劃書中提前考慮到各個階段的重點,并將相應的難點和目的標記出來,方便工作人員閱讀;把每一個檢查和用于審計的產品對象,包括滿足審計條件的輸出產品標識出來。注意將計劃制定得盡量詳細,這樣更有利于今后的指導工作。
然后要組織軟件質量保證的工作評審人員,將制定完成的計劃交與評審人員進行審計。重點是審查計劃是否清晰、正確、可行。然后將通過評審的SQA計劃發送給領導層和相關技術人員。SQA工作人員也應對項目工程組成員進行有關質量保證職責和權力等方面的培訓,以便使他們明白質量保證工作的內容和要求。
接下來就是檢查項目日常活動及規程的符合性。這一環節是軟件質量保證的日常工作內容。如果只在階段點進行檢查和審計,那么出現的弊端是難以及時反映項目組的工作過程,當問題已經暴露出來并出現了不太好的結果才能進行補救,此時為時已晚。所以軟件質量保證小組要不定時地經常突擊檢查,來監督軟件項目的進展。為此,軟件質量小組最好是根據項目的規劃,將項目劃分為幾個階段,再在每個階段點之間設置若干個便于監督的跟蹤點,將跟蹤到的問題及時填寫到檢查單上,注意標明日期。工作完成后,根據檢查單來填寫相關偏離問題報告,如有必要,將問題報告上呈各層領導和相關技術人員加以指正。這樣才可以防患于未然,從根本上發現問題并及時解決。
保證項目的日常活動和規程的符合性之后,就要對檢查過程中發現的問題及時糾正和解決。項目組可以自行解決的問題就由項目組內部自行解決,如果內部無法解決,就將問題報告上交給高層領導者。
還有很重要的一點是引進相關技術。軟件質量保證小組在必要時需要引進一些相應的技術來有效確保軟件質量。這些技術涉及軟件開發的各個階段,目的是解決實際項目中出現的問題和提高效率。在具體實施中,可以對項目的技術人員進行培訓。比如,根據SQA以往的經驗總結,建議以功能點估算法代替代碼行估算法進行估算。那么就應向技術人員介紹功能點估算法的概念及如何應用。
最后,SQA還要提供過程改進的建議。比如PDCA環和在此基礎上提出的IDEAL模型,都是軟件過程改進的基本方法。在開發過程中,由開發人員記錄項目各個階段的錯誤,軟件質量保證應用一些錯誤類型分析技術,如缺陷排查效率,測試良率等,進行錯誤的收集,再進行問題歸類,統計和原因分析,然后再將問題根據解決的時間順序排序,糾正問題,形成這樣一個自反饋系統。
5 SQA工作人員的工作內容與責任
軟件質量保證人員的工作很多,內容很復雜。比如,對文檔的有效管理。項目前期,軟件質量保證方面要做很多文字方面的工作。其次,SQA工作人員的溝通協調能力也要很強。軟件質量一旦出現問題,可能會涉及很多部門和相關工作人員,此時想要解決問題,良好的溝通必不可少。同時,工作人員要熟悉軟件開發過程,以及單位內部已有的過程規范。質量保證人員會參與到評審分配需求中,與項目軟件經理一起確定適合項目使用的一系列計劃和章程。項目級質量保證人員還要在固定時間(一般以周為單位),對所有正使用的軟件,其工作中的運行過程及相關活動進行評價,提前提示項目工程組成員依據之前制定好的行動計劃和開發標準展開一系列的活動并進行監督,減少和避免問題的發生。
SQA工作人員還要參與到軟件的測試過程。包括:單元測試,集成測試,系統測試和驗收測試等。所謂單元測試,就是用程序員編寫審查代碼來代替傳統的動態單元測試。集成測試時要判斷該項目的集成測試計劃是否與之前已有的測試計劃有沖突以及是否覆蓋了內外部接口,如果是配置項級或系統級集成,那么還要判斷工作環境與計劃環境是否一致,如果不一致,是否會影響結果的輸出。系統測試是指判斷測試環境是否與計劃環境一致,以及是否完成了系統測試計劃中規定的全部測試,未完成時是否進行了分析和說明。驗收測試要注意的問題是,驗收前軟件是否生產完成,軟件是否符合批準,驗收的產品是否出自產品庫。如果在測試過程中SQA工作人員發現不符合規范的項目,應告知責任人,對不能在項目內解決的問題逐級上報,這個過程中工作人員要一直跟蹤直到問題完全解決,并編輯成報告進行記錄,關閉問題。
除上述工作內容之外,對項目中出現的意外和緊急情況處理的應急反應、協助公司的ISO或CMM認證、軟件質量保證工作的使用等等,也都是SQA人員的工作范疇。作為一名SQA人員,應及時介入項目,積極與項目組合作,不僅要熟練掌握業務知識,而且要具有一定的業務技巧,靈活運用CMM的標準,才能保證軟件產品的質量和可靠性,逐步提高軟件過程的成熟度。
6 結束語
目前,從國際市場上看,軟件加工行業的人才處于緊缺形式,軟件開發的發展潛力和發展空間非常大,而我國目前軟件技術在世界上來說雖沒有達到引領行業發展的水平,但也處于相對先進的地位。再加上我國軟件技術人員普遍具有良好的專業技術和職業素養,勞動成本相對發達國家又相對低廉,因此國際上很多國家都很有意愿跟我們國家進行合作,開展人才共同培養。只要組織得法,技術先進,迅速發展軟件加工出口,就會有良好的發展前景。毫無疑問,軟件企業的SQA工作是重要而且必要的,所以軟件企業應該倡導、推行和建立規范的質量保證體系,以提高軟件企業的綜合實力和競爭力。
參考文獻:
[1] 陳宏剛,林斌.軟件開發的科學與藝術[M].北京:電子工業出版社,2002.
[2] Philip Metzger,John Boddie.軟件項目管理:過程控制與人員管理[M]. 陳勇強,費琳,譯.北京:電子工業出版社,2002.
[3] 張維迎.產權、政府與信譽[M].北京:三聯書店,2001.
[4] 卡納基梅隆大學軟件工程研究所.能力成熟度模型(CMM):軟件過程改進指南[M].劉孟仁,譯.電子工業出版社,2001.
【通聯編輯:代影】