第一次個人作業【七】(代碼測試)
在代碼測試環節,我主要對集中典型以及特殊情況做了測試,結果如下:
文件夾測試
TEST1: 空文件夾測試( √ )
I:\TEST\data 為一個空文件夾,測試程序對空文件夾的處理
命令:
WordFrquency-release.exe I:\TEST\data
輸出結果:
char_number: 0 line_number: 0 word_number: 0 the top ten frequency of word : : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 the top ten frequency of phrase : : 0 : 0 : 0 :0 : 0 : 0 : 0 : 0 : 0 : 0 Totle Time : 0.012s
TEST2: 大量文件與文件夾測試( √ )
這裏使用助教的測試集進行了測試,結果相差不大,在誤差範圍內。
單文件測試
單個文件測試可以有針對的對某些特殊情況進行專門的測試,且由於單個文件易於操作所以效率較高。
同時單個文件測試也測試了程序兼容輸入目錄或者文件路徑的適應性,由於下面的測試是在此基礎上的,所以都同時說明了該程序可以同時處理文件夾和單個文件。
從下面的結果可知對於一般情況,統計結果也是正確的,也不再做重點分析。
TEST3: 空文件測試( √ )
kong.txt 是一個空文件,裏面一個字符也沒有,用來測試空文件的特殊情況,由輸出結果可知,一切正常。
命令:
WordFrquency-release.exe I:\TEST\data\kong.txt
輸出結果:
char_number: 0 line_number: 1 word_number: 0 the top ten frequency of word : : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 the top ten frequency of phrase : : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 Totle Time : 0.011s
TEST4( √ )
本次測試主要測試規則要求中單詞的定義這一項:至少以4個英文字母開頭,跟上字母數字符號,單詞以分隔符分割,不區分大小寫。
分析:由輸出結果(見下面)知
- abc、1234asd均不符合單詞要求故被忽略
- ad78154asd由於前綴ad78145中英文字符數少於4故被忽略,之後的asd由於少於4也被忽略
-
ad7878adsadasd前綴ad7878同樣被忽略,而剩下的adasd符合單詞要求而被記錄
- 由於測試文件中只有一個單詞adasd,故詞組不存在
測試文件如下:(註意最後有一個空行)
abc
1234asd ad78154asd
ad7878adsadasd
測試結果:
char_number: 36 line_number: 4 word_number: 1 the top ten frequency of word : adsadasd: 1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 the top ten frequency of phrase : : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 Totle Time : 0.012s
TEST5( √ )
本次測試主要測試單詞的字典順序相關,例如不同表達式可能表示同樣的單詞,但是單詞的輸出必須是出現過的字典順序最小的表達式
分析:由輸出結果可知
- 輸出的ASDF1234是上面三個最小的字典順序,與要求一致
- ASDF1234 asdf aSDF4分別表示同樣的單詞,故輸出結果的該單詞的次數為3
- ASD雖然字典順序更小,但是少於4個字母,所以當做了一個分隔符
- 詞組輸出:ASDF1234 ASDF1234: 2 與要求一致
測試文件:
ASDF1234
asdf
ASD
aSDF4
輸出結果:
char_number: 20 line_number: 6 word_number: 3 the top ten frequency of word : ASDF1234: 3 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 the top ten frequency of phrase : ASDF1234 ASDF1234: 2 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 Totle Time : 0.014s
TEST6( √ )
本次測試主要測試同一單詞的不同表達式以及略有不同的單詞表達式的區分
分析:由輸出結果知
-
windows95 windows98 windows2000 是同樣的單詞,這在上個測試中已經做過測試
-
windows32a 由於後面數字後還有一個字母a所以是另一個特殊的單詞,由輸出文件知程序能將他們正確區分
測試文件
windows95 windows98 WIN windows2000 windows32a
輸出結果:
char_number: 46 line_number: 1 word_number: 4 the top ten frequency of word : windows2000: 3 windows32a: 1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 the top ten frequency of phrase : windows2000 windows2000: 2 windows2000 windows32a: 1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 Totle Time : 0.016s
TEST7( √ )
本次測試主要測試文件夾中只有一個單詞的情況,由輸出結果知程序正常。
測試文件:
AFGTKNJK
輸出結果:
char_number: 8 line_number: 1 word_number: 1 the top ten frequency of word : AFGTKNJK: 1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 the top ten frequency of phrase : : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 Totle Time : 0.037s
TEST8( √ )
本次測試測試對只有兩個單詞即只有一個數組的情況。
由輸出知,結果正確。
測試文件:
AFGTKNJK asdad
輸出結果:
char_number: 14 line_number: 1 word_number: 2 the top ten frequency of word : asdad: 1 AFGTKNJK: 1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 the top ten frequency of phrase : AFGTKNJK asdad: 1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 Totle Time : 0.017s
TEST9( √ )
本次測試三個字符串其中中間的那個不符合單詞要求,在這樣的情況下的程序是否正確。
由結果知,一切正確。
測試文本:
AFGTKNJK sa asdad
測試結果:
char_number: 17 line_number: 1 word_number: 2 the top ten frequency of word : asdad: 1 AFGTKNJK: 1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 the top ten frequency of phrase : AFGTKNJK asdad: 1 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0 Totle Time : 0.088s
總結
以上各個測試基本上將可能出現的典型情況與特殊情況做了測試,程序的實際表現相當好,這種魯棒性得益於程序編寫開始有較完備的設計,說明前期工作與實際編寫調試過程做的都還不錯。
第一次個人作業【七】(代碼測試)