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);
      }
      
    }
    });*/

    测试用例:

     

  • 相关阅读:
    Encrypted Handshake Message
    RSAParameters Struct
    What if JWT is stolen?
    What's the difference between JWTs and Bearer Token?
    RSA Algorithm Example
    第18届Jolt大奖结果公布
    Ruby on rails开发从头来(windows)(三十六) 调试技巧
    Ruby on rails开发从头来(四十二) ActiveRecord基础(主键和ID)
    YouTube开放基础技术架构 让用户建自家YouTube
    Ruby on rails开发从头来(四十) ActiveRecord基础(Boolean属性)
  • 原文地址:https://www.cnblogs.com/summer23/p/4439956.html
Copyright © 2011-2022 走看看