四、隨機測試:猴子和大猩猩

  有一類測試工具不是為幫助執(zhí)行或者自動執(zhí)行測試用例而設計的,其目標是模擬用戶可能的操作,此類自動化工具稱為測試猴子(testmonkey)。

  測試猴子的來源:如果讓一百萬只猴子在一百萬只鍵盤上敲一百萬年,從統(tǒng)計的角度上講,它們終可能寫出莎士比亞話劇AdventuresofCuriousGeorge(好奇喬治歷險記)等巨著。

  1、笨拙的猴子

  簡單直接的測試猴子是笨拙的猴子:只是隨機地單擊鼠標或者敲擊按鍵。

  不停重復和使用笨拙的猴子可能會暴露內(nèi)存泄漏等軟件缺陷。

  2、半聰明的猴子

  在笨拙的猴子的基礎上加上日志記錄,將猴子的所有操作記錄到一個文件中。

  當猴子發(fā)現(xiàn)軟件缺陷時,只需查看日志文件,找出在失敗前猴子做了些什么。

  技巧:另外一個解決方法時用攝像機錄下屏幕上的內(nèi)容。當發(fā)現(xiàn)軟件出現(xiàn)故障時,倒回去重新看看。

  3、聰明的猴子

  不于查找崩潰缺陷,同時還查看數(shù)據(jù)、檢查操作結(jié)果、找出其與預期結(jié)果的差別。

  五、使用測試工具和自動化的實質(zhì)

  記住,測試自動化不是的。如果正確規(guī)劃和執(zhí)行的話,工具和自動化可以使測試效率大大提高并且能發(fā)現(xiàn)其它方式不能發(fā)現(xiàn)的缺陷。

  然而,如果自動化和工具步入歧途,會導致無數(shù)的自動化測試的努力被放棄,并且使項目成本大大增加。

  考慮以下因素:

  1)軟件變更;

  2)人眼和自覺是不可替代的;

  3)驗證難以實現(xiàn);

  4)容易過分依賴自動化;

  5)不要花費太多時間使用達不到測試軟件目的的測試工具和自動化;

  6)編寫宏、開發(fā)工具和編制猴子都屬于開發(fā)工作;

  7)某些工具是入侵式的。