官术网_书友最值得收藏!

第二部分 核心講義

第1章 軟件測試概論

1.1 概述

一、軟件測試的發展

(1)早期的軟件開發過程中,將測試等同于“調試”,目的是糾正軟件中已經知道的故障,常常由開發人員自己完成這部分的工作。

(2)1957年,軟件測試開始與調試區別開來,成為一種發現軟件缺陷的活動,但測試仍然是后于開發的活動。

(3)20世紀80年代早期,軟件測試定義發生改變,測試不僅僅是一個發現錯誤的過程,且包含軟件質量評價的內容。軟件開發人員和測試人員開始制定各類測試標準,極大地推動了測試行業的發展。

(4)20世紀90年代,測試工具開始盛行。

(5)軟件測試研究取得了很大的突破,開始出現各種測試模型。

(6)測試技術發展很快,但是其發展速度仍落后于軟件開發技術的發展,軟件測試在今天仍然面對著巨大的挑戰。

二、軟件測試面臨的挑戰

(1)軟件在國防現代化、社會信息化和國民經濟信息化領域中的作用越來越重要,由此產生的測試任務也越來越繁重;

(2)軟件規模越來越大,功能越來越復雜,如何進行充分而有效的測試成為難題;

(3)面向對象的開發技術越來越普及,但是面向對象的測試技術卻才剛剛起步;

(4)對于分布式系統整體性能還不能進行很好的測試;

(5)對于實時系統來說,缺乏有效的測試手段;

(6)隨著安全問題的日益突出,如何對信息系統的安全性進行有效的測試與評估,成為世界性的難題。

1.2 國內外現狀

一、發達國家軟件測試的體現

在軟件比較發達的國家,特別是美國,軟件測試已經發展成為一個獨立的產業,主要體現在以下幾個方面:

(1)軟件測試在軟件公司中占有重要的地位。

(2)軟件測試理論研究蓬勃發展每年舉辦多種測試技術年會,發表大量研究論文,引領軟件測試理論研究的國際潮流。

(3)軟件測試市場繁榮美國有專業公司開發軟件測試標準與測試工具,其出品的測試工具已占領國際市場。

二、我國軟件測試的發展

我國正在邁入測試時代,主要體現在以下幾個方面:

(1)我國著名的軟件公司已經或正在建立獨立的專職軟件測試隊伍,雖然測試人員規模以及所占比例還不及國外的大公司,但是在公司內部貫徹了獨立測試的意識。

(2)國家人事部和信息產業部2003年關于職業資格認證第一次在我國有了“軟件評測師”的稱號,體現了國家對軟件測試職業的高度重視與認可。

(3)在信息產業部關于計算機系統集成資質以及信息系統工程監理資質的認證中,軟件測試能力已經被定為評價公司技術能力的一項重要指標。

(4)2001年信息產業部發布的部長5號令,實行了軟件產品登記認證制度,規定:凡是在我國境內銷售的產品必須到信息產業部備案登記,而且要經過登記測試。

(5)2001年起,國家質檢總局和信息產業部每年通過測試對軟件產品進行質量監督抽查。

(6)國家各部委,各行業正在通過測試規范行業軟件的健康發展,通過測試淘汰不符合行業標準要求的軟件,對行業信息化的健康發展起到了很好的促進作用。

(7)信息系統驗收要通過第三方測試機構的嚴格測試來判定。

(8)“以測代評”正成為我國科技項目擇優支持的一項重要舉措,如:國家“863”計劃對數據庫管理系統等項目的經費支持,都通過第三方測試機構科學客觀的測試結果來決定。

(9)軟件測試正在成為部分軟件學院的一門獨立課程,對我國軟件測試人才的培養起到了很好的作用。

(10)第三方測試機構得到了蓬勃的發展。最近兩年,在全國各地,新成立的軟件測試機構有10多家,測試服務體系已經基本確立。

1.3 軟件測試與軟件項目的關系

一、軟件測試和軟件項目的關系

軟件測試是為軟件項目服務的,在整個項目組中,要強調測試服務的概念,雖然軟件測試的目的是為了發現軟件中存在的錯誤,但是,其根本目的是為了提高軟件質量,降低軟件項目的風險。

二、軟件質量風險的表現

1.內部風險

在即將銷售的時候發現有重大的錯誤,從而延遲發布日期,失去市場機會。

2.外部風險

用戶發現了不能容忍的錯誤,引起索賠、法律糾紛,以及用于客戶支持的費用甚至失去客戶的風險。

三、軟件測試的局限性

軟件測試只能證明軟件存在錯誤,而不能證明軟件沒有錯誤。軟件公司對軟件項目的期望是在預計的時間、合理的預算下,提交一個可以交付的產品,測試的目的就是把軟件的錯誤控制在一個可以進行產品交付/發布的程度上。

可以交付/發布的產品是指把錯誤控制在一個合理的范圍之內,因為軟件測試需要花費巨大成本。故也要求在項目計劃時,要給測試留出足夠的時間和經費,倉促的測試或者由于項目提交計劃的壓力而終止測試,只能對整個項目造成無法估量的損害。

1.4 軟件測試的發展趨勢

一、測試工作將進一步前移

軟件測試不僅僅是單元測試、集成測試、系統測試和驗收測試,對需求的精確性和完整性的測試技術、對系統設計的測試技術將成為新的研究熱點。

二、軟件架構師、開發工程師、QA人員、測試工程師將進行更好的融合

軟件架構師、開發工程師、QA人員、測試工程師相互之間要成為伙伴關系,而不是相互對立的關系,因為其工作可以相互借鑒,相互促進,而且軟件測試工程師應該盡早地介入整個工程,在軟件定義階段就要開發相應的測試方法,使得每個需求定義都可以測試。

三、測試職業將得到充分的尊重

測試工程師和開發工程師不僅是矛盾體,也是相互協調的統一體。在整個軟件開發周期,二者提供的是至關重要的服務,人們將充分認識到測試的價值。

四、設置獨立的軟件測試部門。

軟件測試部門將和開發部、質量保證部一樣作為一個重要的獨立部門存在。

五、測試外包服務將快速增長

同軟件開發外包一樣,軟件測試外包將成為全球化的一種趨勢,可以利用職業測試專家隊伍與機構為自己的產品進行測試,可以節省測試費用。

1.5 第三方測試

一、概述

(1)此處,第三方測試是指獨立于軟件公司自身測試的測試。第三方是指在軟件公司和軟件用戶之間的一方。

(2)第三方測試機構是一個中介的服務機構,通過自己專業化的測試手段為客戶提供有價值的服務。但是第三方測試機構提供的服務不同于公司內部的測試。因為,第三方測試機構的測試除了發現軟件問題之外,還有對軟件進行科學、公正的評價的職能,這就要求第三方測試機構要保持公正、廉潔、客觀、科學、獨立的態度。

二、第三方測試機構存在的價值

第三方測試機構存在的價值主要是由軟件公司、軟件用戶以及國家的公正訴求所決定的。

1.軟件開發商

經過第三方測試機構的測試,不僅可通過專業化的測試手段發現軟件錯誤,幫助開發商提升軟件的品質,而且可以對軟件有客觀、科學的評價,有助于開發商認清自己產品的定位。

2.行業主管部門以及軟件使用者

第三方測試機構獨立公正的地位有助于對被測軟件進行客觀公正的評價,幫助用戶選擇合適、優秀的軟件產品。

3.信息工程項目

驗收前,經過第三方機構的嚴格測試,可以最大程度地避免信息行業的“豆腐渣”工程。

4.有利于國家軟件產品的質量監督

可為國家軟件產品的質量監督抽查提供獨立公正的測試支持。

主站蜘蛛池模板: 隆安县| 晋江市| 永新县| 崇信县| 怀安县| 兴宁市| 伊宁市| 台南县| 东丽区| 潼关县| 龙门县| 邻水| 云龙县| 西青区| 桂林市| 明光市| 岳阳县| 兴宁市| 黎川县| 宜昌市| 大邑县| 商河县| 封丘县| 桐庐县| 体育| 乐业县| 淅川县| 金溪县| 泾源县| 梁平县| 诸暨市| 东丰县| 台山市| 颍上县| 石河子市| 临邑县| 南陵县| 轮台县| 普宁市| 云龙县| 太和县|