最近項目測試中又遇到了一個典型問題。
幾個case在本地local Windows測試環境下可以通過,但在remove Linux的集成環境中卻失效。
調查后顯示,由於一處文件名定義在項目實現中和測試框架實現中的大小寫不一致,造成這個問題在Windows下文件名大小寫不敏感的測試環境中沒有暴露出來,而直到轉移到集成環境的linux測試環境中由於Linux下文件路徑名大小寫敏感才暴露。
經驗:
1. 提醒開發測試人員注意,項目實現時盡可能按項目文件/路徑名的約定保持一致性。
2. 測試框架實現時,做任何字符串匹配判斷時,要加預處理的步驟來考慮可能的大小寫不一致情況。若不符合預期,則需要暴露問題;若符合預期,則實現時要做預處理來規避這一潛在的non-issue。
3. 這里還暴露出來一個設計問題,開發的實現可以進一步改進,將一致性約定重復的實現提取出來作為公有類供其他實體類來訪問。從而避免每個實體類中實現可能造成不一致的情況。