對于熱愛測試的工程師來講,這個過程是充滿樂趣的,但是要有嚴密的邏輯思維能力和對被測試系統運行機制的深刻理解。找到原因后,你可能會得出這樣的結論:開發為什么會犯如此低級的錯誤;開發對協議的理解有誤;開發對此類數據的處理有問題等等。然后你可以跟開發說,你哪里的代碼處理這個數據有問題、你哪里哪里理解錯誤,虛榮心會得到小小的滿足。
大家有沒有感覺到,在定位復雜問題時,日志系統里缺少的總是關鍵信息,而有的信息總是不太重要的, 軟件可維護性任重道遠。
另外,有些公司的crash問題是不用復現的呦,信息已經足夠了。 你的公司能做到嗎?
此類問題即使有日志信息,因為大容量、高并發,再加上異步處理打亂了原有的慣性邏輯思維,是很難用通用的方法定位出來的。
比如系統記錄明確指針異常的問題,也有堆棧的信息,并且知道哪個指針為空,但是不知道如何導致的,經排查初始化完全沒有問題。這種情況下就不能簡單的通過返回NULL來解決,這樣有可能用戶得到的數據就是空的,雖然概率很低,但是會影響用戶的體驗。 特別是在初創公司,在激烈的市場競爭中,差的用戶體驗,無異于自掘墳墓。
姿勢:此類問題測試同事是不太可能單獨搞定的,一定要伙同資深開發同事一起分析(一般你不叫他他也會過來,這類問題是很有吸引力的)。主體思想是先提高復現概率、一步步縮小問題范圍,最終定位出問題。具體思路怎么變態怎么來,客戶端加大訪問量、服務端減少資源、懷疑是網絡的問題可以使用traffic control模擬報文錯誤或異常。說隨如此說,碰到具體問題還是要具體分析,根據問題現象,進行有針對性的驗證。
為了避免碰到此類問題你可以多拜拜觀音菩薩, 如果真碰到了就去買彩票
測試人要有正確的價值觀引導,做事嚴謹,并且要有一定的技術實力做支撐。
原文轉自:http://www.jianshu.com/p/380e347f301a