第三方測試

第三方測試有別於開發人員或用戶進行的測試,其目的是為了保證測試工作的客觀性。從國外的經驗來看,測試逐漸由專業的第三方承擔。同時第三方測試還可適當兼顧初級監理的功能,其自身具有明顯的工程特性,為發展軟體工程監理制奠定堅實的基礎。第三方測試工程主要包括需求分析審查、設計審查、代碼審查、單元測試功能測試性能測試、可恢復性測試、資源消耗測試、並發測試、健壯性測試安全測試、安裝配置測試、可移植性測試文檔測試以及最終的驗收測試等十餘項。

基本介紹

  • 中文名:第三方測試
  • 有別於:開發人員或用戶進行的測試
  • 目的:為了保證測試工作的客觀性
  • 類型:對軟體企業的CMM評估認證等
概述,作用,組織管理,分類,三種類型:,五個層次:,

概述

測試並不僅僅是為了要找出錯誤。測試方還需要對錯誤進行歸類和總結,通過分析錯誤產生的原因和錯誤的分布特徵,可以幫助項目管理者發現當前所採用的軟體過程的缺陷,以便改進,更好地幫助用戶。根據軟體工程的要求,測試工作應貫穿開發的全過程,如右圖所示。
從測試流程中可以看出,編碼和單元測試基本上屬於程式的調試,一般由開發方自己進行。作為第三方測試,定位在系統測試集成測試最為有效。但是,為了得到高質量的軟體,第三方也要適當介入編碼與單元測試,能夠更好地保證測試的有效性、準確性和可信性。
測試評估是軟體測試的一個階段性的結論,用所生成的測試評估報告,來確定測試是否達到完全和成功的標準。在測度評估階段向用戶提供強有力的支持,包括通過測試報告,驗證測試結果是否符合測試計畫中制定的測試標準;根據缺陷報告提供的測試結果數據,給出軟體質量和測試完整性的評估報告;特別在以下幾方面對測試的過程進行評測:
(1)評估測試用例覆蓋:測試的目標是確保100%的測試用例全部成功地執行。如果這個目標可行或不可能達到,則要根據不同的情況制定不同的測試覆蓋標準。主要考慮風險和嚴重性、可接受的覆蓋百分比。
(2)評估代碼覆蓋:需要斷定測試目標期望的總的測試代碼行數,在測試中真正執行的代碼行數及其百分比,將此結果記錄在測試評估報告中。
(3)分析缺陷:對缺陷進行分析,應遵照缺陷分析策略中制定的分析標準。
最常用的缺陷分析標準有三種:缺陷分布——缺陷數量作為隨缺陷屬性變化的函式(如狀態和級別);缺陷趨勢——缺陷數量作為以時間為條件的函式;缺陷滯留——特殊的缺陷密度報告,缺陷數量與缺陷在某一狀態保留的時間長短有關。
(4)確定測試是否達到完全和成功的標準在此階段將判定測試是否已達到完全並可接受,生成測試結果報告。

作用

第三方測試以契約的形式制約了測試方,使得它與開發方存在某種‘對立’的關係,所以它不會刻意維護開發方的利益,保證了測試工作在一開始就具有客觀性。第三方一般都不直接參加開發方系統的設計和編程,為了能夠深入理解系統,發現系統中存在得問題,第三方測試必須按軟體工程的要求辦事,以軟體工程的標準要求開發方和用戶進行配合,從而較好地體現軟體工程的理念。引入第三方測試後,由於測試方相對的客觀位置,由用戶、開發方、測試方三方組成的三角關係也便於處理以往用戶、開發方雙方糾纏不清的矛盾,使得許多問題能得到比較客觀的處理。
第三方測試不同於開發方的自測試。由開發人員承擔的測試存在很多弊病,除去自身利益驅使帶來的問題外,還有許多不客觀的毛病,主要表現在思維的定勢上。由於他熟悉設計和編程等,往往習慣於按一定的“程式”考慮問題,以至思路比較局限,難於發現“程式”外存在的問題。因為第三方測試的目的就是為儘量多地發現程式中的錯誤而運行程式的過程,可以更多的發現問題。此外,隨著系統越做越大,客觀上講開發人員也無精力參與測試,同時也不符合大生產專業分工的原則。
第三方測試不同於用戶的自測試。用戶是套用軟體需求的提出者,對於軟體應該完成的功能是非常清楚的,是進行功能驗證的最佳人選。客觀情況是,大部分的用戶都不是計算機的專業人士,很難對系統的內部實現過程進行深入的分析。對系統的全面測試,功能測試僅僅是一個方面,還要包括並發能力、性能等多種技術測試。這些測試對技術有很高的要求,必須由計算機的專業人員才能完成。
第三方測試一般還兼顧初級監理的職能,不但要對套用進行各種測試,還進行需求分析的評審、設計評審、用戶類文檔的評審等,這些工作對用戶進行系統的驗收以及推廣套用都非常有意義。

組織管理

在測試的過程中,用戶、開發方與測試方形成了一個三角關係,從最終目標來講,三方是完全一致的,都是希望保證系統穩定運行。但在測試過程中,三方的關係卻是既對立又合作。對立是指各自堅持自己的職責,合作是指每一方的工作都需要其它兩方的支持和幫助。
為了保證測試的順利進行,測試方必須強化內部的組織管理。根據我們的經驗,完整的測試機構必須包括業務分析部門、技術支持部門、規劃設計部門和綜合後勤部門。例如在中國現代化支付系統第三方測試項目當中,信息化工程總體研究中心的人員分工大致是:部分人員專攻支付業務,部分人員專攻技術支持,部分人員負責測試規劃與綜合案例的設計,部分人員負責現場情景調度,部分人員從事案例的細化與運行。測試結果表明,總體上達到了各司其職、忙而有序。

分類

根據軟體的特性,第三方軟體測試工程可劃分為三種類型五個層次。

三種類型:

1、系統軟體、環境軟體和各類工具軟體等的測評。這類軟體多作為計算機的環境或作 “公用” 支撐軟體,產品類型多、市場銷量大、生產廠商多,產品的特點大都有企業、甚至國際的產品質量標準,用戶選擇使用時大都希望進行產品功能、性能的對比測試;對於這類軟體的評測重點是軟體產品的功能、性能和特點評測。
2、面向套用軟體系統的測評。這類軟體,具有很強的行業套用特性,往往是要由用戶與開發商簽定項目契約,開發商負責開發,用戶負責驗收。對這類軟體的評測,根據用戶對第三方的依賴程度,又可分為兩個層次。
承擔該類軟體質量監理評測的第三方,承擔軟體過程質量監理的責任,在軟體生命周期過程中,從軟體定義開始,要對軟體過程從質量保證角度進行規範化的監督、管理和控制。評測工作不僅包括軟體生命周期各階段的評審,而且還要對程式系統,進行包括模組白盒測試在內的系統集成、系統驗收等測試。山東省軟體評測中心在長期從事第三方測試的實踐中總結出:第三方實際上是軟體業主授權的初級的軟體工程監理。
3、是對軟體企業的CMM評估認證,也是最高層次的軟體評測

五個層次:

山東省軟體評測中心提出,第三方測試應該貫穿項目開發的全過程。對編制的程式進行集成測試、系統測試、模擬測試、驗收測試,可以及時發現項目實施過程中存在的問題及其缺陷,儘早提出修改和完善的可行方法及措施,從而促進項目按預定的進度、質量要求順利實施。常見的分類方式將其劃分為五個層次:
1、單元測試:單元測試是對軟體中的基本組成單位進行的測試,如一個模組、一個過程等等。它是軟體動態測試的最基本的部分,也是最重要的部分之一,其目的是檢驗軟體基本組成單位的正確性。一個軟體單元的正確性是相對於該單元的規約而言的。因此,單元測試以被測試單位的規約為基準。單元測試的主要方法有控制流測試、數據流測試、排錯測試、分域測試等等。
2、集成測試:集成測試是在軟體系統集成過程中所進行的測試,其主要目的是檢查軟體單位之間的接口是否正確。它根據集成測試計畫,一邊將模組或其他軟體單位組合成越來越大的系統,一邊運行該系統,以分析所組成的系統是否正確,各組成部分是否合拍。集成測試的策略主要有自頂向下和自底向上兩種。
3、系統測試:系統測試是對已經集成好的軟體系統進行徹底的測試,以驗證軟體系統的正確性和性能等滿足其規約所指定的要求,檢查軟體的行為和輸出是否正確並非一項簡單的任務,它被稱為測試的 “ 先知者問題 ” 。因此,系統測試應該按照測試計畫進行,其輸入、輸出和其他動態運行行為應該與軟體規約進行對比。軟體系統測試方法很多,主要有功能測試、性能測試、隨機測試等等。
4、驗收測試:驗收測試旨在向軟體的購買者展示該軟體系統滿足其用戶的需求。它的測試數據通常是系統測試的測試數據的子集。所不同的是,驗收測試常常有軟體系統的購買者代表在現場,甚至是在軟體安裝使用的現場。這是軟體在投入使用之前的最後測試。
5、回歸測試:回歸測試是在軟體維護階段,對軟體進行修改之後進行的測試。其目的是檢驗對軟體進行的修改是否正確。這裡,修改的正確性有兩重含義:一是所作的修改達到了預定目的,如錯誤得到改正,能夠適應新的運行環境等等;二是不影響軟體的其他功能的正確性。

熱門詞條

聯絡我們