自動化錯誤報告:通往更高軟件質量的大門

發表于:2013-05-15來源:InfoQ作者:Laila Lotfi點擊數: 標簽:
自動化錯誤報告:通往更高軟件質量的大門!無知是福,但是在處理軟件bug的時候,這句話并不適用。 軟件質量專家會告訴我們,那些努力找出bug并且提高軟件質量的公司可以得到客戶更多的信任,得到更高的利潤,降低開發和維護的費用,簡化交付的流程,同時還可以避

  無知是福,但是在處理軟件bug的時候,這句話并不適用。

  軟件質量專家會告訴我們,那些努力找出bug并且提高軟件質量的公司可以得到客戶更多的信任,得到更高的利潤,降低開發和維護的費用,簡化交付的流程,同時還可以避免客戶的流失。

  軟件質量是個大工程

  如果你覺得軟件質量沒有什么大不了的,那么就來看看Capers Jones在2011年6月軟件質量雜志上發表的文章(這份雜志由美國質量協會主辦):

  高質量軟件的發布周期比低質量軟件短15%。

  高質量軟件從第一個版本發布到之后五年的周期里花費的總費用比低質量軟件低30%。

  高質量軟件每年的維護費用比低質量軟件低40%。

  規模越大的軟件,質量越是一個重要的因素。

  根據Jones的觀點,軟件測試在查找bug時的有效性有限,還不到35%。

  考慮到軟件質量對公司業務的影響,開發團隊都在尋找新的提高軟件質量的方法。其中最有前景的方法就是自動化錯誤報告(Automated Error Reporting),這種方法以用戶為基礎來確定軟件的錯誤和異常。

  我們的目標是讓錯誤報告變得易用、完整和可自定義

  有許多讓用戶參與到軟件糾錯當中的方法,比如郵件和論壇社區,自定義的軟件功能,Windows Error Reporting(WER)和各種現成的解決方案。

  但是這些方法都不一定比自動錯誤報告有效:有的方法會讓用戶承擔過多的責任;有的方法不能收集到精確的信息;有的方法不能捕捉關鍵的特征,如變量運行時的賦值可能就是一種關鍵特征;有的方法不能把錯誤提交到通用的錯誤跟蹤系統里面。

  我們的目標是讓錯誤報告變得易用、完整和可自定義,這就要求用戶可以方便地提交錯誤報告,開發人員也可以方便地理解錯誤報告。這可不是一件簡單的事情,每個錯誤報告都應該包括完整的堆棧追蹤信息和有助于查找、修復bug的上下文信息。自動錯誤報告還應該可以和bug追蹤工具整合在一起。

  Andrew Neville表示:“自動化錯誤報告讓用戶可以十分方便地提交錯誤報告。只要用戶按發送鍵,我們就可以收到修正錯誤所需的所有信息。使用了自動化錯誤報告之后,我們讓用戶可以更方便地與我們溝通。”Andrew Neville是Neville&Rowe的一名資深軟件工程師,在Red Gate的SmartAssembly中使用了自動化錯誤報告,從而使商業智能分析軟件ImpactEdge可以很好地追蹤bug。

  認識自動化錯誤報告

  自動化錯誤報告的價值在于讓開發團隊了解到未知異常的詳細信息。它從五個方面為軟件開發帶來了好處:

  它為用戶提供了一種有效的反饋途徑,增加了用戶和開發團隊之間的溝通效率。

  它讓開發團隊了解到哪些bug是最容易發生的,讓開發團隊可以根據事實情況而不是猜測來修正bug。

  它讓開發團隊可以更快的修復bug。

  它可以以更低的代價確認和修復bug。

  它可以讓開發團隊在發布軟件之前獲得更多的前期用戶反饋。如果開發團隊正在使用敏捷開發,自動化錯誤報告可以讓開發團隊根據用戶的反饋快速制定出迭代的計劃,從而縮短迭代的周期。

  微軟MVP和IT顧問Ed Blankenship解釋說:“知道異常發生的頻率對于修復異常來說是非常有幫助的。知道bug的詳細信息對于修復bug也是必不可缺的。“

  自動化錯誤報告是怎樣工作的

  一個理想的自動化錯誤報告系統可以讓用戶方便地告訴開發團隊軟件產品的問題在哪里。在理想狀態下,當軟件發生異常的時候,用戶應該可以得到一個簡單明了的錯誤提示并且可以通過用戶界面發送錯誤報告。這可以大大節省用戶花在描述和反饋錯誤上的時間。所有的必要信息都應該被自動收集,而不需要用戶操心。

  一個錯誤報告應該包括了完整的堆棧信息和異常上下文信息,包括運行時變量的值。

  另外一個特性是用戶可以在異常報告中添加額外的自定義信息。這些信息包括日志文件,截圖,或者是用戶的聯系信息。

  隱私問題和不合理的錯誤報告

  發送錯誤報告的時候經常會出現下面三個問題:

  錯誤報告會附帶用戶的隱私信息。

  用戶反復遇到相同的錯誤,但是每次系統都要求用戶重新發送一次錯誤報告。

  開發團隊不停地收到相同的錯誤報告。

  第一個問題涉及到用戶的信任程度。再好的錯誤報告系統也不可能保證絕對不會把用戶的隱私信息傳送給開發團隊。好的錯誤報告系統應該考慮到敏感信息的問題,這樣可以盡量避免發送敏感信息。如果開發團隊沒有能夠控制敏感信息的傳送與否,那么錯誤報告系統應該可以讓用戶選擇是否信任開發團隊并且把敏感信息發送給開發團隊。

  第二個問題的解決方法是用戶應該可以自定義錯誤報告發送系統。

  Red Gate的程序員Alex Davies說他總是會在合適的時候才顯示錯誤報告提示,并且給用戶“不要再提醒了??偸前l送報告。”的選項。

  針對第三個問題,開發團隊應該把錯誤報告進行分類。Davies告訴我們應該把收到的錯誤報告與bug追蹤系統進行同步以甄別是否是一個有效的錯誤報告。

  使日常工作更加方便

  隨著時間的推移,自動化錯誤報告的好處就會顯現出來。其中有一條是最重要的,那就是可以讓用戶和開發團隊都可以更方便地工作。一個IT決策者講的話很好的概括了這一點:

  “用戶只需要點一下按鈕就可以把信息反饋給開發團隊。這避免了不停地電話或者郵件以及不完整的錯誤報告。這的確可以讓用戶和開發團隊都更方便地工作。“

  作者簡介

  Laila Lotfi就職于Red Gate Software的.NET工具組,同時也是Simple-Talk網站的貢獻者之一。Red Gate開發的軟件工具在全球有超過50萬個用戶,主要是.NET開發者和SQL Server專家。該公司通過自由的網絡社群網站、技術刊物以及會議贊助等行為進行市場活動,每年影響到上百萬人群。

原文轉自:http://www.infoq.com/cn/articles/Error-Reporting

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97