zoukankan      html  css  js  c++  java
  • 对【判断闰年】函数的白盒测试

      最近学习了白盒测试。白盒测试的测试方法有很多种:代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖法、基本路径测试法、域测试、符号测试、路径覆盖和程序变异。白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。六种覆盖标准发现错误的能力呈由弱到强的变化:

    1.语句覆盖每条语句至少执行一次。
    2.判定覆盖每个判定的每个分支至少执行一次。
    3.条件覆盖每个判定的每个条件应取到各种可能的值。
    4.判定/条件覆盖同时满足判定覆盖条件覆盖。
    5.条件组合覆盖每个判定中各条件的每一种组合至少出现一次。
    6.路径覆盖使程序中每一条可能的路径至少执行一次。
     
    下面对月初的【判断闰年】的程序做白盒测试。
    需要测试的源代码:
     
    改良前的代码:

    void LeapYear(int year); 

    void main() { 

       int year=0; 

       LeapYear(year); 

    }

    void LeapYear(int year) { 

       cout<<"请输入年份:"<<endl; 

       cin>>year; 

       while(!(year>=1811 && year<=2013)) { 

               cout<<"年份超过界限,请重新输入"<<endl; 

               cin>>year; 

       }

       if((year%4==0 && year%100!=0) || (year%400==0)) { //检查闰年

               cout<<"闰年"<<endl;

       }

       else{

               cout<<"不是闰年"<<endl;

       }

    }

    测试用例:

    改良后的代码:

    public void handle(MouseEvent arg0) {
      boolean judge1 = true;
      boolean judge2 = true;
      String s = textfiled1.getText();
      if ((s.length() > 6) || (s.length() < 1))
      {
        text.setText(str2);
      return;
       for (int i = 0; i < s.length();i++)

      {
     char c = s.charAt(i);
     if (!((c >= 'A' && c <= 'Z')||(c >= 'a' && c <='z')||(c >= '0' && c <= '9')))
     {
     judge1 = false;
     break;
     }
      }
      
      if (!judge1)
      {
      text.setText(str2);
      return;
      }
      
      s = textfiled2.getText();
      if ((s.length() > 6) || (s.length() < 1))
      {
        text.setText(str2);
      return;
      }
      
      for (int i = 0; i < s.length();i++)
      {
     char c = s.charAt(i);
     if (!((c >= 'A' && c <= 'Z')||(c >= 'a' && c <='z')||(c >= '0' && c <= '9')))
     {
     judge2 = false;
     break;
     }
      }
      
      if (!judge2)
      {
      text.setText(str2);
      return;
      }
      
      s = textfiled3.getText();
      int i=Integer.parseInt(s);
      if (i != a)
      {
      text.setText(str2);
      }
      else
      {
      text.setText(str1);
      }
      
    }
    });*/

    测试用例:

     

  • 相关阅读:
    springboot 集成RabbitMQ
    服务接口API限流 Rate Limit 续
    服务接口API限流 Rate Limit
    聊下并发和Tomcat线程数
    java 线程池 异步任务
    Tomcat中更改网站根目录和默认页的配置方法
    QPS从0到4000请求每秒,谈达达后台架构演化之路
    分布式与集群是什么 ? 区别是什么?
    大型网站技术架构演变总结
    提升高并发量服务器性能解决思路
  • 原文地址:https://www.cnblogs.com/summer23/p/4439956.html
Copyright © 2011-2022 走看看