2016-04-26 60 views
0

作爲一名軟件測試人員,我遇到了一個關於時間旅行平臺測試的事件。 (時間可根據測試要求手動設置爲過去/未來)時間旅行中的軟件測試 - 當地時間的重要性

所以申請時間不必與我的當地時間相同....或者它應該是相同的嗎?

我發現了一個由我的本地時間和應用程序時間不一致導致的錯誤。簡單描述:有兩個驗證。驗證#1驗證客戶端的用戶輸入(並使用本地日期進行驗證),驗證#2驗證服務器端(並使用服務器日期)的用戶輸入。兩種驗證都是根據項目規範中指定的業務規則進行的。 (它沒有指定它應該在本地運行還是在服務器端運行)當這些日期之間不一致時,它會產生意外的結果。

但是該錯誤被開發拒絕,我的測試出錯了,客戶有責任同步這兩個日期。

老實說,我不明白我的當地時間與應用程序行爲有什麼關係。有很多功能和規則,所有這些都是服務器時間用作參考點。但是由於用JavaScript完成的客戶端驗證的參考點是本地時間(因爲它是默認行爲,所以不是有意的)。

所以我只是問你的意見。你認爲這是一個錯誤還是我對當地時間的重要性認識不足?你在項目中如何處理這些事情(如測試人員或開發人員)?這不僅僅是測試和服務器時間旅行的問題,但客戶「時間旅行」又如何呢? (例如不同時區)。你是否會付出任何努力去處理這些事情,或者只是相信,「當地時間不好=客戶問題」,這不是發展問題?

回答

0

一般情況下,它將取決於您的應用程序,它的功能以及需求。但是,作爲最佳實踐,「應用程序時間」始終是UTC。作爲另一個最佳實踐,絕不相信客戶時代。最終用戶的計算機時間可能會完全關閉或不同步,這有很多原因。

幾乎在我使用過的每個應用程序中,我們都將應用程序服務器設置爲UTC。對於最終用戶,我們讓他們設置他們的時區,我們用它來確定時區偏移量。因此,例如,如果最終用戶選擇「東部時區」,我們將存儲該設置以及-5小時偏移量(爲簡潔起見,將忽略夏令時)。如果您沒有將用戶設置存儲到數據庫中,您仍然可以通過客戶端首選項屏幕或通過JavaScript自動獲取其時區。但關鍵因素是忽略他們的時間,只是獲得他們的時區/抵消。然後您將該時區發送到服務器,以便您可以使用服務器的準確時間對時間進行翻譯。這樣,您始終可以獲得準確的服務器時間,但是可以引用用戶的本地時間,以用於報告,邏輯或顯示值。

所以要回答你的問題:在大多數情況下,不好的當地時間需要考慮在內,並且會成爲你的問題。最終用戶不會檢查自己的時鐘以確保它們是準確的,他們希望您的應用程序在沒有IT人員修理的情況下工作。

相關問題