編碼和測試統稱為實現。
通常在編寫出每個模組之後就對程式做必要的測試,這叫做單元測試。模板的編寫者和測試者是同乙個人。
之後會進行其他綜合測試,由專門的測試人員承擔這份工作,也就是軟體測試工程師。
軟體測試的工作量往往佔軟體開發總工作量的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)符號et
——測試之前程式中錯誤總數 it
——程式長度(機器指令總數)
τ——測試(包括除錯)時間 ed
(τ)——在0至
τ期間發現的錯誤數 ec
(τ)——在0至
τ期間改正的錯誤數
2)估計錯誤總數
植入錯誤發和分別測試法
軟體測試的簡要介紹
測試意義 沒有經過測試的軟體一般都會存在一些問題,ide工具版本不同,軟體執行環境配置,以及異常邏輯的執行等等,都有可能導致程式出現漏洞。有嚴重問題的程式導致的問題也多種多樣,使用者體驗差留存低,甚至造成開發者或者使用者的財產損失。為避免出現一系列問題,對於系統軟體進行測試是非常重要的。熱點系統平台...
軟體測試相關
軟體測試模型 v模型 使用者需求 需求分析與系統 概要設計 詳細設計 編碼 單元測試 整合測試 系統測試 驗收測試 w模型 開發 使用者需求 需求分析與系統設計 概要設計 詳細設計 編碼 整合 實施 交付 測試 使用者需求 驗收測試準備 需求分析與設計 系統測試準備 詳細設計 單元測試準備 整合測試...
軟體測試相關資源
密碼 km62 密碼 15k7 密碼 m1hp 密碼 he9l 測試新手資料理論 測試開發資料 密碼 2iyk lr全部資料 密碼 o5sa lr自動化例項 密碼 6oet pc效能自動化 密碼 u6wr 密碼 l06p 自學計畫 密碼 llnu jmeter基礎和高階 密碼 cgrl seleni...