网上读书关于软件测试,【读书笔记】之软件测试
1.引論
1.1 什么是軟件測試
軟件測試主要是對制作的軟件產品進行檢查和測試,及時地發現程序中的故障和邏輯錯誤,以保障軟件產品的可靠性。軟件測試是保證軟件質量的關鍵步驟,也是提高軟件可靠性的重要手段,因此它是軟件工程的的重要重要組成部分之一。
軟件測試的內容包括兩個方面,即文檔和程序。
軟件測試的宗旨是要采用費用最少而效果最好的方法提高軟件產品的質量。
Dijkstra關于軟件測試有一句極精辟的話“測試只能證明程序有錯,不能保證程序無錯”。
1.2 軟件測試的目標
G.Myers在他的優秀著作《軟件測試技巧》中,精辟的闡述測試的目的或定義:
1. 程序測試是為了發現錯誤而執行程序的過程;
2. 好的測試方案是極可能發現迄今為止尚未發現的錯誤;
3. 成功的測試是能夠發現以前尚未發現的錯誤。
由此可見,傳統觀念“程序測試是為了證明程序中不存在錯誤”,“成功的測試是一個未能發現錯誤的測試”是不正確的。
1.3 軟件測試的原則
1. 預先確定測試結果
2. 軟件的開發者(或部門)不應該測試自己的程序
3. 制定嚴格的測試計劃,防止測試的隨意性
4. 設計和選擇測試方案要有利于發現錯誤
5. 集中力量測試容易出錯的程序段
在許多程序中,錯誤好像是成群出現的,這些錯誤往往比較集中在一段程序中。存在錯誤的概率與這段程序中發現的錯誤成比列。這就是所謂群集現象。
6. 保存好測試計劃,測試方案,錯誤數據統計和分類,以及最終的分析報告。
2.軟件測試方法
軟件測試通常有三種方法,第一種是程序正確性證明,即驗證;第二種是靜態測試,即不執行被測試的程序而發先程序中的錯誤;第三種是動態測試。
2.1 程序正確性證明
程序正確性證明是從理論上對程序的正確性進行論證,通過證明可以得出程序邏輯上是否正確。
在許多情況下,一個完全的形式證明可能是不必要的。在某些情況下,若不能實現完全測試,則也不可能實現完全的形式證明。然而,我們常常用程序正確性證明所開發的推理風格來指導測試過程,以增強對程序的信任,有時可以把某些性質的程序證明和其他性質的測試結合起來。
2.2 靜態測試
所謂靜態測試是指不執行程序而找出程序存在錯誤的方法。這種方法以人工的,非形式化的方法對程序進行分析和測試,它是不依賴于計算機的測試。實踐表明,靜態測試可以發現大約30%-70%的邏輯設計錯誤和編碼錯誤。
2.2.1 功能檢查(自我測試)
功能檢查也叫自我測試,由程序員將模塊功能(說明,算法,語法規則),流程圖和編碼對照起來反復閱讀,檢查程序的語法和邏輯錯誤。
2.2.2 群體檢查
群體檢查是由自于人聽社記者對功能說明,流程圖,程序編碼的自我測試等情況的匯報之后,對程序進行動態分析的過程。
2.2.3 人工運行檢查
人工運行檢查是由人扮演計算機來執行程序,將測試方案按程序的邏輯結構執行一遍,從而找出程序的錯誤供測試者分析。
2.3 動態測試
靜態測試主要是檢查程序的邏輯設計和編碼錯誤,但在理論上和實踐上還存在局限性,所以還比尋進行動態測試。
所謂動態測試,就是把程序看作函數,取函數定義域中的每一個元素作為輸入,實際運行程序,檢查程序的執行結果是否全部落在函數的值域之內,以此來檢查程序的正確性,可靠性和有效性。
1. 如果產品要實現的功能是已知的,就可以分別測試是否達到每個功能要求,稱之為“黑盒測試”
2. 如果知道產品的內部邏輯結構和處理過程,可以根據規格說明來完成內部操作的測試,稱之為“白盒測試”
2.3.1 黑盒測試法(功能測試法)
黑盒測試法又稱為功能測試法,它是在軟件接口上進行測試,根據對軟件功能的分析,推演出函數定義域中有代表性的元素組成測試方案。測試者使用這種方法時,把程序看成一個黑盒,完全不考慮程序內部的結構和處理過程。其目的是用來證明與程序內部工作無關的功能需求的有效性,很少考慮軟件的內部邏輯結構。
41/41234>
總結
以上是生活随笔為你收集整理的网上读书关于软件测试,【读书笔记】之软件测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (dijkstra记录路径)find t
- 下一篇: (二叉树DFS)天平UVa 839