等效法
明確測試的目標,一般適合用到的范圍是,制定被測試的對象是在滿足某個條件的區間內的所有數據。
案例設計方法:從其中區間數據段中選擇任意一個或者兩個數據,只要這個數據滿足了,那么其他的數據就是滿足的。
范例
1
:在登陸某系統需要驗證用戶名,要求是長度是最小是
6
位,最長是
14
位,名字中可以包含數字,但是不能以數字開頭,可以包含各種符號,不能包含中文。
1
、隨意字母組合成一個
12
位的姓名,測試是否可以通過驗證。
2
、隨意生成一個長度
12
位的姓名,測試是否可以通過驗證
3
、測試以任意一個數字打頭
12
位的姓名,測試是否可以通過驗證
4
、測試姓名長度為
12
位且包含中文情況,測試是否可以通過驗證
5
、測試長度不滿足條件情況下,是否通過驗證
6
、如果長度不滿足,是以數字開頭的,提示信息驗證
7
、如果長度不滿足,姓名中包含中文的,提示信息驗證……
注:這個可能比較簡單,但是說明一個問題:為什么隨意生成一個
12
位姓名的
,
其實你選擇
8
位姓名長度或者
10
位姓名長度是一樣的,所以這種情況下考慮采用等效方法比較合適。
?
范例
2
:要求選擇
1~12
之間進行調整,手機的背光就會隨著數值的變化而變化。總體的是數值越大越暗。
測試案例設計:清晰記憶
1
的情況,然后隨意調整一個數值,因為要求是變化了,至于變化成什么樣子,變暗到什么程度才正確,沒有明確的指標數值,所以只需要記住臨街點
1
的情況,然后隨意調整一個數據,然后和當前調整后的數據進行比較。
注:沒有明確的說明,只是含糊的結果,但是總體的結果是在變化,那么這個時候比較適合使用等效法。
?
因果分析法
需要有一定的程序基礎,了解程序的架構,就是當問題發生以后,能夠有效的補充相關的案例或者篩選相關的案例。因果分析的核心是從自己的理解去分析問題所在的真正原因。
范例
1
:刪除磁盤上某個文件失敗,分析原因:如果是管理員權限,那么可以隨意刪除,無論這個文件的屬性是只讀的還是存檔的,那么如果不能刪除磁盤文件,除非是壞道上的文件。分析完成以后,使得測試案例設計有針對性,而不是盲目的將所有的文件格式都去嘗試一次。
?
范例
2
:假設我們用
Excel
作一個計算,結果和我們用計算器計算的結果不同。分析原因:
Excel
的計算函數單獨運算沒有錯誤,然后插入一行,結果錯誤了,說明插入行時導致計算錯誤,那么插入一行怎么會引起函數計算錯誤呢?原因是由于插入行后,導致傳給計算函數的區域沒有更新,所以造成計算結果錯誤,那么這個
Bug
就很明確了。
?
范例
3
:假設我們平常在做講座的時候發現在某臺機器上就會死機。這是一種現象。分析原因:為什么在這臺機器上死,在其他機器上不死。原因有兩個,第一個先找系統原因,是否是我們的產品在當前這個系統下有
Bug,
經過驗證沒有,那問題出在那里?其實演示產品需要的是硬件的支持,那就是顯卡,如果顯卡內存不夠大,可能導致某些演示文件死。
注:因果分析需要有廣泛的知識面,使得我們在分析的時候能夠拓寬面積,模糊的定位問題。
?
范例
4
:用戶給我發送一個文件,打印的時候發現是亂碼。后來逼迫無奈,就讓用戶將這個文件傳真給我。這是現象。分析原因:為什么打印出現亂碼?問題基本定位,系統字庫不夠,系統下打印驅動問題,打印虛擬內存問題,操作系統問題,軟件本身問題?最后問題經過驗證,最終歸結為在此操作系統下,打印驅動程序有問題,使得文件不能正常打印。
注:問題需要先框定范圍,不要亂了套路。
?
邏輯分析法
在邏輯分析方面,也需要有一定的程序理解能力。從程序邏輯和日常常識去判斷問題。邏輯分析法其實就一堆假設的羅列,推論出系列結果的假設,然后將假設反推翻,問題就可以暴露出來。無論那種方法都是通過表現去分析問題的實質的。
范例
1:
我們在做
MP3
播放器快進和快退測試中,要考慮的同步問題,就是我們液晶顯示屏上出現的歌詞進度,時間進度和我們耳朵聽到的進度不同。我們分析一下,為什么出現不同步現象,為什么其他的能同步,就某一個或者某幾個不能同步。首先我們了解同步的算法:快進和快退是按照當前歌曲的數據流來計算應該到那里,它是以當前歌曲的數據流為系數,然后進行的一些調整,那么出現不同步的原因是由于系數不同造成的,所以考慮到同步問題,我們需要找不同格式不同數據流的歌曲,這樣問題容易暴露,容易清楚的定位問題的真正原因
?
邊界數值分析法
??????
在測試案例執行的過程中,所有調節的數據都需要考慮到邊界數值的測試方法,但是需要注意,邊界數值的測試不是枚舉,只是抽樣的方法。