【摘要】如何才能成為SQA?SQA的具體工作是什么?TESTER的具體工作是什么?SQA與TESTER的區(qū)別是什么?配置管理做些什么?SQA的工作與配置管理的工作有什么區(qū)別?……常在論壇上看到有同行問及此類問題,為了讓大家完完整整地了解到底什么是SQA?什么是TESTER?什么是配置管理?以及三者之間到底存在什么區(qū)別?以下將帶著這些問題進行展開說明。
【關鍵字】SQA、TESTER、CM
【正文】
軟件質量保證(Software Quality Assurance,簡稱SQA),即參照一定的質量標準、目標及各項軟件流程、規(guī)范來監(jiān)督,管理公司產(chǎn)品的質量;在許多質量體系還不是很成熟的公司,維護和發(fā)展這些質量標準、流程規(guī)范等也是由質量保證人員進行。行內有個這樣的說法:“軟件質量保證并不能夠保證軟件的質量”,事實也是如此,軟件質量的好壞不是一個人,一個部門能夠決定的。但是,我們可以把提高軟件的質量作為我們從事軟件質量保證工作的目標。
在ANSI/IEEE 中提到以下了六個品質要素:
――正確性(correctness):實現(xiàn)的功能達到設計規(guī)范,并滿足用戶需求的程度
――可靠性(reliability):在規(guī)定的時間和條件下,仍能維持其性能水準的程度
――易用性(usability):用戶掌握軟件操作所要付出的時間及努力程度
――效率(efficiency):軟件執(zhí)行某項功能所需電腦資源(含時間)的有效程度
――可維護性(maintainability):當環(huán)境改變或軟件發(fā)生錯誤時,執(zhí)行修改或恢復所做努力的程度
――可移植性(portability):從一個電腦系統(tǒng)或環(huán)境移到另一電腦系統(tǒng)或環(huán)境的容易程度
軟件測試(Software Test),盡早、盡可能多地發(fā)現(xiàn)軟件系統(tǒng)中存在的缺陷及問題。但是,好的軟件并不是“測”出來的,而是“做”出來的,所以,每一個測試人員都應該清楚這樣一點:任何人都不可能找出軟件中隱含的所有缺陷和問題,正如世界上沒有人是十全十美的。
軟件配置管理(Software Configuration Management,簡稱CM),簡單來講,配置管理即是對軟件工作中間件及工作成果的各種管理。其中包括:配置項、配置庫、配置標識、基線(詳見下文)。
工作內容及手段
一、軟件質量保證
工作內容
建立軟件質量保證活動的實體
制訂軟件質量保證計劃
堅持各階段的評審和審計,跟蹤其結果,并作合適處理
監(jiān)控軟件產(chǎn)品的質量
采集軟件質量保證活動的數(shù)據(jù)
度量軟件質量保證活動
手段
“請介紹幾種有效的質量保證工具?……”,論壇中經(jīng)常有朋友這么問。我想,他可能是把質量保證手段統(tǒng)稱為工具了,在我看來,稱作“手段”可能更貼切一點。
下面就來介紹一種有效的質量保證手段——同行評審(Peer Review),以此可以提前發(fā)現(xiàn)許多軟件各階段隱含的問題。比如:
在需求階段的評審:發(fā)現(xiàn)需求是否已被很好的定義,其中是否存在技術上的風險等;
在設計階段的評審:檢查架構、數(shù)據(jù)庫等設計的是否合理;
在編碼階段的評審:檢查Source code,發(fā)現(xiàn)代碼中不符合編碼規(guī)范部分;
在測試階段的評審:檢查測試計劃安排的是否合理,測試用例設計的覆蓋率等;
在驗收階段的評審:檢查項目文檔是否都已存在于配置管理庫中;總結項目開發(fā)過程中的一些經(jīng)驗教訓并作記錄,存入公司的資源庫等。
Peer Review過程中需注意的細節(jié)
做評審計劃;
人員不要太多,保證會議的效率;
經(jīng)常性地舉行;
盡量提前點時間將會議上要審核的資料發(fā)送給參加會議的人,并請參會人員對發(fā)現(xiàn)有疑問的地方及時做出標識,以提高會上的效率;
千萬注意不要將評審會議變成聊天或過分爭論會議;
評審團隊最好是由經(jīng)過同行評審培訓,并有產(chǎn)品經(jīng)驗的相關人員組成;
對評審人員提出的問題,在會后,應該由文檔作者修改,并最終通過評審團隊成員的一致確認。
常見誤解
誤解一:認為發(fā)布出去的軟件發(fā)現(xiàn)了問題,就是QA和TESTER的責任;還是那句話,“軟件質量保證”并不能保證軟件的質量;
誤解二:QA就是公司的文檔管理員,常有QA稱自己是“打雜工”。實際上,成為一名出色的QA并不是一件容易的事情,工作年限、工作經(jīng)驗、工作成果等都是對其衡量的標準;
誤解三:QA的工作有TESTER兼職進行即可。這是目前多數(shù)軟件公司采取的措施。個人認為,最好將二者分開,TESTER的工作也是有質量可言,同樣需要QA進行監(jiān)督、檢查,而QA的直接上司即公司的高層領導;
二、軟件測試
工作內容
編寫測試計劃
編寫測試用例
對軟件開發(fā)過程的重要文檔進行測試,如:需求文檔、設計文檔等
測試執(zhí)行
測試結果總結、分析
測試數(shù)據(jù)的度量(更高要求)
以上工作基本上涵蓋了測試的所有工作,在分工比較明細的公司,通常由不同人員來進行,如:
測試設計員:制定和維護測試計劃;設計測試用例及測試過程;評估測試,生成測試分析報告
測試員:執(zhí)行集成測試和系統(tǒng)測試;
設計員:設計測試需要的驅動程序和穩(wěn)定樁;
編碼員:編寫測試驅動成員和穩(wěn)定樁;執(zhí)行單元測試
手段
手工測試
目前多數(shù)測試人員都采取的一種測試工具,雖存在一定的弊端,但也絕對不可以省略。
自動化測試工具
想了解并學習自動化測試工具的同仁不妨去
www.51testing.com看看,里面有介紹自動化工具的專欄,很不錯的。BUG管理工具
通常叫BMS(BUG MANAGEMENT SYSTEM)。如果公司不愿意投入成本購買大公司的BUG管理工具,不妨根據(jù)自己的情況開發(fā)一個,便宜又好用,并且一勞永逸!
三、軟件配置管理
術語解釋:
配置項:凡是納入配置管理范疇的工作成果都叫做配置項。
配置庫:所有配置項的集合
配置標識:為了方便管理,而對各配置項作的標識
基線:由一組配置項組成,這些配置項構成了一個相對穩(wěn)定的邏輯實體?;€中的配置項被“凍結”了就不能再被任何人隨意修改,直接進入變更階段。通常將交付給用戶的基線稱為一個“Release”,為內部開發(fā)用的基線則稱為一個“Build”。
工作內容
創(chuàng)建配置庫,并至少創(chuàng)建配置庫的所有一級目錄
為每個項目組成員分配權限
根據(jù)配置管理計劃中的基線計劃維護基線,“凍結”配置項,控制變更
定期清楚配置庫里的“垃圾”文件(“垃圾”文件即在項目中產(chǎn)生,但最終不用存檔的一些文檔)
配置狀態(tài)發(fā)布
定期備份配置庫
手段
常用配置管理工具如下:VSS、CVS、CLEARCASE等,具體內容我已在論壇中發(fā)布過,大家可去查看。
SQA與TESTER的區(qū)別
通過上面各自含義及工作內容的描述,我想SQA與TESTER的區(qū)別應該比較清晰了吧,現(xiàn)在總結為以下兩點:
SQA重點是對軟件開發(fā)過程進行監(jiān)督、管理、控制;
TESTER重點是對軟件開發(fā)的成果進行檢查、控制。
SQA與CM的區(qū)別
SQA重在監(jiān)督項目的進度,督促項目按開發(fā)流程及規(guī)范進行,控制并記錄好各項變更,并通知配置管理員對配置項做好相應的變更;同時SQA還可以作為SEPG(Software engineering process group)的成員之一,參與公司的軟件過程改進工作。
配置管理工作的主要目的是為了保證項目資料得到清晰、有效地管理,加快工作效率的同時,也避免一些意想不到的風險,如:代碼丟失或惡意修改等。同時,有效地配置管理工作,還可作為公司建立復用資源庫的主要來源之一。建立復用資源庫對公司來講勢在必行,頻繁的人員流動是再充分不過的理由。
【小結】
本篇文章可能更適合于新人閱讀,希望能有所幫助;對于描述不當?shù)牡胤?,還請諒解。
軟件質量保證、測試和配置管理都剛被各軟件公司重視起來,但它們的春天還未真正到來,否則就不會經(jīng)常聽到同行們的牢騷和抱怨。不管怎么說,既然你選擇了這一行,就一定要堅定自己的選擇,并一如既往地走下去。一定要養(yǎng)成主動學習的習慣,不要等著別人去教你怎么做,或直接從別人那里取來就用,而應該盡量自己創(chuàng)造。當前大部分軟件公司在這些方面還處于起步階段,技術及資料還不是很成熟,這些對新人來講不能不說是學習的好機會,同時也是展示自我的好機會。堅信,我們的明天會更好!
作者簡介:海林(筆名),曾做過測試、品質管理、配置管理工作,目前在一家知名軟件公司擔任軟件項目測試主管。至今積累了豐富的軟件實踐經(jīng)驗。