軟件測試的金字塔體系——從1個(gè)中心到5個(gè)要素
埃及金字塔的神秘,不僅是因?yàn)樗囊?guī)模宏偉、結(jié)構(gòu)精密,而且它的興起和演變至今只是一個(gè)傳說,成為千古之謎。而軟件測試,也感覺和金字塔有一種神秘的關(guān)系,為什么這樣說呢?
金字塔中有神奇的黃金分割數(shù)Φ,其值是個(gè)無窮小數(shù),若只取三位小數(shù)便是0.618。如用金字塔的高除以底邊長,即1÷1.618 = 0.618。而金字塔許多特征數(shù)據(jù),和13世紀(jì)數(shù)學(xué)家法布蘭斯所提到的奇異數(shù)字的組合,有許多巧合之處。這些奇異數(shù)字的組合是1、1、2、3、5、8、13、21、34、55、89、144、233…它們?nèi)魏蝺蓚€(gè)連續(xù)的比率都接近0.618,如3/5、5/8、34/55、55/89、89/144等。而且金字塔有一個(gè)頂點(diǎn)、五個(gè)面、八個(gè)邊,總數(shù)為十三個(gè)層面,這些特征數(shù)據(jù)也和上述奇異數(shù)字非常吻合。
首先,軟件測試的出發(fā)點(diǎn)就是質(zhì)量,軟件測試的一切工作應(yīng)該圍繞質(zhì)量而開展。質(zhì)量是軟件測試的中心,可以看做是金字塔的頂點(diǎn),如圖1-1所示。測試的其他部分就是支撐這個(gè)頂點(diǎn)的測試人員、測試資源、測試技術(shù)和測試流程。因此,構(gòu)成軟件測試的5個(gè)要素就是:質(zhì)量、人員、技術(shù)、資源、流程。
這樣,5個(gè)要素構(gòu)成了5個(gè)面,每個(gè)面由3個(gè)要素構(gòu)成,代表著軟件測試的工作面。具體是怎樣的工作面?請(qǐng)往下看,自然會(huì)越來越清楚。
在這金字塔構(gòu)成中,還有每兩個(gè)要素構(gòu)成的8條邊,每條邊代表兩個(gè)要素之間的關(guān)系,如何處理這些關(guān)系,也就決定著測試能否獲得成功。基于要素、工作面、要素之間的關(guān)系,我們確定了13項(xiàng)軟件測試原則、21個(gè)關(guān)鍵域。針對(duì)軟件測試關(guān)鍵域,每個(gè)軟件組織可以了解自己在這個(gè)領(lǐng)域的水平,持續(xù)進(jìn)行改進(jìn)。最后,列出目前所使用的各種軟件測試方法,并將這些方法應(yīng)用于軟件測試實(shí)際工作之中。所以軟件測試可概括為:
從1個(gè)中心到5個(gè)要素
質(zhì)量(quality)是軟件測試的中心,這是毋庸置疑的。測試是質(zhì)量保證的重要手段之一,測試本身就是為質(zhì)量服務(wù)的。測試能否通過,其檢驗(yàn)的標(biāo)準(zhǔn)是用戶的需求,也就是質(zhì)量的標(biāo)準(zhǔn)。所以,在軟件測試的5個(gè)要素中,質(zhì)量是核心,其他4個(gè)要素要服務(wù)于質(zhì)量,服從于質(zhì)量。
如果要問,除了質(zhì)量,還有什么是最重要的?那自然是測試人員。人是決定的因素,決定了技術(shù)和流程的執(zhí)行。像軟件開發(fā)這樣的智力活動(dòng),要強(qiáng)調(diào)“以人為本”的管理文化,才能真正發(fā)揮每個(gè)人的潛力,以最有效的方法完成測試工作。
如果繼續(xù)追問下去,在軟件測試過程中,哪兩樣?xùn)|西是我們必須關(guān)注的?答案應(yīng)該是“測試覆蓋率”和“效率(productivity)”。如何保證質(zhì)量,一個(gè)重要的衡量方法就是測試的覆蓋率,包括用戶實(shí)際需求的覆蓋率和代碼覆蓋率。在保證質(zhì)量的前提下,確定任務(wù)的優(yōu)先級(jí),采取正確的策略和方法,包括自動(dòng)化測試方法,以高效的方法完成測試。
一而再、再而三,關(guān)注了“測試覆蓋率”和“效率”,拿什么來保證呢?這不外乎三個(gè)方面,就是測試人員、測試流程和測試的技術(shù)。就人員來說,要從招聘、培訓(xùn)和考核等各個(gè)環(huán)節(jié)來培育良好的團(tuán)隊(duì)文化,樹立正確的工作態(tài)度,強(qiáng)化質(zhì)量意識(shí),提高團(tuán)隊(duì)的戰(zhàn)斗力,構(gòu)建卓越的測試團(tuán)隊(duì)。無論是采用敏捷的測試流程還是傳統(tǒng)的測試流程,一定要結(jié)合具體的產(chǎn)品和技術(shù)特點(diǎn),因地制宜,形成適合自己的、有效的測試流程。測試技術(shù)比較豐富,因而下面各章的討論會(huì)很多,從客戶端到服務(wù)器端,從黑盒測試到白盒測試,從靜態(tài)測試到動(dòng)態(tài)測試,全力構(gòu)造一個(gè)完整的測試技術(shù)體系,使之滿足測試工作的需要。這些內(nèi)容,可以用圖1-2形象地描述,使我們一目了然。
軟件測試的金字塔體系可以基于上一節(jié)的描述進(jìn)行擴(kuò)充,得到如下結(jié)構(gòu),更接近于一串神秘的數(shù)字。
圖1-2 軟件測試核心、目標(biāo)、基礎(chǔ)等關(guān)系
最后,總結(jié)一下軟件測試的5個(gè)要素。
● 質(zhì)量:軟件質(zhì)量是軟件測試的目標(biāo),也是軟件測試工作的中心,一切從質(zhì)量出發(fā),也就是一切從客戶需求出發(fā)。任何違背質(zhì)量的東西都是問題,測試就是要找出這些問題。
● 人員:人是決定的因素,測試人員的態(tài)度、素質(zhì)、能力決定著測試的效果,對(duì)測試產(chǎn)品的質(zhì)量也有很大的影響。測試人員因素包括測試組織結(jié)構(gòu)、角色和責(zé)任的定義。
● 技術(shù):軟件測試技術(shù),包括方法、工具。
● 資源:主要是指測試環(huán)境中所需要的硬件設(shè)備、網(wǎng)絡(luò)環(huán)境,甚至包括測試數(shù)據(jù)。另外一個(gè)重要因素就是測試時(shí)間,時(shí)間也是測試的資源,但測試人員不能看做資源,每個(gè)人的能力千差萬別,不同的測試人員擔(dān)任不同的角色,不能相互代替。這也是軟件圖書的經(jīng)典之作——《人件》的作者反對(duì)將人作為資源對(duì)待的原因。
● 流程:從測試計(jì)劃和測試用例的創(chuàng)建、評(píng)審到測試的執(zhí)行、報(bào)告,設(shè)定每個(gè)階段的進(jìn)出標(biāo)準(zhǔn)。
5個(gè)工作面
基于軟件測試金字塔的構(gòu)成,我們好好研究其5個(gè)工作面,如圖1-3所示。
圖1-3 軟件測試的5個(gè)基本工作面
● 質(zhì)量-人員-技術(shù):團(tuán)隊(duì)建設(shè),包括人員的招聘、培訓(xùn)、考核等。
● 質(zhì)量-人員-資源:成本管理,人員和軟硬件資源都是測試的投入,但同時(shí)必須將人和軟硬件資源區(qū)別對(duì)待,不要將人也作為軟硬件資源那樣處理,否則會(huì)帶來較多的問題。
● 質(zhì)量-技術(shù)-流程:技術(shù)和流程結(jié)合起來就是一種測試架構(gòu)或測試框架,通過技術(shù),將流程融入系統(tǒng)或工具中,流程的執(zhí)行才能穩(wěn)定、有效。技術(shù)通過框架固化,技術(shù)才能發(fā)揮最大效益。
● 質(zhì)量-流程-資源:基礎(chǔ)設(shè)施,構(gòu)建測試環(huán)境,將測試建立在堅(jiān)固、流程的基礎(chǔ)設(shè)施之上。
● 人員-技術(shù)-流程-資源:項(xiàng)目管理,在一定的質(zhì)量標(biāo)準(zhǔn)下,如何平衡這些要素、如何獲得最大的生產(chǎn)力,就是軟件測試項(xiàng)目管理的主要任務(wù)。
本文節(jié)選自《完美測試:軟件測試系列最佳實(shí)踐》一書,朱少民主編
posted on 2012-05-16 09:21 順其自然EVO 閱讀(207) 評(píng)論(0) 編輯 收藏 所屬分類: 測試學(xué)習(xí)專欄