測試基礎理論
-
- 什麼是軟體測試
- 關于軟體測試
- 軟體測試原則
- 軟體測試對象
- 測試關鍵詞
- 內建方法
- 關于架構
什麼是軟體測試
使用人工或自動手段來運作或測試某個系統,并發現問題,解決問題的過程,其目的在于檢驗它是否滿足規定的需求或弄清預期結果與實際結果之間的差别。
關于軟體測試
1.測試是為了發現系統中的錯誤而執行程式的過程;
2.好的測試方案在于盡可能發現迄今為止尚未發現的錯誤;
3.成功的測試是是發現了至今為止尚未發現的錯誤的測試;
4.測試并不僅僅是為了找出錯誤,通過分析錯誤産生的原因和錯誤的發生趨勢,可以幫助項目管理者發現目前軟體開發過程中的缺陷,以便及時改進;
5.這種分析也能幫助測試人員設計出有針對性的測試方法,改善測試的效率和有效性;
6.沒有發現錯誤的測試也是有價值的,完整的測試是評定軟體品質的一種方法。
軟體測試原則
1.所有的軟體測試都應追溯到使用者需求;
2.應當把“盡早地和不斷地進行軟體測試”作為軟體測試人的座右銘;
3.完全的測試是不可能的,測試需要終止;
4.測試無法顯示系統所有潛在的缺陷;
5.最理想的狀态是測試驅動開發。
軟體測試對象
程式、資料、文檔、過程、硬體、網絡。
軟體測試不等于程式測試、軟體測試貫穿于軟體定義和開發的整個期間。需求分析、概要設計、詳細設計,以及程式的編碼等各個階段所得到的文檔,包括需求規格說明書、概要設計規格說明書、詳細設計規格說明書以及源程式,這些都是軟體測試的對象。
測試關鍵詞
單元測試、內建測試、系統測試、驗收測試;
白盒測試、黑盒測試、灰盒測試。
單元測試:粒度最小,一般由開發小組采用白盒方式來測試,主要測試單元是否符合“設計”。
內建測試:介于單元測試和系統測試之間。起到橋梁作用,一般由測試小組采用灰盒的方式來測試,既要驗證“設計”又要驗證“需求”。
系統測試:粒度最大,一般由獨立測試小組采用黑盒方式來測試,主要測試系統是否符合需求規格說明書。
驗收測試:與系統測試非常相似,主要差別是測試人員不同,驗收測試由使用者執行。
內建方法
1.自頂向下(分為深度優先和廣度優先)
2.自底向上(需求不明确時考慮采用,當今較少應用)
深度優先:便于在早期發現級别嚴重的bug,便于保障軟體品質。
廣度優先:便于控制項目進度時間。
驅動子產品:被測子產品上層為驅動子產品。
存根子產品:被測子產品下層為存根子產品。
關于架構
Client/Server(浏覽器/伺服器)簡稱C/S架構
定義:通過将任務合理配置設定到Client端和Server端,降低了系統的通訊開銷,需要安裝用戶端才可進行管理操作。使用者的程式主要在用戶端,伺服器端主要提供資料管理、資料共享、資料及系統維護和并發控制等,用戶端程式主要完成使用者的具體業務。
特點:響應速度快,操作界面美觀安全性強但開發、維護成本較高。
Browser/Server(浏覽器/伺服器)簡稱B/S架構
定義:是随着Internet技術的興起,對C/S架構的一種改進,在這種架構下,軟體應用的業務邏輯完全在應用伺服器端實作,使用者操作完全在web伺服器中實作,用戶端隻需要浏覽器即可進行業務處理。更成為當今應用軟體的首選體系結構。
特點:B/S架構軟體一般隻有初期一次性投入成本,對于集團來說,有利于軟體項目控制和避免IT黑洞。而C/S架構軟體随着應用範圍的擴大,投資會連綿不絕。
要求 | B/S | C/S |
---|---|---|
安全性 | 不可知使用者/用戶端 不可控(弱) | 固定使用者/用戶端 可控(強) |
伺服器功能 | 更強 | 稍弱 |
用戶端 | 浏覽器 | 專用用戶端 |
可維護性 | 強,用戶端基本不需要維護 | 弱,用戶端更新工作量大,可能多版本并存 |
硬體要求 | 網絡要求較高 | 使用者機配置要求較高 |