一、 軟體的開發階段劃分
1、 需求分析階段
由需求分析師完成
產出物:《需求文件》
2、 設計階段
1) 概要設計
產出物:《概要說明書》
2) 詳細設計
產出物:《詳細說明書》
一般是由系統架構師(分析師)完成
3、 編碼階段
程式設計師注:一般公司只有產品文件和原型,,所以如果你的公司這些文件都有,那麼請珍惜吧。。。。
常見面試題:
哪個階段bug最多?哪個階段bug最小?
需求分析階段引入的bug最多,其次是設計階段,在編碼階段引入的bug的最少。
所以:1)測試不能只測程式,文件也要測。
2)測試工作應該從開發開始就介入,並且應該貫穿整個開發周期始終。
注:身在小公司的我,不得不告訴你們,文件不需要測,一般是不需要編寫測試用例的(測試我負責),但是我們得要求自己編寫用例,因為這家公司只是我們測試路上的路人甲,並不是我們的重點。測試時間短暫,感覺領導不太重視,測試可能沒有測完,領導就喊著要上線。我希望從我手上流出去的產品不說完美,但是盡量沒有那麼多bug,總感覺有那麼點憂桑。
二、軟體測試的階段劃分
1、單元測試
1)單元測試是最小的測試單位,一般就是乙個功能模組,乙個方法(函式),乙個類等
2)單元測試依據的是《詳細設計文件》
(單元測試是根據詳細設計文件寫功能)
3)單元測試以白盒測試為主,可能輔助以黑盒測試
4)單元測試可能要求測試人員編寫驅動模組和樁模組
(被被測模組呼叫的那個模組)
總結:驅動模組à被測模組à樁模組
5)在實際工作中,單元測試往往由程式設計師完成--(節約成本,但是不嚴格)
2、整合測試
1)整合測試也叫組裝測試,在單元測試的基礎上把軟體的功能模組逐步合併在一起進行的過程
2)功能合併的過程一般是逐步完成的,會形成很多的臨時的版本
3)整合測試依據的是《概要設計文件》
4)整合測試階段以黑盒測試為主,核心模組適當採用白盒測試。
名詞解釋
:冒煙測試
(版本驗證測試)使用較少的人(1-3人,經驗豐富)、較少的時間(0.5-2天),對軟體的核心功能進行測試,如果軟體核心功能沒問題,就讓全組投入全面測試,如果問題較多,,版本不穩定,就打回開發組。
5)整合測試中,拿到新的內部版本,基本工作思路:
l 首先要進行冒煙測試(有可能省略),驗證該版本是否可以接受
l 返測
:對之前的bug,在本版本中解決的,檢查是否通過。
l 回歸測試
:對上一版本中的所有功能再測試一遍----驗證修改的**或新加了功能,以前的功能是否依然正常。
l 對該版本新組裝的功能進行測試 ---- 但如果有些版本只是用於修復以前的bug,也有可能沒有新功能。
3、系統測試
1)整個功能全部組裝完成後,對模擬整合了硬體、軟體的完整系統進行的測試。
2)系統測試的重點在於
a)整個系統在模擬真實環境下是否可以正確執行
b)系統與硬體、軟體的相容性問題
3)系統測試的依據是《需求文件》
4)系統測試全部為黑盒測試
5)在系統測試之前,一般會安排「確認測試」,主要確認:
a、確認該系統是否進入全面的系統測試階段(可以理解為一次大的冒煙測試)
b、確認相關文件是否準備齊全(尤其是給使用者的文件,參與認證的文件)
說明:確認測試一般時間相對較短,參與的人員較少。所以不把其與單元測試、整合測試、系統測試所並列
4、 使用者驗收階段 --- 驗收測試
uat(user acceptance testing)使用者接受度測試
1) 使用者參與的乙個檢查過程
2) 可以分為兩個小階段:
a)alpha測試
:在開發環境中,由終端使用者對軟體進行檢查,一般經常由軟體公司代使用者完成。
b)beta
測試 :在使用者的實際環境中,由終端使用者對軟體進行檢查
對於公共類軟體(作業系統,遊戲,輸入法),一般把軟體免費發放給終端使用者,通過使用者使用收集bug ---- 公測版本
三、軟體測試的模型
1、軟體測試模型表達的是測試階段和開發階段的對應關係。
2、兩個常見模型1)v
模型(重點
)a、會畫
b、優缺點
優點:(1)開發和測試階段劃分明確,對應關係明確
(2)測試階段既包含單元測試(**、專業級)又包含驗收測試(使用者級)
缺點:沒有體現需求、設計階段的文件測試工作,容易造成誤解,以為測試工作只是開發完成後的收尾工作2)w
模型(了解)
a、可以理解為雙
v模型,第乙個
v是開發活動,第二個
v是測試活動
b、比v
模型更加強調了
文件測試階段
的重要,體現了測試物件不僅是程式需求和設計同樣需要測試。
測試與開發是同步進行的c、w
模型更符合盡早測試和不斷測試的原則
四、軟體測試的分類
1、按測試技術劃分
1)黑盒測試 :(功能測試的基本特徵)又叫功能測試、資料驅動測試,是不考慮程式內部結構,只需考慮輸入和輸出情況下進行的功能測試
2)白盒測試 :又稱為結構測試,基於程式的測試。只考慮程式內部結構,而不去考慮程式功能的測試
3)灰盒測試 :結合黑盒和白盒測試的要素,對軟體進行測試,一般先做黑盒測試,當發現有
bug,對
bug進行定位,對有可能有問題的**再進行白盒測試的過程(在整合測試中經常使用)
補充說明
:1)測試階段中黑盒測試為主
2)白盒測試測試常常對風險較大,難度較大的模組進行測試
3)白盒測試要求測試人員懂得**,效率較低,時間成本高
4)白盒測試也需要編寫測試用例
2、按是否需要執行**劃分
:1)靜態測試 :不需要執行程式
2)動態測試 :需要執行程式才能進行的測試
黑盒(功能)測試一般都是動態測試
白盒測試即有可能是動態的,也有可能是靜態的
3) 靜態測試包括:
a、 介面測試
:主要測實際介面與需求要求是否符合
b、 文件測試
:主要測試文件和說明是否真正符合
c、 **測試
:主要測試**是否符合相應的標準和規範
常見問題:靜態的**測試和白盒測試的區別:
(1) 白盒測試主要關注**的邏輯功能實現,測試者必須要懂**,要求寫測試用例
(2) 靜態**測試主要關注**的規範性、標準性,測試人員不需要懂**,不需要寫測試用例,只需參考**審查單檢查即可
3、按軟體的特性分類
1)功能測試 :
(1) 任何軟體都必須要做功能測試
(2) 軟體要先做功能測試,保證其功能正確。
分布式軟體需要在功能正確的前提下,在考慮效能
(3) 功能測試分為:手工功能測試和功能自動化測試
(需要借助於工具完成
)2)效能測試 :
(1)分布式(
c/s,
b/s)需要做效能測試
(2)效能測試只有自動化(要借助工具完成)
4、其它(常見的名詞術語)
1)返 測 :在新版本中對程式設計師修改的
bug進行測試,驗證
bug是否被修改
2)回歸測試 :對上個版本中的所有功能重新測試一遍,檢驗新版本中原有的功能是否依然正確,回歸測試存在大量的重複性工作,所以企業會使用自動化工具實現
3)隨機測試(猴子測試):在測試用例執行完成之後,對軟體進行隨意的測試的過程【只是時間充足時,對正常測試用例之外的補充測試】
4)相容測試 :指對被測軟體與硬體、軟體之間的相容性的測試,
相容性測試可以分為三大類:
(1)硬體相容
a、與整機相容
b、與外設相容
(2)軟體相容
a、作業系統
b、應用軟體之間的相容:防毒軟體,工具類軟體
c、不同瀏覽器的相容
d、資料庫的相容
(3)資料相容
不同版本間的資料相容
5)測試流程(步驟)
(1)需求 :閱讀需求,理解需求
(2)測試計畫 :測試經理對整個專案做乙個巨集觀的計畫
(3)設計測試用例
(4)執行測試
(5)記錄測試執行結果,並填寫《缺陷報告》,記錄缺陷
(6)跟蹤管理缺陷
(7)測試總結報告或測試評估報告
軟體測試基本理論
1.什麼是軟體測試 在g.j.myers 的經典著作 軟體測試之藝術 the art of software testing 中,給出了測試的定義 程式測試是為了發現錯誤而執行程式的過程 這個定義,被業界所認可,經常被引用。除此之外,g.j.myers 還給出了與測試相關的三個重要觀點,那就是 l ...
軟體測試基本理論 一
從即日起,關於 軟體測試 基礎教程正式開篇.本教程適合想學習軟體測試方面的同學.完全從0開始,由淺入深開始學習.本教程持續更新,歡迎關注.是線性模型的一種,在所有模型中占有重要地位,是所有其他模型的乙個基礎.每乙個階段執行一次,按線性順序進行軟體開發.測試階段在軟體實現後,必須在 完成後留出足夠多的...
軟體測試基本理論 IBM模式
ibm 從菜鳥到測試架構師 乙個測試工程師的成長日記 warning ibm的業務性質是做大型企業的it解決方案,仍然屬於比較中規中矩的傳統企業。所以對傳統的軟體企業有比較大的借鑑意義,但是對於網際網路等新興企業的從業人員,還是採取保留式的態度,取其精華即可。1968年nato會議提出了 軟體危機 ...