只不過為了那紅燦燦的爺爺,葉新晨也不得不努力啊。
接下懸賞后,葉新晨就看著這套庫封裝了設備通訊以及各種命令返回信息的識別、分類以及錯誤監控等功能。
而且這套庫由一種很小眾的語言寫成,這種語言叫TCL,你可以認為它是一種shell腳本,所以繼承了命令行寫批處理的各種怪異風格;同時它還提供了類似python的進階功能,比簡單的shellscript稍微強大一些——這就在水平不高的自動化測試人員和相對強大的語言能力之間取得了平衡。
做過debug的業內人士都知道,一個bug癥狀越明顯、發作越頻繁,它就越好處理;最怕的就是這種維護輔助庫一年半載不出現一次的。
所以也難怪人家要懸賞這個,畢竟費時間還不一定找得到,沒有一定的經驗太難了。
葉新晨也只是大致看了看,目前來說完全沒有頭緒。
因為相關代碼4、5萬行都可能是有的;而且這BUG描述也極為模糊、混亂,完全沒有方向。
所以對于葉新晨來說,解決這個bug的過程應該曲折一點。
十分鐘之后,在這個BUG之前,葉新晨在輔助庫中又找到了另一個“積年老Bug”。
這個BUG好像屬于偶發,時有時無,讓人摸不著頭腦。
所以葉新晨準備為這個支撐系統做個模擬運行系統。
為什么要做模擬運營系統,是因為所有這些測試代碼其實都要在網元上運行;而這些網元中,性能比較猛的,兩臺就足夠東南亞那些小國全國使用的——從它的電話通訊到電腦網絡,全都由這個設備提供支持。
這種設備當然不可能多,如果有測試組想開始測試,就得提前申請;然后如果測試用例有BUG,就把大量機時浪費掉了,那樣子寫的代碼,測試起來就更難了。
而葉新晨是沒有這些的,所以只能搞個模擬系統:只要下發命令,就能從數據庫找出記錄下來的、對應的命令返回給自己,這樣就不需要在真機上調試了。
借助這個模擬系統,葉新晨就可以把BUG出現前測試組日志里記載的命令返回“喂”給程序邏輯。
這果然使得Bug重現了。
通過到處插日志打印語句,葉新晨發現這個問題是因為“命令返回的結果信息丟失”引起的,然后進行到這一步,葉新晨發現調查卡到了這里,下面無法進行下去了。
揉了揉自己的腦袋瓜,葉新晨感覺頭腦昏昏沉沉了。
“吃飯了老公,先休息一會兒吧,不用那么著急。”
這個時候,王曉雪也是從廚房中出來,看著頭發已經亂糟糟的葉新晨,也是猜到葉新晨遇到難題了,所以王曉雪也是想讓他休息一會兒。