通過追蹤程式設計師的眼球來預防Bug

伯樂線上讀者發表於2014-08-09

123

 

膽小鬼是不適合從事軟體開發的。程式設計師經常要長時間工作,盯著電腦螢幕敲程式碼。一個電腦程式可能包含幾百萬行程式碼,考慮到程式碼的特性和規模,出錯是不可避免的。

這些錯誤的業內名字叫bug,他們可能會給客戶帶來嚴重後果。完全消除程式碼中的bug幾乎是不可能的,但對於軟體公司來說,通過合理手段來減少bug數量是優先要考慮的。

現在微軟研究員Andrew Begel和一些學術和工業領域的同事提出了一個新穎的方法來減少程式碼錯誤:追蹤開發人員工作時的眼睛運動以及其它精神和肉體特徵。他將於7月15日,也就是第15屆微軟研究技能峰會的第二天下午一個主題為“這讓你感覺如何”的討論會上展示他的工作成果。

分析bug產生原因的現有工作主要專注於研究“Bug修復”和“發現bug之後的程式碼”之間的相關性。在他和蘇黎世大學的Thomas Fritz、Sebastian C. Müller、Manuela Züger以及工程科學諮詢公司Exponent的研究員Sera Yigit-Elliott一起發表的論文《使用心理和生理方法評估軟體開發中的任務難度》中,作者們提出了新方法:檢測開發人員工作時糾結的情形,以此防止這種情形下可能會產生的bug。

劃分難度等級

6月5日在印度海德拉巴舉行的第36屆世界軟體工程大會上,他們展示了這項研究成果:根據從心理和生理感測器中獲得的資料來劃分編碼工作的難度等級。

Begel,“程式分析”國際會議的聯合主席做了以下講解

“有個被稱為軟體庫挖掘的研究領域,”他說:“致力於尋找軟體開發過程中的度量和bug之間的相關性。譬如,一段經常被編輯的程式碼中產生bug的機率要比不常編輯的程式碼大。”但這種結果沒有實際意義–如果你不再編輯程式碼,也就不會產生bug–但也就開發不出軟體了!

“我的想法是,如果軟體開發人員寫程式碼產生bug,我們應該找出開發人員本身對產生bug的影響。如果我們可以找到有何行動上或者情緒上的原因會導致帶有bug的程式碼產生或者帶來較低的工作效率,那我們就能介入並在第一時間阻止這些問題的產生。”

這篇論文描述了研究人員提出的三個問題,來討論心理和生理測定是否可以用來判斷某個程式碼分析工作是簡單的還是困難的:

  • 我們是否能夠利用眼部追蹤技術,從皮電活動[EDA]感測器和腦電波[EEG]感測器中獲取心理和生理測定資料,來做出準確的預測某項工作是困難還是容易的?
  • 利用哪些心理和生理感測器以及相關特徵可以預測某項工作的難度?
  • 我們是否可以利用心理和生理測定資料在開發人員工作的過程中預測某項工作的難度?

EDA測定資料會隨著皮膚導電的能力而發生改變,EEG測定資料評估了大腦中的電子活動。

研究人員測試了15名專業開發人員,來看這種新方法是否可以很好地預測任務的難度。結果令人鼓舞:對於新手開發人員,預測的準確度接近65%。對於新任務,準確度更高,幾乎85%。

開發人員在可能造成bug並且需要有外部介入的階段有何反應目前還不得而知。

“我們還沒有嘗試過進行介入,”Begel說:“但我有考慮過一個介入方法,適用於那些分心的開發人員,譬如那些剛吃完飯回來還沒能將心思放在程式碼上的開發人員。如果我們降低顯示器的對比度、調整字型使其更難閱讀,那麼開發人員會被迫動用更多的腦力來閱讀和理解程式碼,也就不太可能出錯。”

這項技術廣泛應用之前還有很多工作要做,但是研究人員在論文中展示的結果前景很好,它提出了一種可靠的方法來評定軟體工程任務的難度,促進下一代開發工具的發展使其能更好地幫助負擔過重的開發人員。

“我們尚在試驗階段,要努力弄明白這些感應器向我們傳達了關於開發人員的哪些資訊。”Begel說:“如果我們能成功發現內在的規律,並據此提出適當適時的介入方法,那就可以轉化成實用的開發工具。”

相關文章