我正在做一個Web服務的軟件測試,我想知道,如果Web服務需要一個郵政編碼並返回郵政編碼的座標。如果我輸入99999,這不是一個郵政編碼,但系統不會崩潰,它只是在兩個座標上都回復0,是否認爲是無效輸入?我不確定,因爲它不會崩潰系統,這意味着它可以處理輸入,所以它會使輸入有效,或者它仍然無效,因爲99999不是一個郵政編碼?如果輸入不是預期的但是正確處理它有效嗎?
-1
A
回答
1
它完全取決於關於Web服務規範的狀態。
例如:
- 如果它指出它無效的輸入返回0,它的正常工作 - 待着。
- 如果它聲明你只應提供有效的輸入,你違反了合同,它可以隨意做任何事情。向前走。
- 如果它不是說明它將爲無效輸入做什麼,它也可以做任何希望的事情。這是通常遵循最少驚訝的原則,但絕不是強制性的。
最後一點是非常重要的一個問題:只有當軟件不能像記錄文件那樣工作時才存在真正的錯誤。很多人認爲這是軟件無法正常工作的缺陷,但實際上這是一個實施決定。
該決定可能是壞的,例如,你不能區分「錯誤」條件和有效輸入之間的區別,但這可能不是這種情況。假設這些座標是經度/緯度,0/0
位於大西洋中部,距離最近的主要陸地約600公里。所以不太可能有任何郵政編碼會解決這個協調問題。
話雖如此,任何像樣的網絡服務應該文件允許的輸入和狀態如果合同被打破將發生什麼。有可能你使用的是這樣的(我們不知道你使用的是哪一個),你可能需要搜索它。
1
你如何定義無效? Google的定義之一是:不符合正確格式或規格的(計算機指令,數據等)
。
根據這個定義,它是無效的。它正在產生一個無效的答案。
但是,如果它是你的web服務,如果這是預期的行爲(故意的,以防止崩潰,並用明顯不正確的答案呈現在用戶),那麼我就不會認爲這是無效的。在某種程度上,這是「預期輸入」—它是防止用戶錯誤的保護措施,您應該始終將其添加到您的代碼中。
但是,如果是這種情況,那麼我想你會採取不同的方法來警告用戶不正確的用戶。
相關問題
- 1. CounterTester.java輸出是正確的,但它不是正確地減少
- 2. 這是程序的正確預期輸出嗎?
- 3. WM_QUERYENDSESSION處理程序的返回值不具有預期效果
- 4. FormatException是未處理的輸入字符串格式不正確
- 5. 批處理 - 命令不是預期的
- 6. Gnu AS似乎沒有預處理#defines,但是GCC確實有
- 7. 該值是無效的,但它應該是一個有效的輸入值
- 8. 這有效,但它是「正確」的方式?
- 9. 不正確處理用戶輸入
- 10. 是php://輸入安全嗎?如果沒有,如何保護它?
- 11. 它是檢查功能輸入值的正確方法嗎?
- 12. 批處理腳本:檢查是否有效或無效輸入
- 13. 正確處理文件的數量少於預期的輸入時
- 14. DirectX輸入是遊戲中鍵盤處理的正確選擇嗎?
- 15. PHP預期的傳輸是「https」,但傳入傳輸發現:「http」
- 16. 如何正確處理對象:注入還是擁有對象
- 17. 是預處理的符號常量嗎?
- 18. .apk不包含classes.dex但是有效嗎?
- 19. JUnit測試失敗,但結果是預期的嗎?
- 20. 有效處理超寬,但不是很高的位圖?
- 21. 是SBJsonParser的錯誤,「有效片段,但不是JSON」,是否正確?
- 22. SASS未正確預處理
- 23. C預處理器的輸出不如預期
- 24. 爲什麼align =「right」有效,但不是text-align:正確的td?
- 25. 似乎是有效的JSONarray對象,但如何讓PHP來處理它?
- 26. 有效的鍵盤輸入處理
- 27. 如果我的if語句有效,它的結構是否正確?
- 28. Rspec似乎缺少預期方法......這是正確的嗎?
- 29. 如果它是空的,請再次詢問prompt()輸入嗎?
- 30. 高效的方式,如果所有的文本輸入框是不是空
你是如何獲得座標的?你在使用任何圖書館嗎?你用什麼語言? – Hiroki
@YMD:沒有一個與問題相關。 –
你穿什麼顏色的內衣?在你的時區中,一天的什麼時間?空載吞嚥的空速是多少? :-) – paxdiablo