1、目標
制定完整且具體的測試路線和流程,為快速、高效和高質量的軟件測試提供基礎流程框架。
最終目標是實現軟件測試規范化,標準化。
2、測試流程說明

3、測試需求分析
測試需求是整個測試過程的基礎;確定測試對象以及測試工作的范圍和作用。用來確定整個測試工作(如安排時間表、測試設計等)并作為測試覆蓋的基礎。而且被確定的測試需求項必須是可核實的。即,它們必須有一個可觀察、可評測的結果。無法核實的需求不是測試需求。所以我現在的理解是測試需求是一個比較大的概念,它是在整個測試計劃文檔中體現出來的,不是類似的一個用例或者其他.
·測試需求是制訂測試計劃的基本依據,確定了測試需求能夠為測試計劃提供客觀依據;
·測試需求是設計測試用例的指導,確定了要測什么、測哪些方面后才能有針對性的設計測試用例;
·測試需求是計算測試覆蓋的分母,沒有測試需求就無法有效地進行測試覆蓋;
3.1、測試方法與規范
3.1.1、測試方法
隨著軟件技術發展,項目類型越來越多樣化。根據項目類型應選用針對性強的測試方法,合適的測試方法可以讓我們事半功倍。以下是針對目前項目工程可以參考的測試方法:
--β測試(beta測試)--非程序員、測試人員
β測試,英文是Betatesting。又稱Beta測試,用戶驗收測試(UAT)。
β測試是軟件的多個用戶在一個或多個用戶的實際使用環境下進行的測試。開發者通常不在測試現場,Beta測試不能由程序員或測試員完成。
當開發和測試根本完成時所做的測試,而最終的錯誤和問題需要在最終發行前找到。這種測試一般由最終用戶或其他人員完成,不能由程序員或測試員完成。
--α測試(Alpha測試)--非程序員、測試人員
α測試,英文是Alphatesting。又稱Alpha測試.
Alpha測試是由一個用戶在開發環境下進行的測試,也可以是公司內部的用戶在模擬實際操作環境下進行的受控測試,Alpha測試不能由該系統的程序員或測試員完成。
在系統開發接近完成時對應用系統的測試;測試后,仍然會有少量的設計變更。這種測試一般由最終用戶或其他人員來完成,不能由程序員或測試員完成。
--兼容性測試--測試人員
兼容性測試是指測試軟件是否可以成功移植到指定的硬件或者軟件環境中,例如在B/S項目中各個不同瀏覽器之間的測試。
--用戶界面測試-UI測試 --測試人員
用戶界面測試,英文是User interface testing。又稱UI測試。
用戶界面,英文是User interface。是指軟件中的可見外觀及其底層與用戶交互的部分(菜單、對話框、窗口和其它控件)。
用戶界面測試是指測試用戶界面的風格是否滿足客戶要求,文字是否正確,頁面是否美觀,文字,圖 片組合是否完美,操作是否友好等等。UI 測試的目標是確保用戶界面會通過測試對象的功能來為用戶提供相應的訪問或瀏覽功能。確保用戶界面符合公司或行業的標準。包括用戶友好性、人性化、易操作性 測試。
用戶界面測試用戶分析軟件用戶界面的設計是否合乎用戶期望或要求。它常常包括菜單,對話框及對 話框上所有按鈕,文字,出錯提示,幫助信息 (Menu 和Help content)等方面的測試。比如,測試Microsoft Excel中插入符號功能所用的對話框的大小,所有按鈕是否對齊,字符串字體大小,出錯信息內容和字體大小,工具欄位置/圖標等等。
--冒煙測試--版本編譯者
冒煙測試,英文是Smoketesting。
冒煙測試的名稱可以理解為該種測試耗時短,僅用一袋煙功夫足夠了。也有人認為是形象地類比新電路板功基本功能檢查。任何新電路板焊好后,先通電檢查,如果存在設計缺陷,電路板可能會短路,板子冒煙了。
冒煙測試的對象是每一個新編譯的需要正式測試的軟件版本,目的是確認軟件基本功能正常,可以進行后續的正式測試工作。冒煙測試的執行者是版本編譯人員。
--隨機測試--測試人員
隨機測試,英文是Adhoctesting。
隨機測試沒有書面測試用例、記錄期望結果、檢查列表、腳本或指令的測試。主要是根據測試者的經驗對軟件進行功能和性能抽查。隨機測試是根據測試說明書執行用例測試的重要補充手段,是保證測試覆蓋完整性的有效方式和過程。
隨機測試主要是對被測軟件的一些重要功能進行復測,也包括測試那些當前的測試樣例(TestCase)沒有覆蓋到的部分。另外,對于軟件更新和新增加的功能要重點測試。重點對一些特殊點情況點、特殊的使用環境、并發性、進行檢查。尤其對以前測試發現的重大Bug,進行再次測試,可以結合回歸測試(Regressivetesting)一起進行。
--黑盒測試(功能測試)--測試人員
黑盒測試,英文是BlackBoxTesting。又稱功能測試或者數據驅動測試。
黑盒測試是根據軟件的規格對軟件進行的測試,這類測試不考慮軟件內部的運作原理,因此軟件對用戶來說就像一個黑盒子。
軟件測試人員以用戶的角度,通過各種輸入和觀察軟件的各種輸出結果來發現軟件存在的缺陷,而不關心程序具體如何實現的一種軟件測試方法。
--性能測試
性能測試,英文是PerformanceTesting。
性能測試是在交替進行負荷和強迫測試時常用的術語。理想的"性能測試"(和其他類型的測試)應在需求文檔或質量保證、測試計劃中定義。性能測試一般包括負載測試和壓力測試。
通常驗證軟件的性能在正常環境和系統條件下重復使用是否還能滿足性能指標。或者執行同樣任務時新版本不比舊版本慢。一般還檢查系統記憶容量在運行程序時會不會流失(memoryleak)。比如,驗證程序保存一個巨大的文件新版本不比舊版本慢。
3.1.2、測試規范
測試規范是根據開發規范而制定的測試標準,測試規范也是后期測試用例編寫的重要依據。因為開發規范因公司而異,因產品而異,所以測試規范的標準程度每個公司都不一樣。
從理論到方法到各類流程到各類報告模版,都屬于測試規范的范疇,當一整套規范形成之后,可使得測試工作進行更加穩健,所有問題有據可查。
3.2、軟件需求規格說明書
軟件需求規格說明書是軟件達到的各項功能的目標。是測試人員各項工作的依據,沒有需求就無法判斷測試結果是正確的。
3.3、軟件設計說明(概要與詳細設計)
設計說明書包含軟件的一些框架、字段、數據庫設計等。軟件設計說明對測試工作開展有很大影響,沒有軟件設計說明很多問題將無法溯源,測試準備的前期工作也是根據軟件設計說明來制定的。
--用戶界面測試-UI測試 --測試人員
用戶界面測試,英文是User interface testing。又稱UI測試。
用戶界面,英文是User interface。是指軟件中的可見外觀及其底層與用戶交互的部分(菜單、對話框、窗口和其它控件)。
用戶界面測試是指測試用戶界面的風格是否滿足客戶要求,文字是否正確,頁面是否美觀,文字,圖 片組合是否完美,操作是否友好等等。UI 測試的目標是確保用戶界面會通過測試對象的功能來為用戶提供相應的訪問或瀏覽功能。確保用戶界面符合公司或行業的標準。包括用戶友好性、人性化、易操作性 測試。
用戶界面測試用戶分析軟件用戶界面的設計是否合乎用戶期望或要求。它常常包括菜單,對話框及對 話框上所有按鈕,文字,出錯提示,幫助信息 (Menu 和Help content)等方面的測試。比如,測試Microsoft Excel中插入符號功能所用的對話框的大小,所有按鈕是否對齊,字符串字體大小,出錯信息內容和字體大小,工具欄位置/圖標等等。
--冒煙測試--版本編譯者
冒煙測試,英文是Smoketesting。
冒煙測試的名稱可以理解為該種測試耗時短,僅用一袋煙功夫足夠了。也有人認為是形象地類比新電路板功基本功能檢查。任何新電路板焊好后,先通電檢查,如果存在設計缺陷,電路板可能會短路,板子冒煙了。
冒煙測試的對象是每一個新編譯的需要正式測試的軟件版本,目的是確認軟件基本功能正常,可以進行后續的正式測試工作。冒煙測試的執行者是版本編譯人員。
--隨機測試--測試人員
隨機測試,英文是Adhoctesting。
隨機測試沒有書面測試用例、記錄期望結果、檢查列表、腳本或指令的測試。主要是根據測試者的經驗對軟件進行功能和性能抽查。隨機測試是根據測試說明書執行用例測試的重要補充手段,是保證測試覆蓋完整性的有效方式和過程。
隨機測試主要是對被測軟件的一些重要功能進行復測,也包括測試那些當前的測試樣例(TestCase)沒有覆蓋到的部分。另外,對于軟件更新和新增加的功能要重點測試。重點對一些特殊點情況點、特殊的使用環境、并發性、進行檢查。尤其對以前測試發現的重大Bug,進行再次測試,可以結合回歸測試(Regressivetesting)一起進行。
--黑盒測試(功能測試)--測試人員
黑盒測試,英文是BlackBoxTesting。又稱功能測試或者數據驅動測試。
黑盒測試是根據軟件的規格對軟件進行的測試,這類測試不考慮軟件內部的運作原理,因此軟件對用戶來說就像一個黑盒子。
軟件測試人員以用戶的角度,通過各種輸入和觀察軟件的各種輸出結果來發現軟件存在的缺陷,而不關心程序具體如何實現的一種軟件測試方法。
--性能測試
性能測試,英文是PerformanceTesting。
性能測試是在交替進行負荷和強迫測試時常用的術語。理想的"性能測試"(和其他類型的測試)應在需求文檔或質量保證、測試計劃中定義。性能測試一般包括負載測試和壓力測試。
通常驗證軟件的性能在正常環境和系統條件下重復使用是否還能滿足性能指標。或者執行同樣任務時新版本不比舊版本慢。一般還檢查系統記憶容量在運行程序時會不會流失(memoryleak)。比如,驗證程序保存一個巨大的文件新版本不比舊版本慢。
3.1.2、測試規范
測試規范是根據開發規范而制定的測試標準,測試規范也是后期測試用例編寫的重要依據。因為開發規范因公司而異,因產品而異,所以測試規范的標準程度每個公司都不一樣。
從理論到方法到各類流程到各類報告模版,都屬于測試規范的范疇,當一整套規范形成之后,可使得測試工作進行更加穩健,所有問題有據可查。
3.2、軟件需求規格說明書
軟件需求規格說明書是軟件達到的各項功能的目標。是測試人員各項工作的依據,沒有需求就無法判斷測試結果是正確的。
3.3、軟件設計說明(概要與詳細設計)
設計說明書包含軟件的一些框架、字段、數據庫設計等。軟件設計說明對測試工作開展有很大影響,沒有軟件設計說明很多問題將無法溯源,測試準備的前期工作也是根據軟件設計說明來制定的。
3.4、頁面原型(demo)
頁面原型是項目人員快速熟悉項目的最佳路徑。在需求不夠明確,設計說明書不夠全面的情況下,頁面原型也是后期測試用例編寫思想的重要根據。
4、測試過程設計
明確測試目的,最終達成目的并驗證結果是測試要做的事情。包括:
1.測試范圍:描述本次測試中的測試范圍,如:測試軟件功能范圍、測試種類等。
2.簡單的描述如何搭建測試平臺以及測試的潛在的風險。
3.項目信息:說明要測試的項目的相關資料,如:輸入輸出文檔,產品描述,軟件主要功能。
4.人力資源的分配。
5.測試需求:籠統說,就是測試中的所有設計和需求文檔。作為本次測試的依據
4.1、測試策略制定
這一階段在于需求、詳細設計、測試計劃完成之后,主要是本次測試的策略階段。很多公司少這個一個階段,需要有計劃性的分出產品的功能扣出測試的功能點,現階段大多公司都是直接拿著文檔就開始做用例設計。
對需求進行分析,列出具體的功能列表。(一般根據功能交互文檔就能明確出此功能的大體功能,一層層的分下去,一直到沒個功能表單。然后考慮到使用那些測試方法?工作一旦做到執行階段,我們可以更好的根據這些功能表一點一點的覆蓋。也能讓我們在用例評審時,充分的證實我們的工作是有效的能夠保證產品的質量。)一般在此之前,一些業務培訓和需求評審是有必要是聽一下的。這樣能夠更早更熟練的理解需求,也能保證產品設計中出現的一些誤區。
對于一個個測試該如何進行測試?如下:
a)功能測試
---功能范圍(劃分出各自負責的功能模塊)
---使用測試方法(等價類、邊界值等測試方法方法)
---測試標準(符合設計、需求和規范文檔對該功能的描述)
b)界面測試
c)兼容性測試
4.2、測試計劃
1)要充分考慮測試計劃的實用性,即測試計劃與實際之間的接近程度和可操作性。編寫測試計劃的目的在于充分考慮執行測試時的各種資源,包括測試內容、測試標準、時間資源、人力資源等等,準確地說是要分析執行時所能夠調用的一切資源以及受各種條件限制,可能受到的各種影響。
a)測試內容:對一個軟件來說測試計劃中會明確本次測試做哪些測試?
如:系統測試:在整個系統測試中會有(界面測試、功能測試、性能測試、兼
容性測試、安裝卸載測試、可靠性測試等測試)。
b)測試目的:一般多為保證產品質量是否達到預期的指標。這個指標也就是在測試中定義的結束標準。
c)測試標準:需要考慮本次測試需要輸入那些文檔,該項目結束標準定義、測試結束標準的定義?bug級別定義、優先級定義、bug管理流程定義。這個都需要在執行測試事明確。計劃中應該包含這些內容。
d)資源分配:這里分為人力資源、軟硬件資源等劃分。一般會把人力資源的利用寫入一個測試人員任務分配表里,按照不同的階段,每個階段提交相應的成果(難度很大)。軟硬件資源中主要是在做計劃時考慮到需要多少電腦或別的工具,列出清單。
e)測試風險:大多考慮到的就是項目開發延期、測試人員不足用例無法全面覆蓋測試點、時間不足用例無法全部執行、bug無法及時修改導致無法驗證、測試人員技能不足導致測試進度拉長。
f)軟件測試策略一般都是分開來做相關測試方案。
4.3、測試附件
用例模板、缺陷報告模板
測試環境的搭建
缺陷管理流程和缺陷級別定義
缺陷狀態一般分為:新建、打開、已分配、已修復、關閉、重新打開
中間會有:延期、重復、拒絕等狀態
缺陷管理流程:

1.測試人員或開發人員發現bug后,判斷輸入哪個模塊的問題,填寫bug報告后,系統會自動通過Email通知開發組長和該模塊開發者。
2.開發組長根據具體情況,重新reassigned分配給bug所屬的開發者。
3.開發者收到email信息后,判斷是否為自己的修改范圍。
若不是,重新reassigned分配給開發組長或應該分配的開發者。
若是,進行處理,resolved并給出解決方法。(可創建補丁附件及補充說明)
4.測試人員查詢開發者已修改的bug,進行回歸測試。
經驗證無誤后,修改狀態為verified。待整個產品發布后,修改為closed。
還有問題,reopened,狀態重新變為"new",并發送郵件通知。
5.如果這個bug一周內一致沒被處理過。Bugzilla就會一直用email騷擾它的屬主,直接采取行動。管理員可以設定最遲采取行動的期限,比如3天,系統默認7天。
缺陷等級劃分:

5、測試實施
5.1、執行
開發就會轉版本給我們測試部門進行系統測試了。拿到版本我們首先搭建測試環境
做一個預測試,目的是來評斷這個版本是不是可測試的。如果預測試不通過,打回開發部返工,如果通過了,就開始我們第一輪的系統測試。
第一輪系統測試我們會執行我們所編寫的所有測試用例,做好測試結果的記錄,發現缺陷了提交缺陷報告。當第一輪測試結束后,我們把所有的bug單提交給開發人員,由他們進行修改。
在他們修復bug期間,我們會對第一輪系統測試做一個測試評估,出一個測試報告。還要根據實際情況,對我們寫的測試用例進行修改和增加。開發改bug結束,提交一個新的版本給我們,我們重新搭建測試環境開始第二輪系統測試。首先是回歸我們提交的缺陷報告,然后會在用例中挑選一些優先級別比較高的用例來進行測試,發現問題了繼續提交缺陷報告,只到缺陷率低于用戶要求了,我們就進行最后一輪的回歸測試,結束系統測試。具痰某沙と占牽匾唬?">一個軟件測試工程師的成長日記(連載一)(圖)
自動化測試之QTP入門寶典

52