軟件開發(fā)過程中的QA與QC
Judy Shen
在實際質(zhì)量工作中,經(jīng)常會碰到一個問題,即質(zhì)量保證(Quality Assurance)和質(zhì)量控制(Quality Control)關(guān)系比較容易混淆。QA和QC由于都屬于質(zhì)量管理的范疇,同時在工作中由于二者的工作存在部分交叉、共同的工作內(nèi)容,因此在項目成員中容易造成職責(zé)上的混淆。為了讓項目組成員了解二者的區(qū)別,并協(xié)調(diào)一致地開展工作、共同提高軟件質(zhì)量,筆者結(jié)合多年的測試經(jīng)驗對這兩種角色的關(guān)系進(jìn)行了研究和闡述。
QA和QC各司其職,相輔相成,統(tǒng)一于質(zhì)量管理(Quality Management)。拿一部汽車來做比喻吧,質(zhì)量控制(QC)就是所有那些告訴你汽車當(dāng)前運動狀態(tài)的儀器儀表;質(zhì)量保證(QA)包括各類標(biāo)準(zhǔn),是告訴你所有部件操作方法的用戶手冊;而質(zhì)量管理(QM)則是你要追求的目標(biāo),比如希望能平安、高速地駕駛汽車??梢钥闯觯瑸榱藢崿F(xiàn)質(zhì)量管理的目標(biāo),質(zhì)量保證和質(zhì)量控制都是不可或缺的部分。
了解了QA和QC的重要性后,我們需要詳細(xì)了解一下QA和QC的具體區(qū)別,如表一所示:
| QA | QC |
全 稱 | Quality Assurance(質(zhì)量保證) | Quality Control (質(zhì)量控制) |
角 色 | QA工程師 | 測試工程師、評審員 |
定 義 | 為了確保軟件開發(fā)過程和結(jié)果符合預(yù)期的結(jié)果,依照過程和計劃采取的一系列活動及其結(jié)果評價。 | 為了發(fā)現(xiàn)軟件產(chǎn)品的錯誤、缺陷而進(jìn)行工作的過程。 |
目 的 | 減少并糾正實際的軟件開發(fā)過程和軟件開發(fā)結(jié)果與預(yù)期的軟件開發(fā)過程和軟件開發(fā)結(jié)果的不符合情況。 | 為了尋找錯誤、缺陷,并盡可能的為修復(fù)錯誤提供更多的信息。 |
職 責(zé) | 監(jiān)控公司質(zhì)量保證體系的運行狀況,審計項目的實際執(zhí)行情況和公司規(guī)范之間的差異,并出具改進(jìn)建議和統(tǒng)計分析報告。 是過程、產(chǎn)品質(zhì)量審計者。 | 對每一個階段或者關(guān)鍵點的產(chǎn)出物(工件)進(jìn)行檢測,評估產(chǎn)出物是否符合預(yù)計的質(zhì)量要求。關(guān)注各階段的評審和測試缺陷。 是產(chǎn)品質(zhì)量檢查者。 |
表一 QA與QC基礎(chǔ)信息對照表
在了解了QA和QC的不同之處后,那問題來了:QA和QC該如何在項目各階段中既關(guān)注職能領(lǐng)域、又共同為項目的質(zhì)量目標(biāo)協(xié)調(diào)、一致地開展工作呢?根據(jù)不同的項目階段,筆者將二者的工作內(nèi)容和工作產(chǎn)品進(jìn)行了劃分,如表二所示。在實際項目中,QA或QC工作人員,可以依據(jù)項目所處階段,快速清楚本階段的工作內(nèi)容和產(chǎn)出物。
類別 項目階段 | QA | QC | ||
工作內(nèi)容 | 工作產(chǎn)品 | 工作內(nèi)容 | 工作產(chǎn)品 | |
項目啟動 | 定義產(chǎn)品質(zhì)量指標(biāo) 參與項目規(guī)劃的評審 | 產(chǎn)品質(zhì)量指標(biāo)
|
|
|
項目計劃 | 編制QA計劃 過程審計 | 項目QA計劃 QA階段工作報告 | 測試計劃管理 參加評審 | 測試計劃 |
需求分析 | 階段交付物審計 過程審計 | QA階段工作報告 | 分析測試需求 參加評審 | 測試需求 |
設(shè) 計 | 階段交付物審計 過程審計 | QA階段工作報告 | 設(shè)計測試用例 參加評審 可能的話參與部分設(shè)計 | 測試用例 |
編 碼 | 階段交付物審計 過程審計 | QA階段工作報告 | 單元測試 集成測試 參加評審 | 缺陷報告 測試報告 |
測 試 | 階段交付物審計 過程審計 | QA階段工作報告 | 集成測試 系統(tǒng)測試 性能測試 回歸測試 測試管理工作 用戶手冊驗證 | 測試腳本 缺陷報告 測試報告 用戶手冊驗證報告 |
實 施 | 產(chǎn)品質(zhì)量狀態(tài)評估 過程審計 項目交付審計 | 產(chǎn)品質(zhì)量評估報告 QA階段工作報告 | 內(nèi)部接收測試 驗收測試 | 缺陷報告 測試報告 |
表二 QA與QC各個階段工作內(nèi)容及工作產(chǎn)品對照表
質(zhì)量保證(QA)與質(zhì)量控制(QC)的關(guān)系,一直以來都比較讓人困惑。本文主要是將二者在實際工作中,如何有效完成各自的使命進(jìn)行了闡述。當(dāng)然了,在不同公司,可能有不同的適用情況,所以,本文介紹的內(nèi)容,僅僅只是個例子,供拋磚引玉用。
雖然不同公司有不同的情況,但是原則都是一樣的。QA是從過程和標(biāo)準(zhǔn)來控制開發(fā)過程,從而達(dá)到提高軟件質(zhì)量的目的。而QC則是通過測試、評審等驗證、確認(rèn)手段來發(fā)現(xiàn)軟件中的缺陷,并確保該缺陷得到解決,從而達(dá)到提高軟件質(zhì)量的目的。