軟體測試過程

2022-12-09 05:45:04 字數 4833 閱讀 6622

引言2023年,在美國發生了這樣一件事:程式設計人員把乙個fortran程式的迴圈語句do 5 i=1,3誤寫為do 5 i=1.3。

一點之差導致飛往火星的火箭**,造成1000多萬美元的損失。這種情況的發生,迫使人們考慮在軟體投入使用之前必須進行徹底的測試。今天, 在軟體比較發達的國家,軟體測試已經成為乙個獨立的產業,軟體公司紛紛建立獨立的測試隊伍研究測試技術並開展測試工作。

中國的軟體測試起步較晚,但隨著我國軟體產業的蓬勃發展以及人們對軟體質量的重視,軟體測試正在成為乙個新興的產業。近兩年來,國內新成立專業性測試機構10余家,一批批專業的軟體測試人員正湧現出來。每年國內都有大量的測試技術交流會議舉辦,有大量的測試研究**在專業刊物上發表。

在測試技術發展的同時,測試過程的管理顯得猶為重要。乙個成功的測試專案,離不開對測試過程科學的組織和監控,過程管理已成為測試成功的重要保證。

1 測試過程概述

1.1 軟體測試過程概述

軟體測試過程是一種抽象的模型,用於定義軟體測試的流程和方法。眾所周知,開發過程的質量決定了軟體的質量,同樣的,測試過程的質量將直接影響測試結果的準確性和有效性。軟體測試過程和軟體開發過程一樣,都遵循軟體工程原理,遵循管理學原理。

隨著測試過程管理的發展,軟體測試專家通過實踐總結出了很多很好的測試過程模型。這些模型將測試活動進行了抽象,並與開發活動有機的進行了結合,是測試過程管理的重要參考依據。

1.2 軟體測試過程模型介紹

v模型 v模型最早是由paul rook在20世紀80年代後期提出的,旨在改進軟體開發的效率和效果。v模型反映出了測試活動與分析設計活動的關係。在圖1-1中,從左到右描述了基本的開發過程和測試行為,非常明確的標註了測試過程中存在的不同型別的測試,並且清楚的描述了這些測試階段和開發過程期間各階段的對應關係。

圖1-1 軟體測試v模型

v模型指出,單元和整合測試應檢測程式的執行是否滿足軟體設計的要求;系統測試應檢測系統功能、效能的質量特性是否達到系統要求的指標;驗收測試確定軟體的實現是否滿足使用者需要或合同的要求。

但v模型存在一定的侷限性,它僅僅把測試作為在編碼之後的乙個階段,是針對程式進行的尋找錯誤的活動,而忽視了測試活動對需求分析、系統設計等活動的驗證和確認的功能。

w模型 w模型由evolutif公司公司提出,相對於v模型,w模型增加了軟體各開發階段中應同步進行的驗證和確認活動。如圖1-2所示,w模型由兩個v字型模型組成,分別代表測試與開發過程,圖中明確表示出了測試與開發的並行關係。

w模型強調:測試伴隨著整個軟體開發周期,而且測試的物件不僅僅是程式,需求、設計等同樣要測試,也就是說,測試與開發是同步進行的。w模型有利於盡早地全面的發現問題。

例如,需求分析完成後,測試人員就應該參與到對需求的驗證和確認活動中,以盡早地找出缺陷所在。同時,對需求的測試也有利於及時了解專案難度和測試風險,及早制定應對措施,這將顯著減少總體測試時間,加快專案進度。

但w模型也存在侷限性。在w模型中,需求、設計、編碼等活動被視為序列的,同時,測試和開發活動也保持著一種線性的前後關係,上一階段完全結束,才可正式開始下乙個階段工作。這樣就無法支援迭代的開發模型。

對於當前軟體開發複雜多變的情況,w模型並不能解除測試管理面臨著困惑。

圖1-2 軟體測試w模型

h模型 v模型和w模型均存在一些不妥之處。如前所述,它們都把軟體的開發視為需求、設計、編碼等一系列序列的活動,而事實上,這些活動在大部分時間內是可以交叉進行的,所以,相應的測試之間也不存在嚴格的次序關係。同時,各層次的測試(單元測試、整合測試、系統測試等)也存在反覆觸發、迭代的關係。

為了解決以上問題,有專家提出了h模型。它將測試活動完全獨立出來,形成了乙個完全獨立的流程,將測試準備活動和測試執行活動清晰地體現出來,如圖1-3所示。

圖1-3 軟體測試h模型

這個示意圖僅僅演示了在整個生產週期中某個層次上的一次測試「微迴圈」。圖中標註的其他流程可以是任意的開發流程。例如,設計流程或編碼流程。

也就是說,只要測試條件成熟了,測試準備活動完成了,測試執行活動就可以(或者說需要)進行了。

h模型揭示了乙個原理:軟體測試是乙個獨立的流程,貫穿產品整個生命週期,與其他流程併發地進行。h模型指出軟體測試要盡早準備,盡早執行。

不同的測試活動可以是按照某個次序先後進行的,但也可能是反覆的,只要某個測試達到準備就緒點,測試執行活動就可以開展。

其他模型

除上述幾種常見模型外,業界還流傳著其他幾種模型,例如x模型、前置測試模型等。x模型提出針對單獨的程式片段進行相互分離的編碼和測試,此後通過頻繁的交接,通過整合最終合成為可執行的程式。前置測試模型體現了開發與測試的結合,要求對每乙個交付內容進行測試。

這些模型都針對其他模型的缺點提出了一些修正意見,但本身也可能存在一些不周到的地方。所以在測試過程管理中,正確選取過程模型是乙個關鍵問題。

1.3 軟體測試過程模型選取策略

前面介紹的測試過程模型中,v模型強調了在整個專案開發中需要經歷的不同的測試級別,但忽視了測試的物件不應該僅僅是程式。而w模型在這一點上進行了補充,明確指出應該對需求、設計進行測試。但是v模型和w模型都沒有將乙個完整的測試過程抽象出來,成為乙個獨立的流程,這並不適合當前軟體開發中廣泛應用的迭代模型。

h模型則明確指出測試的獨立性,也就是說只要測試條件成熟了,就可以開展測試。

在實際測試工作中我們應該盡可能地去應用各模型中對專案有實用價值的方面,不能強行的為使用模型而使用模型。在測試實踐中,我們採用的方法是:以w模型作為框架,及早的、全面的開展測試。

同時靈活運用h模型獨立測試的思想,在達到恰當的就緒點時就應該開展獨立的測試工作,同時將測試工作進行迭代,最終保證完成測試目標。

2 測試過程管理理念

生命週期模型為我們提供了軟體測試的流程和方法,為測試過程管理提供了依據。但實際的測試工作是複雜而煩瑣的,可能不會有哪種模型完全適用於某項測試工作。所以,我們應該從不同的模型中抽象出符合實際現狀的測試過程管理理念,依據這些理念來策劃測試過程,以不變應萬變。

當然測試管理牽涉的範圍非常的廣泛,包括過程定義、人力資源管理、風險管理等等,本節僅介紹幾條從過程模型中提煉出來的,對實際測試有指導意義的管理理念。

2.1 盡早測試

「盡早測試」是從w模型中抽象出來的理念。我們說測試並不是在**編寫完成之後才開展的工作,測試與開發是兩個相互依存的並行的過程,測試活動在開發活動的前期已經開展。

「盡早測試」包含兩方面的含義:第一,測試人員早期參與軟體專案,及時開展測試的準備工作,包括編寫測試計畫、制定測試方案以及準備測試用例;第二,盡早的開展測試執行工作,一旦**模組完成就應該及時開展單元測試,一旦**模組被整合成為相對獨立的子系統,便可以開展整合測試,一旦有build提交,便可以開展系統測試工作。

由於及早的開展了測試準備工作,測試人員能夠於早期了解測試的難度、**測試的風險,從而有效提高了測試效率,規避測試風險。由於及早的開展測試執行工作,測試人員盡早的發現軟體缺陷,大大降低了bug修復成本。但是需要注意,「盡早測試」並非盲目的提前測試活動,測試活動開展的前提是達到必須的測試就緒點。

2.2 全面測試

軟體是程式、資料和文件的集合,那麼對軟體進行測試,就不僅僅是對程式的測試,還應包括軟體「副產品」的「全面測試」,這是w模型中乙個重要的思想。需求文件、設計文件作為軟體的階段性產品,直接影響到軟體的質量。階段產品質量是軟體質量的量的積累,不能把握這些階段產品的質量將導致最終軟體質量的不可控。

「全面測試」包含兩層含義:第一,對軟體的所有產品進行全面的測試,包括需求、設計文件,**,使用者文件等等。第二,軟體開發及測試人員(有時包括使用者) 全面的參與到測試工作中,例如對需求的驗證和確認活動,就需要開發、測試及使用者的全面參與,畢竟測試活動並不僅僅是保證軟體執行正確,同時還要保證軟體滿足了使用者的需求。

「全面測試」有助於全方位把握軟體質量,盡最大可能的排除造成軟體質量問題的因素,從而保證軟體滿足質量需求。

2.3 全過程測試

在w模型中充分體現的另乙個理念就是「全過程測試」。雙v字過程圖形象的表明了軟體開發與軟體測試的緊密結合,這就說明軟體開發和測試過程會彼此影響,這就要求測試人員對開發和測試的全過程進行充分的關注。

「全過程測試」包含兩層含義:第一,測試人員要充分關注開發過程,對開發過程的各種變化及時做出響應。例如開發進度的調整可能會引起測試進度及測試策略的調整,需求的變更會影響到測試的執行等等。

第二,測試人員要對測試的全過程進行全程的跟蹤,例如建立完善的度量與分析機制,通過對自身過程的度量,及時了解過程資訊,調整測試策略。

「全過程測試」有助於及時應對專案變化,降低測試風險。同時對測試過程的度量與分析也有助於把握測試過程,調整測試策略,便於測試過程的改進。

2.4 獨立的、迭代的測試

我們知道,軟體開發瀑布模型只是一種理想狀況。為適應不同的需要,人們在軟體開發過程中摸索出了如螺旋、迭代等諸多模型,這些中需求、設計、編碼工作可能重疊並反覆進行的,這時的測試工作將也是迭代和反覆的。如果不能將測試從開發中抽象出來進行管理,勢必使測試管理陷入困境。

軟體測試與軟體開發是緊密結合的,但並不代表測試是依附於開發的乙個過程,測試活動是獨立的。這正是h模型所主導的思想。「獨立的、迭代的測試」著重強調了測試的就緒點,也就是說,只要測試條件成熟,測試準備活動完成,測試的執行活動就可以開展。

所以,我們在遵循盡早測試、全面測試、全過程測試理念的同時,應當將測試過程從開發過程中適當的抽象出來,作為乙個獨立的過程進行管理。時刻把握獨立的、 迭代測試的理念,減小因開發模型的繁雜給測試管理工作帶來的不便。對於軟體過程中不同階段的產品和不同的測試型別,只要測試準備工作就緒,就可以及時開展測試工作,把握產品質量。

3 測試過程管理實踐

本節以乙個實際專案系統測試過程(不對單元測試和整合測試過程進行分析)的幾個關鍵過程管理行為為例,來闡述上節中提出的測試理念。在乙個構件化erp專案中,由於前期需求不明確,開發周期相對較長,為了對專案進行更好的跟蹤和管理,專案採用增量和迭代模型進行開發。整個專案開發共分三個階段完成:

第一階段實現進銷存的簡單的功能和工作流;第二階段:實現固定資產管理、財務管理,並完善第一階段的進銷存功能;第三階段:增加辦公自動化的管理(oa)。

該專案每一階段工作是對上一階段成果的一次迭代完善,同時將新功能進行了一次疊加。

軟體測試過程管理辦法

v0.2 修訂歷史記錄 目錄1.概要 3 1.1.目的 3 1.2.適用範圍 3 2.職責 4 3.測試準備 4 3.1.文件分析 4 3.2.測試計畫 4 3.3.測試用例 4 3.3.1.測試用例設計方法 5 3.4.測試軟 硬體環境 5 3.5.測試資料準備 5 4.測試執行 5 4.1.專案...

網口雷擊測試過程

網口雷擊測試步驟 引數設定 板子後端加上tvs 差模試驗 注 1 rj45介面說明 網口朝向自己左邊為1,最右邊為8,1與2,3與6為百兆和千兆共有。4與5,7與8位千兆獨有。2 快速判斷百兆與千兆網口 百兆網口可以看出有2個tvs,千兆網口可以看出有4個tvs。3 千兆網口既要用網線的百兆線進行雷...

管理體系 測試過程管理

編寫人 提交時間 批准人 批准人意見 批准時間 文件的提交和審批 提交 由管理體系制定的相關人員提交 審批 與管理體系相關文件一同審批確認 執行 由測試專案開發經理在測試過程中根據測試流程組織測試過程的執行。修訂記錄 變化狀態 a 增加,m 修改,d 刪除說明 本文件為管理體系文件 在文件修訂時,請...