版本控制
昨天新版程式上線,原以為會很順利,但是發現順利並不是順理成章的。後來共發現了兩個錯誤。
首先是一個signed 與 unsigned 的問題。sBodyMsg 為一 CString,而此判斷式 if (sBodyMsg.GetAt(254) > 127) 當 GetAt(254) 傳回值大於 127 的 char 時,判斷結果並不正確。後來發現因為 127 會被轉為 int,所以大於 127 的 char 被轉為 int 時就變成負值了。
第二個是程式版本控制的問題。因為在改成新版本時,舊版本仍有新增功能,此時卻沒有同步更新新版程式,因此造成不該有的錯誤。
這次學到的教訓有,1.程式版本控制,確定新功能均有加入新版程式中;2.測試足夠的案例,包含程式中所有的判斷條件,確保在各種條件下均能運作正常。
首先是一個signed 與 unsigned 的問題。sBodyMsg 為一 CString,而此判斷式 if (sBodyMsg.GetAt(254) > 127) 當 GetAt(254) 傳回值大於 127 的 char 時,判斷結果並不正確。後來發現因為 127 會被轉為 int,所以大於 127 的 char 被轉為 int 時就變成負值了。
第二個是程式版本控制的問題。因為在改成新版本時,舊版本仍有新增功能,此時卻沒有同步更新新版程式,因此造成不該有的錯誤。
這次學到的教訓有,1.程式版本控制,確定新功能均有加入新版程式中;2.測試足夠的案例,包含程式中所有的判斷條件,確保在各種條件下均能運作正常。
0 Comments:
Post a Comment
<< Home