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