標籤:
1.題目要求
2.實現方法
我用了html+servlet的方法。html給出前端的UserForm1,servlet在幕後處理輸入並返回判斷的結果。
以下是項目的結構及前端的樣子(結尾處會貼上重要代碼)
3.等價類別的劃分、測試案例及實驗結果
有效等價類別 無效等價類別
長度1~6 輸入為空白
字元:a~z,A~Z,0~9 輸入長度大於6
含有特殊字元
由上,則測試案例為:1.ab53c
2.空輸入
3.1234avbs
4.%250a
5.小白哥
測試過程及測試結果如:
1.ab53c
2.空輸入
3.1234avbs
4.%250a
5.小白哥
4.結果分析
等價類別,有效等價類別,無效等價類別的劃分確實可以讓測試過程變得簡單,有效,今後在測試的過程中要學以致用。
5.關鍵代碼
PrintWriter out = response.getWriter(); String name = request.getParameter("username"); if(name.length() > 6){ out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<html>"); out.println("<head>"); out.println("<title>無效</title>"); out.println("</head>"); out.println("<body>"); out.println("<h2> <a href=\"/UserForm/index.jsp\">輸入長度不能大於6</a></h2>"); out.println("</body>"); out.println("</html>"); out.flush(); }else{ boolean ok = true; for(int i = 0;i < name.length();i++){ if(Character.getNumericValue(name.charAt(i)) < 0){//判斷是否輸入為中文 ok=false;break; } if(!Character.isLetterOrDigit(name.charAt(i))){ ok=false;break; } }if(ok){ out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<html>"); out.println("<head>"); out.println("<title>有效</title>"); out.println("</head>"); out.println("<body>"); out.println("<h2> <a href=\"/UserForm/index.jsp\">恭喜你輸入了有效名字</a></h2>"); out.println("</body>"); out.println("</html>"); out.flush(); }else{ out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">"); out.println("<html>"); out.println("<head>"); out.println("<title>無效</title>"); out.println("</head>"); out.println("<body>"); out.println("<h2> <a href=\"/UserForm/index.jsp\">不能包括非英文字元和非數字</a></h2>"); out.println("</body>"); out.println("</html>"); out.flush(); } }
6.寫在後面
因為c1,c2不能同時發生,要考慮的情況剩了24種,當c1,c2均為0時,因果
圖邏輯是OK的,c1,c2有一個唯一時,按一種飲料的按鈕沒問題,按2個或3
個按鈕行不行我覺得看程式怎麼寫了,如果程式的邏輯是按可樂,雪碧,紅茶
來依次判斷按鈕是否被點擊,相互又是或的關係,這樣飲料機只需給出判斷到
的第一種飲料即可。
軟體測試------UserForm1的測試案例