博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3 白盒测试与控制流覆盖原则
阅读量:4696 次
发布时间:2019-06-09

本文共 3165 字,大约阅读时间需要 10 分钟。

白盒测试的定义与分类

 

白盒测试:又称结构测试,它一般用来测试程序的内部结构(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

转载于:https://www.cnblogs.com/yushaoyan/p/4370216.html

你可能感兴趣的文章
what's the python之面向对象
查看>>
一些命令行操作时候可以使用的快捷键
查看>>
mysql 安装完以后没有mysql服务
查看>>
用模重复平方法求b^n mod m
查看>>
使用tableExport.js直接导出web页面上的table
查看>>
树链剖分
查看>>
ExecutorService执行器服务介绍
查看>>
EF实体框架之CodeFirst六
查看>>
System.out.println与System.err.println的区别
查看>>
eval(PHP 4, PHP 5)
查看>>
readelf用法小记
查看>>
结对编程进展总结
查看>>
Java中JavaScript unescape与escape函数算法
查看>>
js的基础要点
查看>>
第一篇
查看>>
C#结构体和类的区别
查看>>
模板 - 数论函数
查看>>
PAT Advanced Level 1038
查看>>
Apache调优
查看>>
UITextField只允许输入正数
查看>>