2011-06-11 11 views
3

編寫高質量的軟件應該是第一步。現在,這是一種動人的目標(我們有一些東西符合https://stackoverflow.com/questions/3716203/automatic-code-quality-and-architecture-quality-static-code-analysis的規定,我們也有類似於某些特定客戶的迴歸測試套件和測試環境)。我們做了什麼,有些情況下只有客戶看到並得到崩潰/錯誤。有時他們只是有性能問題。有時候是崩潰,有時候是應用程序對象模型錯誤。使支持應用程序更容易的指導方針/想法

一般來說,我該如何減輕疼痛?我如何從這種情況下獲得大部分(數據)?什麼樣的編碼/架構步驟可以幫助在第一次和第二次發生問題時獲得更多信息?

這裏是起點:

好的日誌: log4j的開始點。用戶應該能夠輕鬆更改文件。提供一個小的gui來編輯這個文件會更好。 (我們的日誌配置位於windows 7中的c:/ Program Files /區域;編輯對於普通用戶來說不太容易 - 需要神奇的「以管理員身份運行」選項)。

堆轉儲:發生內存不足時轉儲堆。

自動提交錯誤報告: Firefox,intellij等都是很好的例子。不知道是否有一個現成的圖書館。

JMX:對於服務器應用程序,這似乎非常有用。我從來沒有用過它。

檢測系統要求的工具: 我還沒有做到。

能夠自動升級:

我們是與服務器進行交互主要是Java桌面應用程序。我想有更多的步驟可以採用,直到我們得到所需的質量:)

回答

1

對於服務器應用程序考慮類似於Dynatrace(非免費但很好)的工具來獲得半實時查看您的代碼。

與您的問題不完全相同,但通常在通過諸如FindBugsSonar之類的工具進入GA之前嘗試找到錯誤。

我不知道自動錯誤提交庫,但快速RESTfull Web服務將很容易建立一個非常有價值的。

對不起,這不是一個非常完整的答案,而是我多年來拾取的幾個位。

1

一對夫婦的建議:

  1. 推出的產品給客戶,包括性能和負載測試之前良好的質量保證。
  2. 足夠/適當的客戶端和服務器端日誌記錄,以幫助診斷髮生的問題。培訓(測試版)客戶編寫bug指南。這可能包括從幫助|中捕獲發佈信息關於,包括重現問題的精確步驟,屏幕截圖和日誌信息。報告不完整時診斷問題要困難得多。
  3. 許多問題都是數據特定的,需要複製客戶數據以進行復制。如果可能,維護包括客戶數據/配置的測試環境。