qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          軟件測試的金字塔體系——從1個中心到5個要素

          埃及金字塔的神秘,不僅是因為它的規模宏偉、結構精密,而且它的興起和演變至今只是一個傳說,成為千古之謎。而軟件測試,也感覺和金字塔有一種神秘的關系,為什么這樣說呢?

            金字塔中有神奇的黃金分割數Φ,其值是個無窮小數,若只取三位小數便是0.618。如用金字塔的高除以底邊長,即1÷1.618 = 0.618。而金字塔許多特征數據,和13世紀數學家法布蘭斯所提到的奇異數字的組合,有許多巧合之處。這些奇異數字的組合是1、1、2、3、5、8、13、21、34、55、89、144、233…它們任何兩個連續的比率都接近0.618,如3/5、5/8、34/55、55/89、89/144等。而且金字塔有一個頂點、五個面、八個邊,總數為十三個層面,這些特征數據也和上述奇異數字非常吻合。

            首先,軟件測試的出發點就是質量,軟件測試的一切工作應該圍繞質量而開展。質量是軟件測試的中心,可以看做是金字塔的頂點,如圖1-1所示。測試的其他部分就是支撐這個頂點的測試人員、測試資源、測試技術和測試流程。因此,構成軟件測試的5個要素就是:質量、人員、技術、資源、流程。

            這樣,5個要素構成了5個面,每個面由3個要素構成,代表著軟件測試的工作面。具體是怎樣的工作面?請往下看,自然會越來越清楚。

            在這金字塔構成中,還有每兩個要素構成的8條邊,每條邊代表兩個要素之間的關系,如何處理這些關系,也就決定著測試能否獲得成功。基于要素、工作面、要素之間的關系,我們確定了13項軟件測試原則、21個關鍵域。針對軟件測試關鍵域,每個軟件組織可以了解自己在這個領域的水平,持續進行改進。最后,列出目前所使用的各種軟件測試方法,并將這些方法應用于軟件測試實際工作之中。所以軟件測試可概括為:

            從1個中心到5個要素

            質量(quality)是軟件測試的中心,這是毋庸置疑的。測試是質量保證的重要手段之一,測試本身就是為質量服務的。測試能否通過,其檢驗的標準是用戶的需求,也就是質量的標準。所以,在軟件測試的5個要素中,質量是核心,其他4個要素要服務于質量,服從于質量。

            如果要問,除了質量,還有什么是最重要的?那自然是測試人員。人是決定的因素,決定了技術和流程的執行。像軟件開發這樣的智力活動,要強調“以人為本”的管理文化,才能真正發揮每個人的潛力,以最有效的方法完成測試工作。

            如果繼續追問下去,在軟件測試過程中,哪兩樣東西是我們必須關注的?答案應該是“測試覆蓋率”和“效率(productivity)”。如何保證質量,一個重要的衡量方法就是測試的覆蓋率,包括用戶實際需求的覆蓋率和代碼覆蓋率。在保證質量的前提下,確定任務的優先級,采取正確的策略和方法,包括自動化測試方法,以高效的方法完成測試。

            一而再、再而三,關注了“測試覆蓋率”和“效率”,拿什么來保證呢?這不外乎三個方面,就是測試人員、測試流程和測試的技術。就人員來說,要從招聘、培訓和考核等各個環節來培育良好的團隊文化,樹立正確的工作態度,強化質量意識,提高團隊的戰斗力,構建卓越的測試團隊。無論是采用敏捷的測試流程還是傳統的測試流程,一定要結合具體的產品和技術特點,因地制宜,形成適合自己的、有效的測試流程。測試技術比較豐富,因而下面各章的討論會很多,從客戶端到服務器端,從黑盒測試白盒測試,從靜態測試到動態測試,全力構造一個完整的測試技術體系,使之滿足測試工作的需要。這些內容,可以用圖1-2形象地描述,使我們一目了然。

            軟件測試的金字塔體系可以基于上一節的描述進行擴充,得到如下結構,更接近于一串神秘的數字。

          圖1-2 軟件測試核心、目標、基礎等關系

           最后,總結一下軟件測試的5個要素。

            ● 質量:軟件質量是軟件測試的目標,也是軟件測試工作的中心,一切從質量出發,也就是一切從客戶需求出發。任何違背質量的東西都是問題,測試就是要找出這些問題。

            ● 人員:人是決定的因素,測試人員的態度、素質、能力決定著測試的效果,對測試產品的質量也有很大的影響。測試人員因素包括測試組織結構、角色和責任的定義。

            ● 技術:軟件測試技術,包括方法、工具。

            ● 資源:主要是指測試環境中所需要的硬件設備、網絡環境,甚至包括測試數據。另外一個重要因素就是測試時間,時間也是測試的資源,但測試人員不能看做資源,每個人的能力千差萬別,不同的測試人員擔任不同的角色,不能相互代替。這也是軟件圖書的經典之作——《人件》的作者反對將人作為資源對待的原因。

            ● 流程:從測試計劃和測試用例的創建、評審到測試的執行、報告,設定每個階段的進出標準。

            5個工作面

            基于軟件測試金字塔的構成,我們好好研究其5個工作面,如圖1-3所示。

          圖1-3 軟件測試的5個基本工作面

            ● 質量-人員-技術:團隊建設,包括人員的招聘、培訓、考核等。

            ● 質量-人員-資源:成本管理,人員和軟硬件資源都是測試的投入,但同時必須將人和軟硬件資源區別對待,不要將人也作為軟硬件資源那樣處理,否則會帶來較多的問題。

            ● 質量-技術-流程:技術和流程結合起來就是一種測試架構或測試框架,通過技術,將流程融入系統或工具中,流程的執行才能穩定、有效。技術通過框架固化,技術才能發揮最大效益。

            ● 質量-流程-資源:基礎設施,構建測試環境,將測試建立在堅固、流程的基礎設施之上。

            ● 人員-技術-流程-資源:項目管理,在一定的質量標準下,如何平衡這些要素、如何獲得最大的生產力,就是軟件測試項目管理的主要任務。

            本文節選自《完美測試:軟件測試系列最佳實踐》一書,朱少民主編

          posted on 2012-05-16 09:21 順其自然EVO 閱讀(205) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2012年5月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 大石桥市| 莲花县| 彰化县| 广安市| 泽普县| 义马市| 青浦区| 尖扎县| 许昌县| 渝中区| 台安县| 吉安县| 邵阳县| 仁怀市| 阜康市| 同心县| 石嘴山市| 长阳| 东城区| 乌苏市| 永胜县| 稻城县| 柳江县| 岳西县| 平遥县| 南投县| 五家渠市| 旅游| 双牌县| 平湖市| 娱乐| 新宁县| 承德县| 玉林市| 吉木乃县| 文昌市| 阿克苏市| 台湾省| 台州市| 深圳市| 安康市|