1 package ppackage; 2 import java.util.Random; 3 import java.util.Scanner; 4 import java.util.regex.Pattern; 5 6 7 public class Colc { 8 public int sighfh,fuhaosl; 9 public float sighsz1,sighsz2,answer2,sum2=0,sum3=0; 10 public float []sighsz=new float[30]; 11 public String []fuhaoq={"+","-","*","/"}; 12 public String []fuhao=new String[30]; 13 public String fuhao2,answer1,s; 14 public String []zhengshi=new String[200]; 15 public String []first=new String[100]; 16 public String []second=new String[100]; 17 public String []three=new String[100]; 18 public String temp1="null"; 19 public int i=0,jia=0,jian=0,q=0,x=0,chen=0,chu=0,temp2,j=0,c,op=0; 20 public static float sum=0; 21 22 String Colc(String x) 23 { 24 String[]xx=new String[200]; 25 for(c=0;c<10;c++) 26 xx[c]=""; 27 c=0; 28 for(int x1=0;x1<Integer.parseInt(x);x1++) 29 { 30 Random z=new Random(); 31 sighsz1=z.nextFloat()*10; 32 33 int k=0; 34 sighsz1=(float)(Math.round(sighsz1*100))/100; 35 36 zhengshi[k]=String.valueOf(sighsz1); 37 38 fuhaosl=z.nextInt(3)+1; 39 40 41 for(i=1;i<=fuhaosl;i++) 42 { 43 sighfh=z.nextInt(4); 44 45 switch(sighfh) 46 { 47 case 0:zhengshi[k]+="\t+\t";sighsz[k]=z.nextFloat()*100;sighsz[k]=(float)(Math.round(sighsz[k]*100))/100; 48 zhengshi[k]+=String.valueOf(sighsz[k]); 49 50 jia++; 51 52 break; 53 case 1:zhengshi[k]+="\t-\t"; 54 sighsz[k]=z.nextFloat()*100;sighsz[k]=(float)(Math.round(sighsz[k]*100))/100; 55 zhengshi[k]+=String.valueOf(sighsz[k]); 56 57 jian++; 58 break; 59 case 2:zhengshi[k]+="\t*\t"; 60 sighsz[k]=z.nextFloat()*100;sighsz[k]=(float)(Math.round(sighsz[k]*100))/100; 61 zhengshi[k]+=String.valueOf(sighsz[k]); 62 63 chen++; 64 break; 65 case 3:zhengshi[k]+="\t/\t"; 66 sighsz[k]=z.nextFloat()*100;sighsz[k]=(float)(Math.round(sighsz[k]*100))/100; 67 zhengshi[k]+=String.valueOf(sighsz[k]); 68 69 chu++; 70 break; 71 72 } 73 74 } 75 zhengshi[k]+="\t=\t"; 76 77 String temp=""; 78 79 80 System.out.printf("%s",zhengshi[k]); 81 String []first=new String[200]; 82 String []second=new String[200]; 83 84 String[] zhengshi1=new String[200]; 85 int q=0,i1=0,i2=0,j=0; 86 i=0; 87 88 temp = zhengshi[k]; 89 90 zhengshi1= temp.trim().split("\t"); 91 while(op<=fuhaosl*2+1) 92 { 93 xx[c]+=zhengshi1[op]; 94 95 op++; 96 } 97 98 int y=0; 99 while(zhengshi1[y]==null) 100 { 101 if(zhengshi1[y].equals("/")) 102 { 103 while(Float.parseFloat(zhengshi1[y+1])/1==0) 104 { 105 zhengshi1[y+1]=String.valueOf((float)(Math.round(sighsz1*100))/100); 106 } 107 } 108 y++; 109 } 110 111 i=0;j=0;k=0; 112 while(zhengshi1[i].equals("=")==false ) 113 { 114 115 116 try 117 { 118 if(Float.parseFloat(zhengshi1[i])>=0 && Float.parseFloat(zhengshi1[i])<=100) 119 { 120 first[j]=zhengshi1[i]; 121 j++;i++; 122 } 123 } 124 catch(NumberFormatException E) 125 { 126 if(second[0]==null) 127 { 128 second[k]=zhengshi1[i]; 129 130 k++;i++; 131 } 132 else 133 { 134 135 if(compare(second[k-1],zhengshi1[i],first)) 136 { 137 138 if(first[k].equals(null)) 139 { 140 second[k]=zhengshi1[i]; 141 k++;i++; 142 } 143 else 144 { 145 if(second[k-1].equals("+")) 146 { 147 sum=Float.parseFloat(first[k-1])+Float.parseFloat(first[k]); 148 149 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 150 151 j--;i++; 152 } 153 else if(second[k-1].equals("-")) 154 { 155 sum=Float.parseFloat(first[k-1])-Float.parseFloat(first[k]); 156 157 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 158 159 j--;i++; 160 } 161 else if(second[k-1].equals("*")) 162 { 163 sum=Float.parseFloat(first[k-1])*Float.parseFloat(first[k]); 164 165 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 166 167 j--;i++; 168 } 169 else if(second[k-1].equals("/")) 170 { 171 sum=Float.parseFloat(first[k-1])/Float.parseFloat(first[k]); 172 173 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 174 175 j--;i++; 176 } 177 178 } 179 } 180 181 182 else 183 { 184 185 second[k]=zhengshi1[i]; 186 187 188 i++;k++; 189 190 } 191 192 } 193 } 194 195 196 197 198 } 199 200 201 202 while(second[0]!=null) 203 { 204 205 if(second[k-1].equals("+")) 206 { 207 sum=Float.parseFloat(first[k-1])+Float.parseFloat(first[k]); 208 209 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 210 j--;k=k-1;i++; 211 212 } 213 else if(second[k-1].equals("-")) 214 { 215 sum=Float.parseFloat(first[k-1])-Float.parseFloat(first[k]); 216 217 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 218 j--;k=k-1;i++; 219 220 221 } 222 else if(second[k-1].equals("*")) 223 { 224 sum=Float.parseFloat(first[k-1])*Float.parseFloat(first[k]); 225 226 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 227 j--;k=k-1;i++; 228 229 230 } 231 else if(second[k-1].equals("/")) 232 { 233 sum=Float.parseFloat(first[k-1])/Float.parseFloat(first[k]); 234 235 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 236 j--;k=k-1;i++; 237 238 } 239 240 } 241 sum=(float)(Math.round(sum*100))/100; 242 System.out.print("\n答案為:"+sum+"\t\n"); 243 c++; 244 xx[c]=String.valueOf(sum);c++;op=0; 245 } 246 int qw=0; 247 return String.valueOf(sum); 248 249 250 251 } 252 boolean compare(String x1,String x2,String x3[]) //true 出棧,flase 進棧 253 { 254 int i,j,k; 255 if(x2.equals("+") || x2.equals("-")) 256 return true; 257 else 258 { 259 if(x1.equals("*") || x1.equals("/")) 260 { 261 return true; 262 } 263 else 264 { 265 return false; 266 } 267 } 268 } 269 static String certain(String ts) 270 { 271 Pattern pattern = Pattern.compile("[0-9]*"); 272 String ts1=ts; 273 if(pattern.matcher(ts1).matches()) 274 { 275 return "true"; 276 } 277 else 278 { 279 System.out.print("輸入的數值有誤\n請重新輸入:"); 280 return "false"; 281 } 282 283 } 284 public static void main(String[]args) 285 { 286 Scanner in =new Scanner(System.in); 287 String panding; 288 String numm; 289 System.out.print("請輸入題目數量:"); 290 do 291 { 292 numm=in.next(); 293 panding=certain(numm); 294 }while(panding.equals("false")); 295 for(int oo=1;oo<=Integer.parseInt(numm);oo++) 296 { 297 Colc aa=new Colc(); 298 String sum2=aa.Colc("1"); 299 System.out.print("輸入答案:"); 300 String an=in.next(); 301 if(an.equals(sum2)) 302 { 303 System.out.print("√\n"); 304 } 305 else 306 { 307 System.out.print("×\n"); 308 } 309 } 310 311 } 312 }
1 package ppackage; 2 3 public class Calcute { 4 public int sighfh,fuhaosl; 5 public float sighsz1,sighsz2,answer2,sum2=0,sum3=0; 6 public float []sighsz=new float[30]; 7 public String []fuhaoq={"+","-","*","/"}; 8 public String []fuhao=new String[30]; 9 public String fuhao2,answer1,s; 10 public String []zhengshi=new String[200]; 11 public String []first=new String[100]; 12 public String []second=new String[100]; 13 public String []three=new String[100]; 14 public String temp1="null"; 15 public int i=0,jia=0,jian=0,q=0,x=0,chen=0,chu=0,temp2,j=0,c,op=0,k=0; 16 public float sum=0; 17 float Calcute(char oop,String []data) 18 { 19 String[]xx=new String[200]; 20 for(c=0;c<10;c++) 21 xx[c]=""; 22 if(data[1].equals("0")) throw new ArithmeticException(); 23 zhengshi[k]=data[0]+"\t"+oop+"\t"+data[1]; 24 zhengshi[k]+="\t=\t"; 25 String temp=""; 26 System.out.printf("%s",zhengshi[k]); 27 String []first=new String[200]; 28 String []second=new String[200]; 29 30 String[] zhengshi1=new String[200]; 31 int q=0,i1=0,i2=0,j=0; 32 i=0; 33 34 temp = zhengshi[k]; 35 zhengshi1= temp.trim().split("\t"); 36 while(op<=1+1) 37 { 38 xx[c]+=zhengshi1[op]; 39 op++; 40 } 41 42 int y=0; 43 while(zhengshi1[y]==null) 44 { 45 if(zhengshi1[y].equals("/")) 46 { 47 while(Float.parseFloat(zhengshi1[y+1])/1==0) 48 { 49 zhengshi1[y+1]=String.valueOf((float)(Math.round(sighsz1*100))/100); 50 } 51 } 52 y++; 53 } 54 55 i=0;j=0;k=0; 56 while(zhengshi1[i].equals("=")==false ) 57 { 58 try 59 { 60 if(Float.parseFloat(zhengshi1[i])>=0 && Float.parseFloat(zhengshi1[i])<=100) 61 { 62 first[j]=zhengshi1[i]; 63 j++;i++; 64 } 65 } 66 catch(NumberFormatException E) 67 { 68 if(second[0]==null) 69 { 70 second[k]=zhengshi1[i]; 71 k++;i++; 72 } 73 else 74 { 75 76 if(compare(second[k-1],zhengshi1[i],first)) 77 { 78 79 if(first[k].equals(null)) 80 { 81 second[k]=zhengshi1[i]; 82 k++;i++; 83 } 84 else 85 { 86 if(second[k-1].equals("+")) 87 { 88 sum=Float.parseFloat(first[k-1])+Float.parseFloat(first[k]); 89 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 90 j--;i++; 91 } 92 else if(second[k-1].equals("-")) 93 { 94 sum=Float.parseFloat(first[k-1])-Float.parseFloat(first[k]); 95 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 96 //System.out.print("\n答案暫時是:"+sum+"\n"); 97 j--;i++; 98 } 99 else if(second[k-1].equals("*")) 100 { 101 sum=Float.parseFloat(first[k-1])*Float.parseFloat(first[k]); 102 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 103 //System.out.print("\n答案暫時是:"+sum+"\n"); 104 j--;i++; 105 } 106 else if(second[k-1].equals("/")) 107 { 108 sum=Float.parseFloat(first[k-1])/Float.parseFloat(first[k]); 109 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 110 j--;i++; 111 } 112 113 } 114 } 115 116 117 else 118 { 119 120 second[k]=zhengshi1[i]; 121 122 i++;k++; 123 124 } 125 126 } 127 } 128 129 130 131 132 } 133 134 while(second[0]!=null) 135 { 136 137 if(second[k-1].equals("+")) 138 { 139 sum=Float.parseFloat(first[k-1])+Float.parseFloat(first[k]); 140 141 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 142 j--;k=k-1;i++; 143 } 144 else if(second[k-1].equals("-")) 145 { 146 sum=Float.parseFloat(first[k-1])-Float.parseFloat(first[k]); 147 148 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 149 j--;k=k-1;i++; 150 151 152 } 153 else if(second[k-1].equals("*")) 154 { 155 sum=Float.parseFloat(first[k-1])*Float.parseFloat(first[k]); 156 157 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 158 j--;k=k-1;i++; 159 160 161 } 162 else if(second[k-1].equals("/")) 163 { 164 sum=Float.parseFloat(first[k-1])/Float.parseFloat(first[k]); 165 166 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 167 j--;k=k-1;i++; 168 169 } 170 171 } 172 sum=(float)(Math.round(sum*100))/100; 173 System.out.print("\n答案為:"+sum+"\t\n"); 174 c++; 175 xx[c]=String.valueOf(sum);c++;op=0; 176 return sum; 177 } 178 int qw=0; 179 180 181 182 boolean compare(String x1,String x2,String x3[]) //true 出棧,flase 進棧 183 { 184 int i,j,k; 185 if(x2.equals("+") || x2.equals("-")) 186 return true; 187 else 188 { 189 if(x1.equals("*") || x1.equals("/")) 190 { 191 return true; 192 } 193 else 194 { 195 return false; 196 } 197 } 198 } 199 200 public static void main(String[] args) { 201 202 char oop='/'; 203 String[]data={"8.2","2"}; 204 Calcute aa=new Calcute(); 205 aa.Calcute(oop, data); 206 } 207 208 }
1 package ppackage; 2 3 import static org.junit.Assert.*; 4 5 import org.junit.Test; 6 7 public class CalcuteTest { 8 9 @Test 10 public void testJia() { 11 String[]data={"10.0","5.5"}; 12 char oop='+'; 13 Calcute c=new Calcute(); 14 float answer=c.Calcute(oop, data); 15 System.out.println(answer); 16 assertEquals(15.5,answer,100); 17 } 18 @Test 19 public void testJian() { 20 String[]data={"10.0","5.0"}; 21 char oop='-'; 22 Calcute c=new Calcute(); 23 //c.Calcute(oop, data); 24 float answer=c.Calcute(oop, data); 25 System.out.println(answer); 26 assertEquals(5,answer,100); 27 } 28 @Test 29 public void testChen() { 30 String[]data={"10.0","5.0"}; 31 char oop='*'; 32 Calcute c=new Calcute(); 33 float answer=c.Calcute(oop, data); 34 System.out.println(answer); 35 assertEquals(50.00,answer,100); 36 } 37 @Test 38 public void testChu() { 39 String[]data={"10.0","5.0"}; 40 char oop='/'; 41 Calcute c=new Calcute(); 42 float answer=c.Calcute(oop, data); 43 System.out.println(answer); 44 assertEquals(2,answer,100); 45 } 46 @Test(expected = ArithmeticException.class) 47 public void testException() { 48 String[]data={"10.0","0"}; 49 char oop='/'; 50 Calcute c=new Calcute(); 51 float answer=c.Calcute(oop, data); 52 } 53 54 }
1 package Exception1; 2 3 4 public class Calcute { 5 public int sighfh,fuhaosl; 6 public float sighsz1,sighsz2,answer2,sum2=0,sum3=0; 7 public float []sighsz=new float[30]; 8 public String []fuhaoq={"+","-","*","/"}; 9 public String []fuhao=new String[30]; 10 public String fuhao2,answer1,s; 11 public String []zhengshi=new String[200]; 12 public String []first=new String[100]; 13 public String []second=new String[100]; 14 public String []three=new String[100]; 15 public String temp1="null"; 16 public int i=0,jia=0,jian=0,q=0,x=0,chen=0,chu=0,temp2,j=0,c,op=0,k=0; 17 public float sum=0; 18 float Calcute(char oop,String []data) throws clException,fsException 19 { 20 char opo=oop; 21 if(Float.parseFloat(data[0])<0) 22 { 23 throw new fsException("您輸入的是"+data[0]+",規定除數不能為負數!");//丟擲異常 24 } 25 else if(Float.parseFloat(data[1])<0) 26 { 27 throw new fsException("您輸入的是"+data[1]+",規定除數不能為負數!");//丟擲異常 28 } 29 if(opo=='/') 30 { 31 if(Float.parseFloat(data[1])==0 ) 32 { 33 throw new clException("您輸入的是"+data[1]+",除數不能為0!"); 34 } 35 } 36 if(opo!='+' && opo!='-' && opo!='*' && opo!='/' ) 37 { 38 throw new clException("您輸入的是"+opo+",符號不能為非法字元!"); 39 } 40 String[]xx=new String[200]; 41 for(c=0;c<10;c++) 42 xx[c]=""; 43 if(data[1].equals("0")) throw new ArithmeticException(); 44 zhengshi[k]=data[0]+"\t"+oop+"\t"+data[1]; 45 zhengshi[k]+="\t=\t"; 46 String temp=""; 47 System.out.printf("%s",zhengshi[k]); 48 String []first=new String[200]; 49 String []second=new String[200]; 50 51 String[] zhengshi1=new String[200]; 52 int q=0,i1=0,i2=0,j=0; 53 i=0; 54 55 temp = zhengshi[k]; 56 zhengshi1= temp.trim().split("\t"); 57 while(op<=1+1) 58 { 59 xx[c]+=zhengshi1[op]; 60 op++; 61 } 62 63 int y=0; 64 while(zhengshi1[y]==null) 65 { 66 if(zhengshi1[y].equals("/")) 67 { 68 while(Float.parseFloat(zhengshi1[y+1])/1==0) 69 { 70 zhengshi1[y+1]=String.valueOf((float)(Math.round(sighsz1*100))/100); 71 } 72 } 73 y++; 74 } 75 76 i=0;j=0;k=0; 77 while(zhengshi1[i].equals("=")==false ) 78 { 79 try 80 { 81 if(Float.parseFloat(zhengshi1[i])>=0 && Float.parseFloat(zhengshi1[i])<=100) 82 { 83 first[j]=zhengshi1[i]; 84 j++;i++; 85 } 86 } 87 catch(NumberFormatException E) 88 { 89 if(second[0]==null) 90 { 91 second[k]=zhengshi1[i]; 92 k++;i++; 93 } 94 else 95 { 96 97 if(compare(second[k-1],zhengshi1[i],first)) 98 { 99 100 if(first[k].equals(null)) 101 { 102 second[k]=zhengshi1[i]; 103 k++;i++; 104 } 105 else 106 { 107 if(second[k-1].equals("+")) 108 { 109 sum=Float.parseFloat(first[k-1])+Float.parseFloat(first[k]); 110 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 111 j--;i++; 112 } 113 else if(second[k-1].equals("-")) 114 { 115 sum=Float.parseFloat(first[k-1])-Float.parseFloat(first[k]); 116 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 117 //System.out.print("\n答案暫時是:"+sum+"\n"); 118 j--;i++; 119 } 120 else if(second[k-1].equals("*")) 121 { 122 sum=Float.parseFloat(first[k-1])*Float.parseFloat(first[k]); 123 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 124 //System.out.print("\n答案暫時是:"+sum+"\n"); 125 j--;i++; 126 } 127 else if(second[k-1].equals("/")) 128 { 129 sum=Float.parseFloat(first[k-1])/Float.parseFloat(first[k]); 130 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=zhengshi1[i]; 131 j--;i++; 132 } 133 134 } 135 } 136 137 138 else 139 { 140 141 second[k]=zhengshi1[i]; 142 143 i++;k++; 144 145 } 146 147 } 148 } 149 150 151 152 153 } 154 155 while(second[0]!=null) 156 { 157 158 if(second[k-1].equals("+")) 159 { 160 sum=Float.parseFloat(first[k-1])+Float.parseFloat(first[k]); 161 162 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 163 j--;k=k-1;i++; 164 } 165 else if(second[k-1].equals("-")) 166 { 167 sum=Float.parseFloat(first[k-1])-Float.parseFloat(first[k]); 168 169 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 170 j--;k=k-1;i++; 171 172 173 } 174 else if(second[k-1].equals("*")) 175 { 176 sum=Float.parseFloat(first[k-1])*Float.parseFloat(first[k]); 177 178 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 179 j--;k=k-1;i++; 180 181 182 } 183 else if(second[k-1].equals("/")) 184 { 185 sum=Float.parseFloat(first[k-1])/Float.parseFloat(first[k]); 186 187 first[k-1]=String.valueOf(sum);first[k]=null;second[k-1]=null; 188 j--;k=k-1;i++; 189 190 } 191 192 } 193 sum=(float)(Math.round(sum*100))/100; 194 System.out.print("\n答案為:"+sum+"\t\n"); 195 c++; 196 xx[c]=String.valueOf(sum);c++;op=0; 197 return sum; 198 } 199 int qw=0; 200 201 202 203 boolean compare(String x1,String x2,String x3[]) //true 出棧,flase 進棧 204 { 205 int i,j,k; 206 if(x2.equals("+") || x2.equals("-")) 207 return true; 208 else 209 { 210 if(x1.equals("*") || x1.equals("/")) 211 { 212 return true; 213 } 214 else 215 { 216 return false; 217 } 218 } 219 } 220 221 public static void main(String[] args) { 222 223 char oop='/'; 224 String[]data={"8.2","2"}; 225 Calcute aa=new Calcute(); 226 try{ 227 aa.Calcute(oop, data); 228 } 229 catch(clException e) 230 { 231 System.out.println(e.getMessage()); 232 } 233 catch(fsException e) 234 { 235 System.out.println(e.getMessage()); 236 } 237 catch(NumberFormatException e) 238 { 239 System.out.println("您輸入的是"+data[0]+','+data[1]+",規定除數不能為非法字元!"); 240 } 241 } 242 243 }
1 package Exception1; 2 3 public class clException extends Exception{ 4 public clException(String mes) 5 { 6 super(mes); 7 } 8 }
1 package Exception1; 2 3 public class fsException extends Exception{ 4 public fsException(String mes) 5 { 6 super(mes); 7 } 8 }
1 package Exception1; 2 3 public class zfException extends Exception{ 4 public zfException(String mes) 5 { 6 super(mes); 7 } 8 }
以上3條程式程式碼分別是:
1、主程式;
2、計算功能模組程式;
3、單元測試程式;
-(1)黑盒子測試.這個測試主要就是以使用者角度測試程式碼的功能與用途:
測試用例 |
輸入條件 |
有效等價類 |
無效等價類 |
程式碼途徑 |
題目有效性判斷 |
只允許數字 |
10 |
A |
Line269-283 |
輸入字元的有效性判斷 |
(10,2,A) |
10,2 |
A |
|
題目數量 |
小於等於100 |
1-100 |
>100 |
|
引數型別 |
String[],char |
{“100”,”200”},+,/ |
‘100’,’100’ |
|
答案型別 |
匹配 |
正確√ |
錯誤× |
|
|
|
|
|
|
|
|
|
|
|
測試物件 |
測試說明 |
測試資料 |
測試結果 |
題目數量 |
輸入非法資料 |
Abc |
輸入不正確,請從新輸入: |
題目數量 |
輸入資料過大 |
101 |
丟擲異常,提示錯誤 |
加減乘除計算 |
輸入符號有誤 |
10++20 |
提示輸入有誤 |
加減乘除計算 |
輸入數值有誤 |
10a+20bd |
提示輸入有誤 |
計算範圍 |
精確度 |
12.0和12和12.00 |
正確 |
(2)白盒子測試。對軟體的過程性細節做細緻的檢查。
測試用例 |
用例說明 |
通過途徑 |
實際結果 |
加法處理 |
10.0+5.5 |
Line9-17 |
5.5 |
減法處理 |
10.0-5.5 |
Line18-27 |
4.5 |
乘法處理 |
10.0*5.0 |
Line28-37 |
50.0 |
除法處理 |
10.0/5.0 |
Line37-45 |
2.0 |
除零處理 |
10.0/0 |
Line46-52 |
丟擲異常 |
程式碼覆蓋率 |
100% |
100% |
100% |
|
|
|
|
(3)異常處理測試(自定義異常,非使用者自定義異常。
異常型別 | 用例說明 | 異常反饋 | |
clException(除零異常) | String[]data={"8.2","0"};||String[]data={"0","2"}; | 您輸入的是0,規定除數不能為0! | |
fsException(負數異常) | String[]data={"8.2","-1"};||String[]data={"-1","2"}; | 您輸入的是-1,規定除數不能為負數! | |
zfException(非法字元異常) | char oop='a'; | 您輸入的是a,符號不能為非法字元! | |
NumberFormatException(除數非法字元異常) | String[]data={"a","4"};||String[]data={"4","a"}; | 您輸入的是a,4,規定除數不能為非法字元! |
程式碼主要來源於測試類程式:由於截圖的螢幕的原因,無法全部截圖下來,請參考上面的摺疊程式碼
主要測試結果,及其分析截圖:
我們團隊的工作照片:
最後總結:
本次實驗總體而言,對於我本人來說,難度著實很大,因為是第一次接觸這一類測試(單元測試,黑白盒測試),一開始我們並不明白這一些測試到底什麼情況,做起來也非常棘手,一度讓我和我的小夥伴在進度上停止下來了,總體上我個人感覺對本次實驗,不是很滿意,自己還有需要需要改進的地方,還需要我和我的小夥伴多下點功夫才行。同時需要說明一點,由於本次實驗,老師說需要交換隊友,我們團隊一開始是嘗試過交換隊友的,但是在前期出現了許多的溝通障礙,因為彼此間對程式的理解程度存在障礙,所以後面我們決定本次實驗,我和我的小夥伴一直覺得,讓我和我上一位隊友一起帶著本次實驗新的小夥伴一起工作,初步先讓新的成員先熟悉程式碼。然後再逐步進行下面的工作。不管怎樣,經過本次實驗我們都發現了許多問題,還存在許多地方需要改進。所以我們團隊會繼續努力,力爭在接下來的實驗能完成的更好。
本次實驗,與我並肩作戰的小夥伴是:銘琪姐姐:http://www.cnblogs.com/mikky/