一、 含義
1.
在ANSI/IEEE 中提到以下了六個品質(zhì)要素:
Ø 正確性(correctness):實現(xiàn)的功能達到設(shè)計規(guī)范,并滿足用戶需求的程度
Ø 可靠性(reliability):在規(guī)定的時間和條件下,仍能維持其性能水準(zhǔn)的程度
Ø 易用性(usability):用戶掌握軟件操作所要付出的時間及努力程度
Ø 效率(efficiency):軟件執(zhí)行某項功能所需電腦資源(含時間)的有效程度
Ø 可維護性(maintainability):當(dāng)環(huán)境改變或軟件發(fā)生錯誤時,執(zhí)行修改或恢復(fù)所做努力的程度
Ø 可移植性(portability):從一個電腦系統(tǒng)或環(huán)境移到另一電腦系統(tǒng)或環(huán)境的容易程度
2. 軟件測試(Software Test)
盡早、盡可能多地發(fā)現(xiàn)軟件系統(tǒng)中存在的缺陷及問題。但是,好的軟件并不是“測”出來的,而是“做”出來的,所以,每一個測試人員都應(yīng)該清楚這樣一點:任何人都不可能找出軟件中隱含的所有缺陷和問題,正如世界上沒有人是十全十美的。
3. 軟件配置管理(Software Configuration Management,簡稱CM)
簡單來講,配置管理即是對軟件工作中間件及工作成果的各種管理。其中包括:配置項、配置庫、配置標(biāo)識、基線(詳見下文)。
二、 工作內(nèi)容及手段
1. 軟件質(zhì)量保證
1) 工作內(nèi)容
Ø 建立軟件質(zhì)量保證活動的實體
Ø 制訂軟件質(zhì)量保證計劃
Ø 堅持各階段的評審和審計,跟蹤其結(jié)果,并作合適處理
Ø 監(jiān)控軟件產(chǎn)品的質(zhì)量
Ø 采集軟件質(zhì)量保證活動的數(shù)據(jù)
Ø 度量軟件質(zhì)量保證活動
2) 手段
“請介紹幾種有效的質(zhì)量保證工具?……”,論壇中經(jīng)常有朋友這么問。我想,他可能是把質(zhì)量保證手段統(tǒng)稱為工具了,在我看來,稱作“手段”可能更貼切一點。
下面就來介紹一種有效的質(zhì)量保證手段——同行評審(Peer Review),以此可以提前發(fā)現(xiàn)許多軟件各階段隱含的問題。比如:
Ø 在需求階段的評審:發(fā)現(xiàn)需求是否已被很好的定義,其中是否存在技術(shù)上的風(fēng)險等;
Ø 在設(shè)計階段的評審:檢查架構(gòu)、數(shù)據(jù)庫等設(shè)計的是否合理;
Ø 在編碼階段的評審:檢查Source code,發(fā)現(xiàn)代碼中不符合編碼規(guī)范部分;
Ø 在測試階段的評審:檢查測試計劃安排的是否合理,測試用例設(shè)計的覆蓋率等;
Ø 在驗收階段的評審:檢查項目文檔是否都已存在于配置管理庫中;總結(jié)項目開發(fā)過程中的一些經(jīng)驗教訓(xùn)并作記錄,存入公司的資源庫等。
Peer Review過程中需注意的細節(jié):
Ø 做評審計劃;
Ø 人員不要太多,保證會議的效率;
Ø 經(jīng)常性地舉行;
Ø 盡量提前點時間將會議上要審核的資料發(fā)送給參加會議的人,并請參會人員對發(fā)現(xiàn)有疑問的地方及時做出標(biāo)識,以提高會上的效率;
Ø 千萬注意不要將評審會議變成聊天或過分爭論會議;
Ø 評審團隊最好是由經(jīng)過同行評審培訓(xùn),并有產(chǎn)品經(jīng)驗的相關(guān)人員組成;
Ø 對評審人員提出的問題,在會后,應(yīng)該由文檔作者修改,并最終通過評審團隊成員的一致確認。
3) 常見誤解
Ø 誤解一:認為發(fā)布出去的軟件發(fā)現(xiàn)了問題,就是QA和TESTER的責(zé)任;還是那句話,“軟件質(zhì)量保證”并不能保證軟件的質(zhì)量;
Ø 誤解二:QA就是公司的文檔管理員,常有QA稱自己是“打雜工”。實際上,成為一名出色的QA并不是一件容易的事情,工作年限、工作經(jīng)驗、工作成果等都是對其衡量的標(biāo)準(zhǔn);
Ø 誤解三:QA的工作有TESTER兼職進行即可。這是目前多數(shù)軟件公司采取的措施。個人認為,最好將二者分開,TESTER的工作也是有質(zhì)量可言,同樣需要QA進行監(jiān)督、檢查,而QA的直接上司即公司的高層領(lǐng)導(dǎo);
2. 軟件測試
1) 工作內(nèi)容
Ø 編寫測試計劃
Ø 編寫測試用例
Ø 對軟件開發(fā)過程的重要文檔進行測試,如:需求文檔、設(shè)計文檔等
Ø 測試執(zhí)行
Ø 測試結(jié)果總結(jié)、分析
Ø 測試數(shù)據(jù)的度量(更高要求)
以上工作基本上含蓋了測試的所有工作,在分工比較明細的公司,通常由不同人員來進行,如:
Ø 測試設(shè)計員:制定和維護測試計劃;設(shè)計測試用例及測試過程;評估測試,生成測試分析報告
Ø 測試員:執(zhí)行集成測試和系統(tǒng)測試;
Ø 設(shè)計員:設(shè)計測試需要的驅(qū)動程序和穩(wěn)定樁;
Ø 編碼員:編寫測試驅(qū)動成員和穩(wěn)定樁;執(zhí)行單元測試
2) 手段
Ø 手工測試
目前多數(shù)測試人員都采取的一種測試工具,雖存在一定的弊端,但也絕對不可以省略。
Ø 自動化測試工具
想了解并學(xué)習(xí)自動化測試工具的同仁不妨去www.51testing.com看看,里面有介紹自動化工具的專欄,很不錯的。
Ø BUG管理工具
通常叫BMS(BUG MANAGEMENT SYSTEM)。如果公司不愿意投入成本購買大公司的BUG管理工具,不妨根據(jù)自己的情況開發(fā)一個,便宜又好用,并且一勞永逸!
3. 軟件配置管理
術(shù)語解釋:
Ø 配置項:凡是納入配置管理范疇的工作成果都叫做配置項。
Ø 配置庫:所有配置項的集合
Ø 配置標(biāo)識:為了方便管理,而對各配置項作的標(biāo)識
Ø 基線:由一組配置項組成,這些配置項構(gòu)成了一個相對穩(wěn)定的邏輯實體。基線中的配置項被“凍結(jié)”了就不能再被任何人隨意修改,直接進入變更階段。通常將交付給用戶的基線稱為一個“Release”,為內(nèi)部開發(fā)用的基線則稱為一個“Build”。
1) 工作內(nèi)容
Ø 創(chuàng)建配置庫,并至少創(chuàng)建配置庫的所有一級目錄
Ø 為每個項目組成員分配權(quán)限
Ø 根據(jù)配置管理計劃中的基線計劃維護基線,“凍結(jié)”配置項,控制變更
Ø 定期清楚配置庫里的“垃圾”文件(“垃圾”文件即在項目中產(chǎn)生,但最終不用存檔的一些文檔)
Ø 配置狀態(tài)發(fā)布
Ø 定期備份配置庫
2) 手段
常用配置管理工具如下:VSS、CVS、CLEARCASE等,具體內(nèi)容我已在論壇中發(fā)布過,大家可去查看。
三、 區(qū)別
1. SQA與TESTER的區(qū)別
通過上面各自含義及工作內(nèi)容的描述,我想SQA與TESTER的區(qū)別應(yīng)該比較清晰了吧,現(xiàn)總結(jié)為以下兩點:
1) SQA重點是對軟件開發(fā)過程進行監(jiān)督、管理、控制;
2) TESTER重點是對軟件開發(fā)的成果進行檢查、控制。
2. SQA與CM的區(qū)別
1) SQA重在監(jiān)督項目的進度,督促項目按開發(fā)流程及規(guī)范進行,控制并記錄好各項變更,并通知配置管理員對配置項做好相應(yīng)的變更;同時SQA還可以作為SEPG(Software engineering process group)的成員之一,參與公司的軟件過程改進工作。
2) 配置管理工作的主要目的是為了保證項目資料得到清晰、有效地管理,加快工作效率的同時,也避免一些意想不到的風(fēng)險,如:代碼丟失或惡意修改等。同時,有效地配置管理工作,還可作為公司建立資源庫的主要來源之一。建立資源庫對公司來講勢在必行,頻繁的人員流動是再充分不過的理由。
四、 結(jié)論
本篇文章可能更適合于新人閱讀,希望能有所幫助;對于描述不當(dāng)?shù)牡胤?,還請諒解。
軟件質(zhì)量保證、測試和配置管理都剛被各軟件公司重視起來,但它們的春天還未真正到來,否則就不會經(jīng)常聽到同行們的牢騷和抱怨。不管怎么說,既然你選擇了這一行,就一定要堅定自己的選擇,并一如既往地走下去。一定要養(yǎng)成主動學(xué)習(xí)的習(xí)慣,不要等著別人去教你怎么做,或直接從別人那里取來就用,而應(yīng)該盡量自己創(chuàng)造。當(dāng)前大部分軟件公司在這些方面還處于起步階段,技術(shù)及資料還不是很成熟,這些對新人來講不能不說是學(xué)習(xí)的好機會,同時也是展示自我的好機會。堅信,我們的明天會更好!
附:
目前常用的幾種配置管理工具及優(yōu)缺點:
VSS
SourceSafe是Microsoft公司推出的配置管理工具,是Visual Studio的套件之一。SourceSafe是國內(nèi)最流行的配置管理工具,用戶量非常之大;
SourceSafe長的樣子不是很現(xiàn)代,但其強大的功能無不令人驚嘆。SourceSafe的優(yōu)點可以用8個字來概括“簡單易用,一學(xué)就會”。
雖然SourceSafe并不是免費的,但是在國內(nèi)人們以接近于零的成本得到它,網(wǎng)上到處可以下載啊。當(dāng)然Microsoft也不在乎這個小不點的軟件,它屬于“買大件送小件”的角色。如果你合法地得到Visual Studio,你就得到了免費的SourceSafe。
SourceSafe的主要局限性:
只能在Windows下運行,不能在Unix, Linux下運行。SourceSafe不支持異構(gòu)環(huán)境下的配置管理,對用戶而言是個麻煩事。這不是技術(shù)問題,是微軟公司產(chǎn)品戰(zhàn)略決定的。
適合于局域網(wǎng)內(nèi)的用戶群,不適合于通過Internet連接的用戶群,因為SourceSafe是通過“共享目錄”方式存儲文件的。
人無完人,物不盡美。有些賣配置管理工具的軟件供應(yīng)商經(jīng)常貶低SoureSafe,諷刺它是Source not Safe。我不想為誰辯護,只是給出一個例證說明SourceSafe的效用。有一個軟件事業(yè)部(約百名開發(fā)人員)的十余個項目全部采用SourceSafe來管理,只用一臺PC機作配置管理服務(wù)器,運行一年都沒有發(fā)生異常現(xiàn)象。
CVS
CVS 是 Concurrent Version System(并行版本系統(tǒng))的縮寫,它是著名的開放源代碼的配置管理工具。
CVS的官方網(wǎng)站是http://www.cvshome.org/ 。官方提供的是CVS服務(wù)器和命令行程序,但是官方并不提供交互式的客戶端軟件。許多軟件機構(gòu)根據(jù)CVS官方提供的編程接口開發(fā)了各色各樣的CVS客戶端軟件,最有名的當(dāng)推Windows環(huán)境的CVS客戶端軟件——WinCVS。WinCVS是免費的,但是并不開放源代碼。
與SourceSafe相比,CVS的主要優(yōu)點是:
SourceSafe有的功能CVS全都有,CVS支持并發(fā)的版本管理,SourceSafe沒有并發(fā)功能。CVS服務(wù)器的功能和性能都比SourceSafe高出一籌。
CVS服務(wù)器是用Java編寫的,可以在任何操作系統(tǒng)和網(wǎng)絡(luò)環(huán)境下運行。CVS深受Unix和Linux 的用戶喜愛。Borland公司的JBuilder提供了CVS的插件,Java程序員可以在JBuilder集成環(huán)境中使用CVS進行版本控制。
CVS服務(wù)器有自己專用的數(shù)據(jù)庫,文件存儲并不采用SourceSafe的“共享目錄”方式,所以不受限于局域網(wǎng),信息安全性很好。
CVS的主要缺點在于客戶端軟件,真可謂五花八門、良莠不齊。Unix和Linux 的軟件高手可以直接使用CVS命令行程序,而Windows用戶通常使用WinCVS。安裝和使用WinCVS顯然比SourceSafe麻煩不少,這是令人比較遺憾的。
ClearCase
Rational公司的ClearCase是軟件行業(yè)公認的功能最強大、價格最昂貴的配置管理軟件。
ClearCase主要應(yīng)用于復(fù)雜產(chǎn)品的并行開發(fā)、發(fā)布和維護,其功能劃分為四個范疇:版本控制、工作空間管理(Workspace Management)、構(gòu)造管理(Build Management)、過程控制(Process Control)。ClearCase通過TCP/IP來連接客戶端和服務(wù)器。另外,ClearCase擁有的浮動License可以跨越UNIX和Windows NT平臺被共享。
ClearCase的功能比CVS、SourceSafe強大得多,但是其用戶量卻遠不如CVS、SourceSafe的多。主要原因是:
ClearCase價格昂貴,如果沒有批量折扣的話,每個License大約5000美元。對于中國用戶而言,這無疑是天價。
用戶只有經(jīng)過幾天的培訓(xùn)后(費用同樣很昂貴),才能正常使用ClearCase。如果不參加培訓(xùn)的話,用戶基本上不可能無師自通。
《軟件質(zhì)量保證計劃》中包含的主要內(nèi)容:
A. 目的
B. 面向?qū)ο?/span>
C. 參考資料
D. 質(zhì)量機構(gòu)
E. 機構(gòu)任務(wù)(明確階段評審的內(nèi)容及時間、評審的參與人員、日常檢查等)
F. 產(chǎn)生文檔清單
G. 參照標(biāo)準(zhǔn)
H. 配置如何管理
I. 日常使用的管理工具
……
《配置管理計劃》中包含的主要內(nèi)容:
A. 目的
B. 面向?qū)ο?/span>
C. 參考資料
D. 人員及職責(zé)
E. 軟硬件資源
F. 配置項計劃
G. 基線計劃
H. 配置庫備份計劃
……
《測試計劃》中包含的主要內(nèi)容:
A. 目的
B. 面向?qū)ο?/span>
C. 參考資料
D. 測試策略(主要包括測試內(nèi)容和測試方法)
E. 測試資源(人力資源、軟硬件資源)
F. 測試進度
G. 評價準(zhǔn)則
H. 測試相關(guān)文檔
……
《測試用例》中包含的主要內(nèi)容:
A. 系統(tǒng)名稱、系統(tǒng)版本、測試類型、用例作者、編寫日期、審核發(fā)布人員及日期、測試執(zhí)行人員;
B. 用例維護記錄;
C. 用例ID、操作位置、用例描述、期望輸出、實際輸出、備注、用例狀態(tài)(NT表示由于進度等原因而沒有執(zhí)行該用例;Pass表示執(zhí)行成功;Fail表示執(zhí)行失??;Block 表示由于其他用例測試未通過而導(dǎo)致該用例無法執(zhí)行)。
……
《測試總結(jié)報告》中包含的主要內(nèi)容:
A. 目的
B. 面向?qū)ο?/span>
C. 參考資料
D. BUG的追蹤管理
E. 測試結(jié)果分析
F. BUG數(shù)量及等級分布
G. 對比分析
H. 測試評估
I. 改進意見
J. 結(jié)論
……
即參照一定的質(zhì)量標(biāo)準(zhǔn)、目標(biāo)及各項軟件流程、規(guī)范來監(jiān)督,管理公司產(chǎn)品的質(zhì)量;在許多質(zhì)量體系還不是很成熟的公司,維護和發(fā)展這些質(zhì)量標(biāo)準(zhǔn)、流程規(guī)范等也是由質(zhì)量保證人員進行。行內(nèi)有個這樣的說法:“軟件質(zhì)量保證并不能夠保證軟件的質(zhì)量”,事實也是如此,軟件質(zhì)量的好壞不是一個人,一個部門能夠決定的。但是,我們可以把提高軟件的質(zhì)量作為我們從事軟件質(zhì)量保證工作的目標(biāo)。