白盒测试的定义与分类
白盒测试:又称结构测试,它一般用来测试程序的内部结构(Control Flow , Data Flow)。并判定其结果是否与预期的结果一致。
白盒测试的种类:静态分析测试(Static Analysis Test,Code Inspection)、语句分支覆盖测试(Ctrl Flow Test)等。
————引用自PPT
控制流覆盖原则
语句覆盖准则(Statement Coverage)
分支覆盖准则(Branch Coverage 或Decision Coverage)
谓词测试
原子谓词覆盖准则(也称 Condition Coverage)
分支-谓词覆盖准则(也称Branch Condition Coverage 或Decision Condition Coverage )
复合谓词覆盖准则(也称Multi Condition Coverage)
路径覆盖准则(Path Coverage)
以下为该次实验所用的代码
题目: EditBox 允许1到6个英文字符或数字,按OK结束 有效等价类: 长度:1到6 字符:a-z,A-Z,0-9 无效等价类 长度:0,7 字符:英文/数字以外字符,控制字符,标点符号
其中有3个EditBox,只有当每一个EditBox中的输入信息都符合规范的时候,输出台才会输出true,否则输出false。
package pro1; import java.awt.FlowLayout; import java.awt.Label; import java.awt.TextField; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; class Window extends JFrame { TextField text1,text2,text3; JButton jb; Window(String s) { super(s); this.setLayout(new FlowLayout()); Label label1=new Label(); Label label2=new Label(); Label label3=new Label(); label1.setText("Name1"); label2.setText("Name2"); label3.setText("Name3"); text1 = new TextField(10); text2 = new TextField(10); text3 = new TextField(10); jb =new JButton("ok"); jb.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String str1 =text1.getText().toString(); String str2 =text1.getText().toString(); String str3 =text1.getText().toString(); if(check(str1)&&check(str2)&&check(str3)) System.out.println("true"); else System.out.println("false"); } }); this.add(label1); this.add(text1); this.add(label2); this.add(text2); this.add(label3); this.add(text3); this.add(jb); this.setBounds(400, 200, 900, 200); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public boolean check(String str){ char num[] = str.toCharArray(); for (int i = 0; i < num.length; i++) { if (!(Character.isDigit(num[i]))&&!(Character.isAlphabetic(num[i]))) return false; } if((str.length()>6)||(str.length()==0)) return false; return true; } } public class test1 { public static void main(String args[]) { Window win = new Window("UserForm1"); } }
以下为截屏
根据分支覆盖准则进行白盒测试
分支覆盖原则定义
分支覆盖要求在软件测试中,每个分支都至少获得一次真/假取值的经历。 测试数据集T称为分支覆盖充分的,当且仅当LT覆盖了GP中的所有有向边。
——引用自PPT
以下为分支覆盖测试的用例
测试用例 | 输入信息 | textField1 | textField2 | textField3 | 输出信息 |
测试用例1 | 1#,1,,1, | false | true | true | false |
测试用例2 | 1,1#,1 | true | false | true | false |
测试用例3 | 1,1,1# | true | true | false | false |
测试用例4 | 1#,1#,1 | false | false | true | false |
测试用例5 | 1#,1,1# | false | true | false | false |
测试用例6 | 1,1#,1# | true | false | false | false |
测试用例7 | 1#,1#,1# | false | false | false | false |
测试用例8 | 1,1,1 | true | true | true | true |
T