隨著軟體行業的快速發展,大家對軟體的質量也越來越看重,關注。軟體測試做為能盡可能發現軟體中的bug,減少軟體成本,也在不斷的高速發展,受人們關注,重視的程度也越來越大。從最初的程式設計師自己測試到後面獨立的測試部門,測試職位的設立。以及軟體測試的一整套方案,流程等。
一,
測試用例的重要性
什麼是測試用例(testcase)?測試用例有什麼作用?
測試用例:是為某個特殊目標而編制的一組測試輸入、執行條件以及預期結果,以便測試某個程式路徑或核實是否滿足某個特定需求。
測試用例的作用:
1, 通過乙個用例來證明被測軟體的某功能符合需求說明書中規定的要求,可以通過設計正反兩方面的測試用例來驗證
2, 可以保證乙個軟體被測試的有效性,使測試人員知道那些功能以被測,那些功能還需要測試,從而避免漏測,重複測,提高測試效率
3, 指導測試的工作,保證測試是有計畫的實施,而不是隨意性的測試
4, 為公司留下財富,為後期軟體維護提高幫助,為公司新人進來提供指導,在測試的時候可以盡量把人為因素的影響減少到最小。保障軟體測試質量的穩定
5, 可以做為評估測試結果的,為編寫測試報告提供依據。
6, 分析缺陷的標準,
通過收集缺陷,對比測試用例和缺陷資料庫,分析確證是漏測還是缺陷復現。漏測反映了測試用例的不完善,應立即補充相應測試用例,最終達到逐步完善軟體質量。而已有相應測試用例,則反映實施測試或變更處理存在問題。
二,
測試用例的設計:
測試用例設計這部分主要是根據我自身的經驗來寫,可能很多不足的地方,請大家指出。(這裡寫的測試用例都以黑盒測試為準,不設計到白盒測試)
1, 設計測試用例的模板:
我想,每個公司都應該有一套適合自己公司的測試用例模板。還是那句話,最好的並不是最適合自己的,適合自己的才是最好的。測試用例模板可以分為兩部分:
1) 介紹部分:可以有這些:公司名稱,保密等級,編寫人員,日期,審核人,版本號,測試物件的介紹,測試的範圍和目的,測試環境,定義術語,參考文件,用例執**況,測試用例設計思路等
2) 測試用例部分:模組名稱,測試型別,用例id,用例目的,重要程度,測試過程分為(前提條件,測試步驟,期望結果,測試結果,測試結論)測試日期,備註。
現在打部分公司用來編寫測試用例的軟體應該都是execl和word(那個叫微軟
nb撒),感覺上,在進行模組測試和系統測試設計用例的時,用execl來編寫比較好,方便統計,查詢測試通過的,沒通過的用例,execl統計功能很強大。但是對於驗收測試用例和效能測試用例,使用word會好點,因為驗收測試用例和效能測試用例,一般都是乙個用例一頁,方便列印,而進行驗收測試的時候,必須要把驗收測試用例列印出給客戶,而且驗收測試用例一般都沒系統測試那邊多,一般是乙個功能就是乙個用例。(下面有2種測試用例的模板)
2, 測試用例設計的一些思路:
按照書上說的可以分為幾大類:
1) 等價類劃分
2) 邊界值分析
3) 錯誤推測
4) 因果圖
我認為測試用例的設計應該從深度和廣度方面去想,即要考慮到被測模組所有功能,還要考慮他們的組合,以及和其它模組的組合。不單單要考慮正常情況下功能,還要考慮異常情況下軟體的反應,不要僅只考慮一種測試環境下的情況,還要考慮多種環境下的情況,因為使用者的環境是千變萬化,不是能全部模擬出來的,只能盡可能的模擬,下面是我以前測試的乙個模組:
禁用usb外接裝置:
主要功能是:除了usb鍵盤和滑鼠外,其它一切外接usb裝置都不能使用。
(不知道大家能想到一些什麼情況來設計測試用例),下面是我設計的一些思路:
1) 正常情況下執行該功能後,看usb鍵盤和滑鼠能否使用
2) 正常情況下執行該功能後,usb鍵盤和滑鼠拔插後能否使用
3) 正常情況下執行該功能後,usb鍵盤和滑鼠拔掉,接上外接usb裝置,能否正常使用
4) 正常情況下執行該功能後,usb鍵盤和滑鼠拔掉,接上外接usb裝置,插上usb鍵盤和滑鼠,usb鍵盤和滑鼠能否使用,外接usb裝置能否使用
5) 正常情況下執行該功能後,接上外接usb裝置(usb鍵盤和滑鼠一直存在),外接裝置能否使用
6) 重複拔出外接usb裝置,看usb裝置能否使用,usb鍵盤和滑鼠是否會影響
7) 先插外接usb裝置(能正常執行),再執行該功能,usb裝置是否立即不能被使用
8) 外接usb裝置正在拷貝檔案,執行該功能後,是什麼反應
異常情況下該功能的反應,如執行該功能後,電腦重啟,電腦宕機等會導致什麼後果,是否是我們期望的。
多個usb介面情況下,該功能是否正常
對於不同usb裝置是否該功能都有效果:如usb的u盤,行動硬碟,***,usb印表機等。
該功能執行後,是否能還原。還原功能是否正常。
1) 大家都知道禁止某裝置執行後,在裝置管理器會顯示?號或者紅叉,大家會不會設計手動從裝置管理器去啟動被禁止的外接usb裝置的用例?
2) 有的usb裝置需要驅動才能執行,如usb介面印表機,是否會設計驅動解除安裝,重新安裝後的用例?
3) 現在也有那種usb轉換器,比如把ps/2介面轉換為usb介面,那外接usb能否使用?把usb介面轉換為ps/2介面,ps/2介面的裝置能否使用?
4) 不同作業系統下,該功能是否有效,如linux,unix,windowsxp,2000,2003等。
上面這些可能可能很難想到的地方,所有設計測試用例也並不是一件容易的事,需要發散性的思維,需要大量的經驗。現在看到很多人有點本末倒置了,都去追求工具自動化,其實當你設計出乙個完美的用例後,測試出的效果絕對是巨大的,要不怎麼會說乙個好的測試用例是發現從為發現的錯誤呢?基本功還是需要.
上面的那些情況只
是一部分,還可以設計出很多來,大家可以一起討論下。
三,
測試用例的一些技巧:
在軟體測試中,有很多被測試的軟體都是c/s結構的,而軟體的介面估計是從頭到尾都在改變中,這都測試用例的編寫,維護是一件耗時,耗力的事。下面是我個人的一些經驗:
1, 介面測試用例和功能方面測試用例分開寫,比如在乙份execl測試用例中,介面的就單單寫介面的,如寫字型,排版,快捷鍵等,功能就只寫邏輯方面,實現方面,這樣當介面修改後,修改也快點。
2, 比如說在編寫乙個彈出提示框用例時,以前我寫用例的時,把預期結果寫成提示的訊息,如:「登陸使用者名稱錯誤」,而當這個提示訊息變為「使用者名稱錯誤」時,有要去修改用例,很煩的。後面我就寫「彈出乙個提示訊息框」,這樣就解決了
3, 寫用例時,盡量分清層次結構,比如使用者登陸模組,寫的時先寫正常情況下登陸,再寫異常情況下登陸,不要一下寫正常情況下,有寫異常情況,然後再寫正常情況下,讓人感覺很混亂。
4, 寫測試用例之前,最好在紙上畫乙個框架出來,按照什麼順序來寫,比如是按照作業系統的分類先,還是按照正常,異常情況先來寫,下面模板中的一級分類,二級分類就是這個效果
測試用例(四)測試用例編寫
一.測試用例編寫方法 1.等價類劃分 如何選擇適當的資料子集,來代表整個資料集。通過降低測試的資料去實現 合理的 覆蓋,覆蓋了更多的可能資料,以發現更多的軟體缺陷 邊界值分析法 2.邊界值分析 使用邊界值分析方法設計測試用例時一般與等價類劃分結合起來,但它不是從乙個等價類中任選乙個例子作為代表,而是...
手機測試用例 STK測試用例
id 功能描述 操作步驟 預期結果 test time p fcomment tester test time p fcomment tester stk服務 sim卡適應性測試 1 選取支援stk功能的sim卡,插入手機中 手機應支援stk功能,會將stk選單自動加入主選單列表中 2 進入stk功...
手機測試用例 通話測試用例
id 功能描述 操作步驟 預期結果 test time p fcomment tester test time p fcomment tester 通話功能 快速檢視已撥 1 待機介面下按一下呼叫鍵可進入已撥 記錄 2 每次呼叫記錄都應正確無誤 號碼 時間 序號 通話時長等 3 呼叫記錄按呼叫時間順...