這篇文章簡單總結下我是如何設計接口測試用例的。
今天在幫同事review代碼的時候,發現他的代碼遺漏了一些場景的處理,就順便跟他多聊了些為對這個話題的看法。
在這里假設一個接口設計如下:
UserInfoDTO listUserInfoByUserIds(UserInfoQueryParam param);
其中UserInfoQueryParam的定義如下:
public class UserInfoQueryParam {
//省略序列化ID
List<Long> userIds;
//...省略其他字段
}
邊界值測試
這種方法,一般用于測試一個接口的健壯性;針對userIds這個屬性,我會構建如下測試用例:
- userIds=null
- userIds=EmptyList
- userIds的size等于批量接口的限定值
- userIds的size大于批量接口的限定值
- userIds中的元素有null的情況
- userIds中的元素全部為null的情況
- userIds中的元素有0(或負數)的情況
- userIds中的元素全部為0(或負數)的情況
組合條件測試
這種方法,一般用于測試不同情況下的業務處理邏輯是否符合預期。在這個例子中,userIds可能有兩種類型,但是我們這個接口需要支持這兩種類型,因此測試用例設計如下:
- userIds中為純粹的類型1的數據
- userIds中為純粹的類型2的數據
- userIds中為類型1和類型2中的數據的混合情況
以上就是我在構建一個接口的測試用例時候思路,歡迎大家討論。
本號專注于后端技術、JVM問題排查和優化、Java面試題、個人成長和自我管理等主題,為讀者提供一線開發者的工作和成長經驗,期待你能在這里有所收獲。
javaadu