複製鏈接
請複製以下鏈接發送給好友

第三方測試

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

第三方測試產品介紹

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

第三方測試作用

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

第三方測試組織管理

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

第三方測試分類

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

第三方測試三種類型

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

第三方測試五個層次

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