1、想笨拙的用戶那樣做
??????? 正確的說法也許應該是無經驗的用戶或新用戶,但事實上都是一回事。一個不熟悉軟件的人面對程序時,他會做出令人永遠想不到的舉動。他們會輸入程序員無從想想的數據。他們會在中途變卦,退回去執行其他操作。他們沖浪遇到某個站點,可能會單擊不應該單擊的東西,他們會發現開發小組完全遺漏的軟件缺陷。
??????? 軟件測試員看到一個沒有任何測試經驗的人只花5分鐘來使用軟件并使其崩潰,一定會感到沮喪吧!他們是怎么做的?他們不遵循任何規則,也不做任何加定。
?????? 在設計測試用例或者初次查看軟件時,要設法想笨拙的用戶那樣想問題。拋開關于軟件應該如何工作的先入之見。如果可能,找一個其他專業的朋友來整理思路。假設他什么也不會,把這些測試用例加入到已經設計好的測試用例庫中,就會更加全面。
2、在已經找到軟件的地方再找找
?????? 在已經找到軟件缺陷的地方再找的原因有兩個:
?????? 1、找到的軟件缺陷越多,就說明那里的軟件缺陷越多。如果發現在不同的特性中找出了大量上邊界條件軟件缺陷,那么明智的做法是對所有特性著重測試上邊界條件。當然無論如何要進行此類測試的,但是還應該投入一些案例來保證這個問題不是普遍存在的。
?????? 2、許多程序員傾向于只修復報告出來的軟件缺陷,不多也不少。如果報告軟件缺陷是啟動——終止——再啟動255次導致崩潰,程序員就只修復這個問題。也許是內存泄漏導致這個問題出現,程序員找到癥結并將其修復。當拿回軟件重新測試時,一定要重新執行同樣的測試256次以上。在這個范圍之外既有可能存在其他的內存泄漏問題。
3、像黑客一樣考慮問題
?????? 沒有軟件是100%安全的。黑客知道這一點,會尋找軟件的漏洞并利用這些漏洞。作為測試員,需要從另外的角度考慮問題。想想軟件里面有哪些有價值的東西,為什么有人要想獲得其訪問權限,黑客進入的方法有哪些。不要太紳士,黑客不會紳士。
4、憑借經驗、直覺和預感
????? 要想稱謂真正的軟件測試員,積累經驗是不可替代的。沒有比親自動手更好的學習工具,也沒有比客戶第一次打電話報告剛經過測試的軟件中存在缺陷一事更好的教訓了。
?????? 經驗和直覺是不可言傳的,必須經過長期的積累。運用現在學到的全部技術進行測試,仍然有可能遺漏重要的軟件缺陷。這是無法更改的事實。隨著在職業生涯中逐步提高,學習測試不同類型和規模的產品,就會得到各種提示和技巧以便更加有效地找出令人棘手的軟件缺陷。重新開始測試新軟件,就可以很快找到以前同事可能遺漏的軟件缺陷。
??????? 記錄哪些技術有效,哪些不行。嘗試不同的途徑。如果認為有可以之處,要深入探究。按照預感形式,直至證實這是錯誤為止。
??????? 經驗是每個人為其錯誤尋找的代名詞。???????????????????????????
???????????????????????????????????????