隨著軟件項目的增大,軟件開發過程所涉及到的人員也越來越多,而各自的分工、職責也越來越細。如何有效地組織好人力物力,使得整個軟件開發過程能夠有條不紊地進行是當前軟件開發所面臨的普遍問題。在軟件開發質量控制的群體協同工作模型中有三個重要的角色:質量保證組、開發組以及測試組。這三種角色在軟件開發過程中對整個軟件質量的好壞起著關鍵性的作用,而它們之間的相互聯系也是十分密切的。
在軟件開發質量控制的群體工作模型中,我們需要分開質量保證組、開發組和測試組這三種角色,保持他們工作的相對獨立性,但是他們之間又是相互聯系的。
質量保證組在軟件開發過程中所起到的作用就是對軟件質量進行監督和指導。其重點工作放在對軟件過程各個階段進行審查和評審,并且制定評審和審查的規程,規定評審和審查的內容、組織形式、進度安排以及評審組織和任務承辦單位的職責。評審是由有關專業人員或用戶通過正式會議,評價或批準軟件需求、設計、管理等文檔。審查是由小組或專業人員檢查程序、文檔等是否符合有關的技術規程的全部要求。
各階段的評審組通常由質量保證組、開發組和測試組等單位的負責人和來自不同方面的有經驗的資深專家組成。
開發組對軟件的實現起決定性的作用。其工作主要是需求分析說明、軟件概要設計文檔、軟件詳細設計文檔以及軟件程序等的編寫和對測試過程中發現的問題進行糾正等。在需求分析階段,他們的主要工作就是根據用戶提出的要求進行整理、分析,并且完成需求分析報告。在軟件設計階段,他們的主要工作就是根據需求分析說明對軟件進行設計規劃,包括軟件結構、模塊劃分、算法以及接口等的設計,并力求保證設計的思路和用戶的需求相吻合。在軟件實現階段,他們的主要工作就是完成軟件的編碼工作,期間還要提供與程序代碼有關的完整的數據、文檔等。在軟件測試階段,他們的主要任務就是把測試人員所提出的錯誤進行修改。
測試組對軟件質量的保證起十分重要的作用,通常他們是程序問題的第一個發現者,使得軟件在出廠前錯誤發生率降到最低。同樣,測試組在軟件開發過程的不同階段所應做的工作也有所不同。在軟件需求分析和設計階段,測試組就應該著手編寫概要測試計劃和詳細測試計劃等,并且應該有一個詳細的測試大綱和測試用例。在軟件測試階段,其主要的工作是對軟件進行實際的測試,而測試的方法會因不同的系統而有所不同。測試中發現問題,要填寫軟件問題報告。軟件測試的每一個階段,測試組都應該提交一份軟件測試報告,以對軟件測試過程中所發現的問題等進行總結分析和匯報。測試組的工作包括制定軟件測試計劃、設計測試大綱和測試用例、提交測試問題報告和測試結果報告,它們同樣也需要提交給質量保證組進行評審。
在以往的軟件開發過程中,往往忽視了區分質量保證人員、開發人員以及測試人員的不同職責和作用的重要性。較為普遍的問題是過分依賴開發人員,一些開發人員一身兼多職:既是開發工作的骨干,又是測試工作的主力,同時還要兼顧質量保證。這樣做的后果是顯而易見的,它使得人為因素增加,制度規范約束力降低,缺乏有效的互相制約和監督,這對軟件質量是極為不利的。
在軟件項目小組里面,各種人員負責的工作應當說是十分明確的。軟件質量保證組的工作就是要監督整個開發過程軟件的質量問題。而對于軟件開發組來說,他們所關心的問題就是軟件實現的具體細節問題,甚至細微到程序中的每一行代碼所完成的功能,都是他們應當考慮的問題。對項目測試組來說,他們就是要找出軟件中存在的盡可能多的錯誤。從某種意義上來說,錯誤發現得越多,則軟件的質量就在原來的基礎上提高越大。所以,一個軟件質量的好壞并不能夠完全由項目的某個功能小組來決定,而是所有人互相配合,協調一致共同努力的結果。為此,項目中各小組之間人員的協同工作就變得尤為重要,這就是我們經常所說的團隊合作。團隊合作不僅僅要求所有參與者具有無私奉獻的精神與合作意識,從技術上講,還需要有規范化和工程化的管理方法。
在軟件開發過程中,各種角色人員之間的聯系是相當密切的。如在軟件實現階段,開發組所開發出來的代碼單元必須經過軟件測試組進行測試,而測試組的測試結果又必須被軟件質量保證組所監督,在這里就發生了許多需要互相溝通的事情。
文章來源于領測軟件測試網 http://www.kjueaiud.com/