軟件質量保證(即SQA——Software Quality Assurance),是CMM2級中的一個關鍵過程域,它是貫穿整個軟件過程的第三方獨立審查活動,出現在大多數關鍵過程域的檢查與驗證的公共特性中,在整個軟件開發過程中充當重要角色。從CMM2級中包含的6個關鍵過程域來看,無論是需求管理、軟件項目計劃、軟件項目跟蹤與監控,還是軟件子合同管理、軟件配置管理,都不同程度地存在于我們現在正在進行的軟件項目開發過程中,對于它們的了解我們已經不再陌生,只有SQA這個關鍵過程域,是在我們準備以CMM2級要求的關鍵過程域為基礎進行軟件過程改進前未接觸過的。在很多軟件企業中還沒有與之相對應的人員和工作方法,整套關注軟件開發過程的軟件質量保證體系還沒有建立起來。所以,在企業以CMM2級關鍵過程域為參考進行軟件過程改進時,SQA往往是一個難點,直接涉及到組織結構的變化。
實施SQA的目的
軟件質量保證的目標是以獨立審查方式,從第三方的角度監控軟件開發任務的執行,就軟件項目是否正遵循已制定的計劃、標準和規程給開發人員和管理層提供反映產品和過程質量的信息和數據,提高項目透明度,同時輔助軟件工程組取得高質量的軟件產品。主要包括以下四個方面:
● 通過監控軟件開發過程來保證產品質量;
● 保證開發出來的軟件和軟件開發過程符合相應標準與規程;
● 保證軟件產品、軟件過程中存在的不符合問題得到處理,必要時將問題反映給高級管理者;
● 確保項目組制定的計劃、標準和規程適合項目組需要,同時滿足評審和審計需要;
除了以上四點之外,我們還希望SQA能作為軟件工程過程小組(SEPG)在項目組中的延伸,能夠收集項目中好的實施方法和發現實施不利的原因,為修改企業內部軟件開發整體規范提供依據,為其他項目組的開發過程實施提供先進方法和樣例。
對SQA人員的素質要求
1. SQA人員(有時簡稱SQA)要有很強的溝通能力。從實施SQA的目的中可以看出,SQA不在項目中,是獨立于軟件項目的第三方,但他要了解項目的開發過程和進度,捕捉到項目中不符合要求的問題,這就要求SQA能夠深入項目,和軟件開發經理以及項目組中的開發人員保持很好的溝通,這樣才能及時獲得真實的項目情況。
2. SQA要熟悉軟件開發過程。作為SQA,既然要確保項目組制定的計劃、標準和規程,要符合項目組要求,那么SQA首先自己就要了解軟件項目開發過程,以及企業內部已經有的開發過程規范。
3. SQA本身要有很強的計劃性。SQA一方面要監督軟件項目組編寫計劃,另一方面SQA自身的工作也要有計劃,并且能夠按照計劃開展工作。
4. SQA要能應對繁雜的工作。作為SQA,在跟蹤項目進行過程的時候要對項目組的很多工作產品進行審計,而且會參與項目組中的多種活動。同時一個SQA還有可能會面對多個項目組,所以任務相對繁雜細碎,這就要求SQA在處理這些事物的時候要耐心細致。
5. SQA要客觀,有責任心。作為第三方對項目過程進行監督,SQA要能保持自己的客觀性,不能一味討好項目經理,也不能成為項目組中的憲兵,否則會影響工作的開展。對于項目組中多次協調解決不了的問題,能夠向項目的高層經理進言,完成SQA的使命。
以上五點是作為SQA應該具備的基本素質,除此之外,一個好的SQA還應該在軟件開發過程中作為開發人員或測試人員參與過一個或多個環節,這樣他們才能在過程監督中比較準確地抓住重點,同時他們的意見和提出的解決辦法也會更貼近項目組,容易被項目組接受。
SQA人員的組成
軟件企業中的SQA人員既可以由全職人員擔任,也可以由企業內具有相關素質、經過SQA培訓的人員兼職擔任。由此組成的SQA小組可能是一個真正的物理上存在的獨立部門,也可以是一個邏輯上存在的平臺。但不管是真正的獨立部門還是邏輯上的平臺,它都需要有一個靈魂人物——SQA小組組長,來組織SQA小組的日;顒。
在給一個項目組分配負責監督其項目過程的SQA時,一定要注意一點:就是該項目的SQA不能是該項目組的開發人員、配置管理人員或測試人員,一個項目的SQA除了監控項目過程,完成SQA相關工作以外,不應該參與項目組的其他實質性工作,否則他會與項目組捆綁在一起,很難保持客觀性。
文章來源于領測軟件測試網 http://www.k11sc111.com/