基本介紹
簡介,定義步驟,驗證,確認,目標,相關說明,基本原則,術語解釋,
簡介
隨機測試是根據測試說明書執行用例測試的重要補充手段,是保證測試覆蓋完整性的有效方式和過程。 隨機測試主要是對被測軟體的一些重要功能進行複測,也包括測試那些當前的測試用例(TestCase)沒有覆蓋到的部分。另外,對於軟體更新和新增加的功能要重點測試。重點對一些特殊點情況點、特殊的使用環境、並發性、進行檢查。尤其對以前測試發現的重大Bug,進行再次測試,可以結合回歸測試(Regressivetesting)一起進行。理論上,每一個被測軟體版本都需要執行隨機測試,尤其對於最後的將要發布的版本更要重視隨機測試。隨機測試最好由具有豐富測試經驗的熟悉被測軟體的測試人員進行測試。對於被測試的軟體越熟悉,執行隨機測試越容易。只有不斷的積累測試經驗,包括具體的測試執行和對缺陷跟蹤記錄的分析,不斷總結,才能提高。
定義步驟
軟體測試即為了發現程式中的錯誤而執行程式的過程。軟體測試是幫助識別開發完成(中間或最終的版本)的計算機軟體(整體或部分)的正確度(correctness)、完全度(completeness)和質量(quality)的軟體過程;是SQA(softwarequalityassurance)的重要子域。軟體測試主要工作內容是驗證(verification)和確認(validation),下面分別給出其概念:
驗證
驗證(verification)是保證軟體正確地實現了一些特定功能的一系列活動,即保證軟體做了你所期望的事情(Do it right)。確定軟體生存周期中的一個給定階段的產品是否達到前階段確立的需求的過程;程式正確性的形式證明,即採用形式理論證明程式符號設一計規約規定的過程;評市、審查、測試、檢查、審計等各類活動,或對某些項處理、服務或檔案等是否和規定的需求相一致進行判斷和提出報告。
確認
確認(validation)是一系列的活動和過程,目的是想證實在一個給定的外部環境中軟體的邏輯正確性。即保證軟體以正確的方式來做了這個事件(Do the right thing)靜態確認,不在計算機上實際執行程式,通過人工或程式分析來證明軟體的正確性;
目標
測試是為了發現程式中的錯誤而執行程式的過程;
好的測試方案是極可能發現迄今為止尚未發現的錯誤的測試方案;
成功的測試是發現了至今為止尚未發現的錯誤的測試。
相關說明
不能達到一定的覆蓋率;
許多測試都是冗餘的;
需要使用同樣的隨機數種子才能重建測試。
基本原則
測試的原則: 1、應把“儘早和不斷地進行軟體測試”作為軟體開發者的座右銘,實踐證明單元測試能夠儘早發現問題,減少後期測試的錯誤量。可以採用Junit和Jtest來輔助進行單元測試。2、測試用例應由測試輸入數據、測試執行步驟和與之對應的預期輸出結果三部分組成。
4、測試用例的設計要確保能覆蓋所有可能路徑。在設計測試用例時,應當包括合理的輸入條件和不合理的輸入條件。不合理的輸入條件是指異常的,臨界的,可能引起問題的輸入條件。
6、嚴格執行測試計畫,排除測試的隨意性。測試計畫應包括:所測軟體的功能,輸入和輸出,測試內容,各項測試的進度安排,資源要求,測試資料,測試工具,測試用例的選擇,測試的控制方法和過程,系統的配置方式,跟蹤規則,調試規則,以及回歸測試的規定等等以及評價標準。
7、應當對每一個測試結果做全面的檢查。
8、妥善保存測試計畫,測試用例,出錯統計和最終分析報告,為維護提供方便。
軟體測試的對象:軟體測試並不單純等同於程式測試。軟體測試應該貫穿整個軟體定義與開發整個期間。因此需求分析、概要設計、詳細設計以及程式編碼等各階段所得到的文檔,包括需求規格說明、概要設計規格說明、詳細設計規格說明以及源程式,都應該是軟體測試(評審)的對象。在對需求理解與表達的正確性、設計與表達的正確性、實現的正確性以及運行的正確性的驗證中,任何一個環節發生了問題都可能在軟體測試中表現出來。
術語解釋
branchcoverage--分支覆蓋
通過測試執行到的分支的百分比。 branchoutcome--分支結果見判定結果(decisionoutcome)
branchpoint--分支點
見判定(decision)
branchtesting--分支測試
通過執行分支結果來設計測試用例的一種方法。
BreadthTesting--廣度測試
在測試中測試一個產品的所有功能,但是不測試更細節的特性。
capture/playbacktool--捕獲/回放工具
參考capture/replaytool
Capture/ReplayTool--捕獲/回放工具
一種測試工具,能夠捕獲在測試過程中傳遞給軟體的輸入,並且能夠在以後的時間中,重複這個執行的過程。這類工具一般在GUI測試中用的較多。
CASE--計算機輔助軟體工程(computeraidedsoftwareengineering)
用於支持軟體開發的一個自動化系統。
cause-effectgraph--因果圖
一個圖形,用來表示輸入(原因)與結果之間的關係,可以被用來設計測試用例。
certification--證明
一個過程,用於確定一個系統或組件與特定的需求相一致。
changecontrol--變更控制
codeaudit--代碼審計
CodeCoverage--代碼覆蓋率
一種分析方法,用於確定在一個測試套執行後,軟體的哪些部分被執行到了,哪些部分沒有被執行到。
CodeInspection--代碼檢視
CodeWalkthrough--代碼走讀
code-basedtesting--基於代碼的測試
根據從實現中引出的目標設計測試用例。
codingstandards--編程規範
一些編程方面需要遵循的標準,包括命名方式、排版格式等內容。