上星期我们简单地了解了黑盒测试。而在黑盒测试中一个常用的测试方法就是等价类划分。所谓等价类划分即是我们按照一定的划分原则,将输入域划分为有效等价类和无效等类。
常用的等价类划分原则:
- 按区间划分
- 按数值划分
- 按数值集合划分
- 按限制条件或规则划分
- 细分等价类
按照限制条件或者规则划分等价类举例:
题目:文本框的非法输入测试: 允许1到6个英文字符或数字,按OK结束。
有效等价类 | 无效等价类 | |
长度 | 1-6 | 0,7, … |
字符 | A-Z,a-z,0-9 | 英文/数字以外字符,控制字符,标点符号 |
测试用例:
编号 | 输入 | 预期输出 | 实际输出 |
Test1 | 请输入您的名字 | 请输入您的名字 | |
Test2 | 09azAZ5 | 输入字符长度应小于6 | 输入字符长度应小于6 |
Test3 | 0aA,./ | 请输入合法字符 | 请输入合法字符 |
Test4 | 09AZaz | OK! | OK! |
注:Test1的输入为空。
测试结果:
经过测试,程序尚未发现漏洞。
代码如下:
1 import javafx.application.Application; 2 import javafx.event.EventHandler; 3 import javafx.geometry.Pos; 4 import javafx.scene.Scene; 5 import javafx.scene.control.Button; 6 import javafx.scene.control.Label; 7 import javafx.scene.control.TextField; 8 import javafx.scene.input.MouseEvent; 9 import javafx.scene.layout.AnchorPane; 10 import javafx.scene.layout.HBox; 11 import javafx.scene.text.Text; 12 import javafx.stage.Stage; 13 14 public class test1 extends Application{ 15 public static void main(String[ ] args) { 16 test1.launch(args); 17 } 18 public void start(Stage primaryStage) { 19 primaryStage.setTitle("UserForm1"); 20 AnchorPane root = new AnchorPane(); 21 HBox hbox1 = new HBox(8); 22 final TextField textfield = new TextField(); 23 textfield.setPrefColumnCount(25); 24 textfield.setPrefWidth(180); 25 hbox1.setAlignment(Pos.CENTER_LEFT); 26 hbox1.getChildren().addAll(new Label("Name"),textfield); 27 HBox hbox2 = new HBox(20); 28 Button btn = new Button(); 29 btn.setText("OK"); 30 final Text text = new Text(); 31 btn.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandler<MouseEvent>(){ 32 public void handle(MouseEvent event){ 33 String textString = textfield.getText().toString(); 34 char[] textChar = textString.toCharArray(); 35 System.out.println(textString); 36 if(textString==null||textString.length()<=0) 37 text.setText("请输入您的名字"); 38 else if(textString.length()>6) 39 text.setText("输入字符长度应小于6"); 40 else{ 41 for(int i=0;i<textString.length();i++) 42 { 43 if((textChar[i]>=‘0‘&&textChar[i]<=‘9‘)|| 44 (textChar[i]>=‘a‘&&textChar[i]<=‘z‘)|| 45 (textChar[i]>=‘A‘&&textChar[i]<=‘Z‘)) 46 text.setText("OK!"); 47 else{ 48 text.setText("请输入合法字符"); 49 break; 50 } 51 } 52 } 53 } 54 }); 55 hbox2.getChildren().addAll(btn,text); 56 AnchorPane.setTopAnchor(hbox1, 40.0); 57 AnchorPane.setLeftAnchor(hbox1, 10.0); 58 AnchorPane.setTopAnchor(hbox2, 90.0); 59 AnchorPane.setLeftAnchor(hbox2, 70.0); 60 root.getChildren().addAll(hbox1,hbox2); 61 primaryStage.setScene(new Scene(root, 250, 150)); 62 primaryStage.show(); 63 } 64 } // end of program
时间: 2024-10-18 13:06:43