所谓等价类是指输入域的某个互不相交的子集合,所有等价类的并集便是整个输入域。目的在于测试用例的无冗余性。
划分等价类
(1)有效等价类:检验程序是否实现了规格说明预先规定的功能和性能。
(2)无效等价类:检查软件功能和性能的实现是否有不符合规格说明要求的地方。
常用的等价类划分原则有以下几种:
1、按区间划分。
2、按数值划分。
3、按数值集合划分。
4、按限制条件或规则划分。
5、细分等价类。
例:EditBox测试用例设计
允许输入1到6个英文字符或数字,按OK结束
考虑有效等价类:长度:1到6;字符:a-z,A-Z,0-9
考虑无效等价类:长度:0,7;字符:英文、数字以外字符,控制字符,标点符号等
有效等价类 | 无效等价类 |
l长度:1--6 | 长度<1 或者 长度>6 |
字符:a-z A-Z 0-9 | 英文、数字以外字符,控制字符,标点符号等 |
测试用例:
编号 | 输入 | 预期输出 | 实际输出 |
Test1 | 请输入您的名字 | 请输入您的名字 | |
Test2 | 09azAZ5 | 输入字符长度应小于6 | 输入字符长度应小于6 |
Test3 | 0aA,./ | 请输入合法字符 | 请输入合法字符 |
Test4 | 09AZaz | OK! | OK! |
代码如下:
import javafx.application.Application; import javafx.event.EventHandler; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.input.MouseEvent; import javafx.scene.layout.AnchorPane; import javafx.scene.layout.HBox; import javafx.scene.text.Text; import javafx.stage.Stage; public class test1 extends Application{ public static void main(String[ ] args) { test1.launch(args); } public void start(Stage primaryStage) { primaryStage.setTitle("UserForm1"); AnchorPane root = new AnchorPane();
HBox hbox1 = new HBox(8);
final TextField textfield = new TextField();
textfield.setPrefColumnCount(25);
textfield.setPrefWidth(180);
hbox1.setAlignment(Pos.CENTER_LEFT);
hbox1.getChildren().addAll(new Label("Name"),textfield);
HBox hbox2 = new HBox(20);
Button btn = new Button();
btn.setText("OK");
final Text text =new Text();
btn.addEventHandler(MouseEvent.MOUSE_CLICKED, new EventHandlerMouseEvent(){
publicvoid handle(MouseEvent event){
String textString = textfield.getText().toString();
char[] textChar = textString.toCharArray();
System.out.println(textString);
if(textString==null||textString.length()=0)
text.setText("请输入您的名字");
elseif(textString.length()6)
text.setText("输入字符长度应小于6");
else{
for(int i=0;itextString.length();i++)
{
if((textChar[i]='0'textChar[i]='9')|| (textChar[i]='a'textChar[i]='z')|| (textChar[i]='A'textChar[i]='Z'))
text.setText("OK!");
else{
text.setText("请输入合法字符");
break;
}
}
}
}
});
hbox2.getChildren().addAll(btn,text);
AnchorPane.setTopAnchor(hbox1, 40.0);
AnchorPane.setLeftAnchor(hbox1, 10.0);
AnchorPane.setTopAnchor(hbox2, 90.0);
AnchorPane.setLeftAnchor(hbox2, 70.0);
root.getChildren().addAll(hbox1,hbox2);
primaryStage.setScene(new Scene(root, 250, 150));
primaryStage.show();
}
}