* 性能陷阱。 為了盡快實現業務邏輯。我們在第一次編碼的時候往往不先考慮性能問題。這個想法不算太錯誤,但這個想法不能太過分。特別是涉及到一些”性能敏感”的代碼段,比如我們產品中多處涉及到的Tcp Server的內核。這些部件的代碼1天可能遭受幾百萬次的訪問,瞬時絕對并發100是最正常的情況。因此0.1秒的性能損失,也會帶來 100x0.1=10秒的性能損耗。10秒,足以使一個TCP Server達到實際“不可用”的嚴重程度!10行馬虎的代碼,可能毀掉客戶對我們團隊辛苦生產的100萬代碼的信任。切記!切記!
* 安全隱患。 某些安全隱患在我們剛開始寫實驗性的代碼時往往可以忽略,但絕不能忘記。你必須在這個產品進入到下一階段的時候加上必要的安全檢查代碼和與安全相關的邏輯驗證代碼;貞浺幌,你是否忽略了下面的工作:
1. http session檢查。 盡管我們可以用框架來保證這一點。但你還是要檢視一下,是否在某些功能的實現上,你確實忘記它了。
2. 參數類型校驗。 當你把一個'a'傳遞到servlet用Internet.parse()來處理的時候,你是否考慮了可能出現的異常情況。等等此類。
3. NullException。 特別注意,千萬不要讓NullException出現在jsp中,否則你很難在系統部署后排查錯誤。在你第一次編寫jsp代碼時,你就必須考慮你所使用的對象或者屬性是否可能為Null。
4. Anti-flood。 最容易被初級程序員忽略的要點之一。因為這個bug永遠不會出現在你的eclipse開發運行環境里。也往往被功能測試組的人忽略。但一旦存在這個隱患,一個最菜的Hacker用最普通的teardrop也會讓你tear drop。
* 線程安全。 永遠不要忘記,你的代碼需要在一個多線程的環境中運行,隨時隨地都有可能出現并發的情況。你的產生的臨時文件名是否用uuid來避免重名了?你的靜態(或單態)變量是否線程安全。你是否忘記將spring里定義的bean設置為scope=prototype?
* 忘記刪除臨時文件。 在上傳文件、生成驗證圖片、生成縮略圖的時候,你都可能用到臨時文件。你是否在使用完畢后及時的刪除了它?你是否考慮過在發生異常后,仍然安全的刪除了這個文件?特別需要指出的是,我們在編碼階段的測試時,很難發現遺漏臨時文件清理的工作。單在系統上線運行后,大量滯留在目錄下的過期臨時文件將用光客戶的服務器磁盤空間,降低系統IO的性能。
* 極不友好的UI操作。 極不友好的UI操作同樣是嚴重的BUG。比如:
1. 當用戶提交表單的時候可能填寫了錯誤格式的信息,而你的程序再提示錯誤,重新顯示表單的時候清除了用戶已經填寫的數據。這對你的軟件的使用者來說是極其惱火的體驗,對于創造這個代碼的您來說則是一種恥辱。
2. 另一種“極不友好的UI操作“可能發生在這種情況——你必須跟測試人員解釋——他體驗到這次系統出錯的原因是他(測試人員)操作的步驟或順序不正確。天那,這是噩夢,不僅是用戶的噩夢,也是你的噩夢。如果你堅持你的做法沒錯,我將決定在系統上線后,把你的手機和家里的電話號碼做為HELP放在你創造的界面的顯著位置呈現給使用它的80萬用戶。
文章來源于領測軟件測試網 http://www.kjueaiud.com/