軟件測試相關簡要記錄
軟件測試
編碼和測試統稱為實現。
通常在編寫出每一個模塊之後就對程序做必要的測試,這叫做單元測試。
模板的編寫者和測試者是同一個人。
之後會進行其它綜合測試。由專門的測試人員承擔這份工作。也就是軟件測試project師。
軟件測試的工作量往往占軟件開發總工作量的40%以上。
編碼
對於編碼有例如以下要求:
1)程序內部的文檔
2)數據說明
3)語句構造
4)輸入輸出
5)效率:程序執行時間、存儲器效率、輸入輸出的效率
軟件測試基礎
一、軟件測試的目標
1)測試是為了發現程序中的錯誤而執行程序的過程
2)好的測試方案極可能發現迄今為止尚未發現的錯誤的測試方案
3)成功的測試是發現了至今為止尚未發現的錯誤的測試
註:測試僅僅能查找出程序中的錯誤。而不能證明測試中沒有錯誤。
二、軟件測試準則
1)全部的測試都應該能追溯到用戶需求
2)應該遠在測試開始之前就制定出測試計劃
3)把Pareto原理(測試發現的錯誤中的80%非常可能是程序中20%的模塊造成的)應用到軟件測試中
4)應該從“小規模”測試開始,並逐步進行“大規模”測試
5)窮舉測試是不可能的
6)應該由第三方從事測試工作
三、測試方法
白盒測試和黑盒測試。先進行白盒測試。後進行黑盒測試。(隨後會有補充)
四、測試步驟
1)模塊測試(又被稱為單元測試)
2)子系統測試(將經過單元測試的模塊放到一起形成一個子系統)
3)系統測試(將經過測試的子系統裝配成一個完整的系統來測試)
4)驗收測試(將軟件系統作為一個單一的總體。它是用戶積極參與下進行的,驗收測試也被稱為確認測試)
5)平行執行(將新舊系統同一時候執行進行比較,目的是:1。能夠在準生產環節中執行新系統而不冒風險。2。用戶能有一個熟悉新系統的過程。3,能夠驗證用戶指南和使用手冊之類的文檔;4,能夠以準生產模式對新系統進行全負荷測試。能夠用測試結果驗證性能指標)
五、測試階段的信息流
輸入的信息由兩大類:
1)軟件配置,包含需求說明書、設計說明書和源程序說明書清單等
2)測試配置,包含測試計劃和測試方案,所謂測試方案不僅僅是測試時使用的輸入數據(稱為測試用例),還應該包含每組輸入數據預定要檢驗的功能,以及每組數據預期應該取得的正確輸出
(測試配置是軟件配置的一個子集。也就是說終於交出的軟件配置應該包含測試配置和測試的實際結果和測試的記錄)
單元測試
一、測試重點
1)模塊接口
包含:參數的數目、次序、屬性或單位系統與變元是否一致;是否改動了僅僅作輸入用的變元;全局變量的定義和使用方法在各個模塊中是否一致
2)局部數據結構
常有局部數據說明、初始化、默認值等方面的錯誤
3)重要的執行通路
4)出錯處理通路
錯誤常在:1 對錯誤的描寫敘述是難以理解的;2 記下的錯誤與實際遇到的錯誤不同;3 在對錯誤進行處理之前,錯誤條件已經引起系統幹預。4 對錯誤的處理不對;5 描寫敘述錯誤的信息不足以幫助確定造成錯誤的位置
5)邊界條件
二、代碼審查
三、計算機測試
為每一個單元測試開發驅動軟件和(或)存根軟件
集成測試
一、自頂向下集成
二、自底向上集成
三、在軟件結構的較上層使用自頂向下方法與軟件結構中較下層使用的自底向上方法相結合。
四、回歸測試
確認測試
確認測試也稱為驗收測試,它的目的是驗證軟件的有效性。
驗證(verification)是指保證軟件正確的實現了某個特定要求的一系列活動。
確認(validation)是指保證軟件確實滿足了用戶需求進行的一系列活動。
軟件有效性的定義:假設軟件的功能和性能如同用戶所合理期待的那樣。軟件就是有效的。
一、軟件測試的兩種可能結果:
1)功能和性能與用戶要求一致,軟件是能夠接受的。
2)功能和性能與用戶要求有差距。
二、軟件配置復查
三、Alpha和Beta測試
Alpha測試由用戶在開發人員的場所進行,而且在開發人員對用戶的“指導”下進行測試。
開發人員負責記錄發現的錯誤和使用中遇到的問題。
也就是說Alpha測試是在受控的環境中進行的。
Beta測試由軟件的終於用戶在一個或多個客戶場所進行。開發人員通常不在場。也就是說是不受控的環境。用戶記錄在Beta測試中遇到的一切問題(真實的或想象的)。並定期將這些報告給開發人員。
也就是說。作為計算機/軟件的用戶而言,我們尋常接觸最多的Beta版的軟件,而Alpha版的軟件除了自己開發/測試的基本不會遇到。
白盒測試技術
一、邏輯覆蓋
1)語句覆蓋
2)判定覆蓋
3)條件覆蓋
4)判定/條件覆蓋
5)條件組合覆蓋
6)點覆蓋
7)邊覆蓋
8)路徑覆蓋
二、控制結構測試
1)基本路徑測試
主要是:1 依據過程設計結果畫出對應的流圖。2 計算流圖的環形復雜度。環形復雜度定量度量程序的邏輯復雜性;3 確定線性獨立的基本集合;4 設計可強制執行基本集合中每條路徑的測試用例
環形復雜度計算方式:V(G)=P+1,P是流圖中判定(if等)結點的數目。
2)條件測試
3)循環測試
主要包含:簡單循環,嵌套循環。串接循環(也就是兩個循環並列。而非包含關系,包含關系時為嵌套循環)
黑盒測試
一、黑盒測試力圖解決的問題:
1)功能不對或遺漏了功能
2)界面錯誤
3)數據結構錯誤或外部數據庫訪問錯誤
4)性能錯誤
5)初始化和終止錯誤
二、設計黑盒測試時應考慮的問題:
1)如何測試功能的有效性?
2)哪些類型的輸入可構成好測試用例?
3)系統是否對特定的輸入值特別敏感?
4)如何劃定數據類的邊界?
5)系統能夠承受什麽樣的數據率和數據量?
6)數據的特定組合將對系統執行產生什麽樣影響?
三、等價劃分
將輸入域劃分成若幹個數據類,據此導出測試用例。
四、邊界值復習
五、錯誤猜測
調試
一、調試途徑
1)蠻幹法
2)回溯法
3)原因排除法
軟件可靠性
軟件可靠性是程序在給定的時間間隔內,依照規格說明書的規定成功地執行的概率
錯誤的含義是開發人員造成的軟件差錯(Bug)
故障的含義是由錯誤引起的軟件的不對行為
一、估算平均無故障時間的方法
1)符號
2)預計錯誤總數
植入錯誤發和分別測試法
軟件測試相關簡要記錄