- Bohrbug: 看似隨意但特定情況可穩定重現。以前用8051時,Keil C並不會初始化全域變數。不慎用了未初始化的變數,就會出現隨意的bug,因為變數的初始值是隨機,但是會隨元件不同有固定的模式。
- Mandelbug: 原因極度複雜的問題。X的,第二個就舉不出適當例子,大部份的問題追到最後原因都算單純,複合式的問題應該會比較接近。
- Heisenbug: 去調查就會改變或消失。這個很多,隨便想就三個。由於printf透過UART傳送,速度較慢,很容易影響執行時序導致問題消失;或是改變程式碼導致整個memory map改變,讓某些與記憶體位址有關的問題行為改變;還有就是函數沒有宣告,參數錯誤導致堆疊複寫,要去查時很容易影響到堆疊讓問題隱藏起來。
- Schrodinbug: 負負得正?這也常看到,有些程式看起來根本亂寫,但是照正常寫根本不能動,因為在caller或callee會有別的邏輯讓結果正常。要修正就只能大修。
- Phase of the Moon bug: 跟時間有關的問題。32=bit unsigned integer用來表示millisecond只能表示49天,如果表示microsecond只能表達71分鐘。Overflow又沒處理就有這種問題。
- Statistical bug: 這我比較少遇到,比較接近的是image digital zoom在某些倍率會出問題?
- Alpha particle bug (single event upset): 被宇宙射線打到!?我有個很經典的例子,有個影像問題只要客戶大陸QA會發生,客戶大陸產線不會,客戶台北QA/RD不會,我們當然也無法重現。某人之接觸過手機,計算出影像上的問題呈珼GSM撥動時訊號的頻率,推導出工廠QA可能在測試當時手機有來電,委婉地請客戶確認,果然如此。
不過我覺得最討厭的還是背黑鍋的問題。現在SD卡是主流,而且速度愈來愈快,自然有做得不好或是不肖業者作弊的情況。最近就遇到SD卡資料在關機時資料仍然正常,但是關機後檢查卻發現資料是舊的,而且透過PC或平台檢查的結果都一樣。雖然是別人的問題還是得我們解決,真是悶。
1 則留言:
有意思 :D
張貼留言