[著作權申明]:本文著作權歸謝敏所有。(qq 6573616)任何大幅引用和刊用均需征得作者同意。
軟件測試管理
編寫 若水
軟件測試是保證軟件
質量的重要手段,本文從軟件質量和軟件測試的基本概念出發,介紹了有關軟件測試組織與管理的方法,并結合我自己經歷的軟件測試的組織實施過程,說明軟件質量和軟件測試的重要性和必要性。
一、軟件質量概述
信息技術的飛速發展,使軟件產品應用到社會的各個領域,軟件產品的質量自然成為人們共同關注的焦點。不論軟件的生產者還是軟件的使用者,均生存在競爭的環境中,軟件
開發商為了占有市場,必須把軟件質量作為企業的重要目標之一,以免在激烈的競爭中被淘汰出局。用戶為了保證自己業務的順利完成,當然希望選用優質的軟件。質量不佳的軟件產品不僅會使開發商的維護費用和用戶的使用成本大幅增加,還可能產生其他的責任風險。在一些關鍵應用 (如
銀行結算系統、證券交易系統等)中使用質量有問題的軟件,還可能造成災難性的后果。軟件質量是指與軟件產品滿足規定的和隱含的
需求的能力有關的特征和特性的全體。
通常來說,軟件質量應該包含下面的一些特性:
(1) 功能性:軟件所實現的功能達到它的設計規范和滿足用戶需求的程度;
(2) 易使用性:對于一個軟件,用戶學習、操作、準備輸入和理解輸出所作努力的程度;
(3)
可靠性:在規定的時間和條件下,軟件所能維持其
性能水平的程度;
(4) 效率:在指定條件下,用軟件實現某種功能所需的計算機資源(包括時間)的有效程度;
(5) 可維護性:在一個運行軟件中,當環境改變或軟件發生錯誤時,進行相應修改所做努力的程度;
(6) 可移植性:軟件從一個計算機系統或環境移植到另一個系統或環境的容易程度。
軟件質量是一個軟件企業成功的必要條件,其重要性無論怎樣強調都不過分。軟件質量與傳統意義上的質量概念并無本質差別,只是針對軟件的某些特性進行了調整。
二、軟件測試及其重要性
軟件危機曾經是軟件界甚至整個計算機界最熱門的話題,F在人們已經逐步認識到所謂的軟件危機實際上僅是一種狀況,那就是軟件中有錯誤,正是這些錯誤導致了軟件開發在成本、進度和質量上的失控。有錯是軟件的屬性,而且是無法改變的,因為軟件是由人來完成的,所有由人做的工作都不會是完美無缺的。問題在于我們如何去避免錯誤的產生和消除已經產生的錯誤,使程序中的錯誤密度達到盡可能低的程度。
軟件測試:
軟件測試的定義有許多種,其中比較權威的是IEEE在1983年提出的:“使用人工或自動手段來運行或測定某個系統的過程,其目的在于檢驗它是否滿足規定的需求或是弄清預期結果與實際結果之間的差別!
軟件測試的重要:
軟件測試在軟件生命周期中占據重要的地位,軟件生命周期每一階段中都應包含測試,從而檢驗本階段的成果是否接近預期的目標,盡可能早的發現錯誤并加以修正,如果不在早期階段進行測試,錯誤的延時擴散常常會導致最后成品測試的巨大困難。
事實上,對于軟件來講,不論采用什么技術和什么方法,軟件中仍然會有錯。采用新的語言、先進的開發方式、完善的開發過程,可以減少錯誤的引入,但是不可能完全杜絕軟件中的錯誤,這些引入的錯誤需要測試來找出,軟件中的錯誤密度也需要測試來進行估計。測試是軟件開發的重要部分。自有程序設計的那天起測試就一直伴隨著。
在實踐中,軟件測試的困難常常使人望而卻步或敷衍了事,這是由于對測試仍然存在一些不正確的看法和錯誤的態度。
三、軟件測試的組織與管理
隨著軟件開發規模的增大、復雜程度的增加,以尋找軟件中的錯誤為目的的測試工作就顯得更加困難。然而,為了盡可能多地找出程序中的錯誤,生產出高質量的軟件產品,加強對測試工作的組織和管理就顯得尤為重要。
從軟件的生存周期看,測試往往指對程序的測試,這樣做的優點是被測對像明確,測試的可操作性相對較強。但是,由于測試的依據是規格說明書、設計文檔和使用說明書,如果設計有錯誤,測試的質量就難以保證。即使測試后發現是設計的錯誤,這時,修改的代價是相當昂貴的。因此,較理想的做法應該是對軟件的開發過程,按
軟件工程各階段形成的結果,分別進行嚴格的審查。
1.測試的過程及組織
當設計工作完成以后,就應該著手測試的準備工作了,一般來講,由一位對整個系統設計熟悉的設計人員編寫測試大綱,明確測試的內容和測試通過的準則,設計完整合理的
測試用例,以便系統實現后進行全面測試。
在實現組將所開發的程序經驗證后,提交測試組,由測試負責人組織測試,測試一般可按下列方式組織:
(1)首先,
測試人員要仔細閱讀有關資料,包括規格說明、設計文檔、使用說明書及在設計過程中形成的測試大綱、測試內容及測試的通過準則,全面熟悉系統,編寫
測試計劃,設計測試用例,作好測試前的準備工作。
(2)為了保證測試的質量,將
測試過程分成幾個階段,即:代碼審查、
單元測試、
集成測試、
確認測試和系統測