如果讓我說我創建了一個輸入文本,應該只接受1到100之間的任何小數,我該如何測試它?良好的邊框測試
IMHO,我將測試在此流速:
「0」, 「1」, 「50」, 「100」, 「101」, 「0.9」, 「100.1」, 「A」
這些夠了嗎?是否有結構化的流程如何測試這種邊界測試? (任何好的文章?)我還應該測試「1 + 1」嗎?
如果問題改爲「接受1到100之間的任何整數」,該系列測試足夠了嗎?該系列輸入是否需要與測試小數點不同?
「0」, 「1」, 「50」, 「50.5」, 「100」, 「101」, 「0.9」, 「100.1」, 「A」
良好的邊框測試
回答
對於#1,則重新走上正軌,我認爲你甚至可能有太多同等級別的案例。通常情況下,如果你有一個下界L和一個上界U,足以證明L和U是有效的,而L - e和L + e是無效的(其中e是最小或合理的小增量)邊界)。如果你想爲理智添加額外的價值,那麼在L和U之間進行測試也是可行的。有人會說,在L和U之間選擇一個隨機值同樣適用,但我更喜歡我的測試是確定性的。
所以在上面的例子中,L是1並且U是100.由於它是一個十進制值,所以e的值很棘手,因爲e在理論上可以非常小。在那裏選擇合適的東西很適合你的客戶場景。例如,如果它是美元數額,選擇0.01將是一個不錯的選擇。在這種情況下,這會給我們留下「1」,「100」,「0.99」和「100.01」。
由於您的文本框也可以接受字母,因此在這裏也可以測試非數字數據,就像您上面用「A」所做的那樣。減輕測試負擔的另一種方法是將您的客戶體驗設計爲僅允許有效值。在整數情況下,執行此操作的一種方法是使用僅具有1和100之間整數值的組合框。
對於#2,場景確實有所改變。 L是1,U是100,但e現在是1,因爲唯一有效的值是整數值。如果您想測試小數值是否會引發錯誤,那麼這是一種不同類型的情況,並且與邊界無關。所以「50.5」和「A」對於錯誤條件就足夠了。或者如果你想小數點,你也可以測試。
邊界測試(或有時稱爲邊界值分析)的危險在於我們傾向於將重點放在清晰明顯的邊界上。但是可以有許多未知數,並且難以預測邊界。如果我們在清晰明顯的界限中信任太多,那麼我們有可能在隱藏的邊界附近失敗。因此,雖然重點關注已知邊界很重要,但以不同的時間間隔嘗試一系列測試並不會造成任何損害。
所以我會說你的一套測試可能會有點亮。
如果您有: 「0」,「1」,「50」,「100」,「101」,「0.9」,「100。1「,」A「
我會更傾向於在兩者之間增加一些: 」0「,」1「,」10「,」20「,」30「,」40「,」50「 ,「60」,「70」,「80」,「90」,「100」,「101」,「0.9」,「100.1」,「A」
您可能還想考慮添加一些極端情況如果這些測試是自動化的,並且向輸入數據添加更多的數據點,則很少有時間可用在測試運行中,他們的成本非常低,但如果這些測試是手動的,那麼你可以決定減少測試集,但不要只是不拘泥於邊界...
- 1. 編寫junit測試的良好做法
- 2. 良好的自動化系統測試框架爲Android手機
- 3. iPhone應用程序用戶界面測試的良好框架?
- 4. ASP.NET MVC的良好A/B測試框架
- 5. 什麼是良好的測試環境中測試的JQuery
- 6. OCUnit/XCode單元測試的良好測試運行器
- 7. 運行良好,但軌測試包的exec耙測試失敗
- 8. ABAP單元測試類 - 良好參考
- 9. 良好質量保證/測試播客
- 10. 吸引「良好」Beta測試用戶
- 11. 軟件應用程序的良好迴歸測試框架是什麼?
- 12. 任何具有分佈式環境支持的良好測試框架?
- 13. 邊緣檢測 - 檢測不良
- 14. JMeter:什麼是負載測試REST API的良好測試結構?
- 15. 基於python單元測試的良好自動化測試工具
- 16. 什麼是測試和測試驅動開發的良好在線介紹?
- 17. 良好的系統測試報告的例子?
- 18. rspec-rails的良好文檔請求規格(或集成測試)
- 19. arquillian-drone-graphene功能測試的良好配置是什麼?
- 20. 使用EasyMock進行單元測試的良好實施
- 21. 具有良好質量測試的開源項目
- 22. 什麼是測試字段的良好代碼結構?
- 23. FlashDevelop中良好的單元測試選項
- 24. 任何良好的開源Web服務測試工具?
- 25. 什麼是RSpec良好的自動化測試平臺?
- 26. 具有良好單元測試的嵌入式系統代碼?
- 27. 測試運行良好,在Eclipse中,但在Maven的
- 28. 什麼使功能需求的測試程序良好?
- 29. 如何執行良好的性能比較測試?
- 30. 好的Java EE測試框架?