????? 當(dāng)輸入?yún)?shù)是兩個時嚷缭,用例是多少個?從上一篇文章的結(jié)論耍贾,應(yīng)該是13*13阅爽,即169個。但在真正的測試用例編寫中荐开,我們會使用如此多的用例去驗(yàn)證嗎付翁?答案肯定是否定的。從時間成本和人力資源成本上來說晃听,這也是不現(xiàn)實(shí)的百侧。在測試兩個輸入?yún)?shù)的場景里,兩個參數(shù)都會有相應(yīng)的參數(shù)限制能扒,如參數(shù)類型限制和長度限制佣渴。在做測試用例設(shè)計時绷耍,可以使用等價類法处渣。
?????? 舉個最簡單的網(wǎng)站登錄的例子间狂,假定登陸的參數(shù)只有兩個脐区,用戶名和密碼,在輸入正確的用戶名和密碼后抑党,登陸成功么介;輸入錯誤的用戶名或者密碼后谭跨,登陸失敗鹃答。這里在不考慮各種瀏覽器登錄乎澄、多個終端登錄等場景的情況下,只考慮這兩個參數(shù)輸入测摔,來設(shè)計相應(yīng)的用例置济。
?????? 等價類法:
?????? 1 輸入正確的用戶名和密碼,登陸成功
?????? 2 輸入錯誤的用戶名和密碼,登陸失敗
?????? 這兩類里舟肉,對于第一類修噪,只要考慮一組數(shù)據(jù)查库,即選一個存在的用戶名和密碼路媚;
?????? 對于第二類,考慮情況有:
?????? 1)輸入存在的用戶名樊销,密碼是空
?????? 2)輸入存在的用戶名整慎,密碼是空格
?????? 3)輸入存在的用戶名,密碼錯誤
?????? 4)輸入不存在的用戶名围苫,密碼是空
?????? 5)輸入不存在的用戶名裤园,密碼是空格
?????? 6)輸入不存在的用戶名,密碼非空格或空
?????? 7)輸入用戶名是空剂府,密碼是空
?????? 8)輸入用戶名是空拧揽,密碼是空格
?????? 9)輸入用戶名是空格,密碼非空格或空
????? 以上9種場景腺占,即9組數(shù)據(jù)淤袜,不存在可以覆蓋多個場景的數(shù)據(jù)。最后7和8兩個場景衰伯,可以取一個場景作為測試點(diǎn)铡羡,另一個可以忽略。因?yàn)橐话愦a路徑是先檢查兩個輸入框是否都已輸入值意鲸,這個檢查順序一般是先檢查第一個烦周,再檢查第二個。所以如果用戶名是空怎顾,不論密碼是否輸入读慎,均會報請輸入用戶名。
????? 以上10個情況槐雾,僅僅只針對輸入框在功能設(shè)定情況下的用例夭委。因?yàn)檫@篇的主題是針對兩個輸入框,如何設(shè)計測試用例蚜退。所以對于登陸功能用例設(shè)計并沒有展開闰靴。當(dāng)然登陸功能的用例設(shè)計不僅僅是以上10種,還需要考慮不同終端登錄钻注,不同瀏覽器登錄蚂且,關(guān)掉瀏覽器再打開,退出再登陸等等功能用例幅恋,以及sql注入杏死、登陸請求消息被截取串改等安全測試用例,當(dāng)然還會包括登陸并發(fā)的性能測試用例。在這篇不做展開描述淑翼。
?????? 那么通過這個例子腐巢,當(dāng)有兩個輸入框時,用例如何設(shè)計玄括?首先明確兩個輸入框的數(shù)據(jù)類型和長度冯丙,再明確兩個輸入框之間是否有關(guān)聯(lián),再明確代碼路徑是怎樣(看懂代碼對測試很有幫助)遭京。最后選擇等價類法設(shè)計測試用例胃惜,如果有邊界值的情況,則還要選擇邊界值法哪雕。如果有功能邏輯船殉,則還要使用因果圖法。這些測試用例設(shè)計方法都是用例設(shè)計的理論基礎(chǔ)斯嚎。需要訓(xùn)練自己有意識地使用這些方法利虫。實(shí)踐久了,邏輯思維能力和思考能力會不斷提高堡僻。