结对编程2

一、问题描述:

    构造程序,分别是:

      •不能触发Fault。
      •触发Fault,但是不能触发Error。
      •触发Error,但是不能产生Failure。
 
二、结对说明:
      结对对象:叶银芳    博客地址:http://home.cnblogs.com/u/linuoxin/
      双方贡献:1:1
      编程照片:
      
三、源代码:
     采用语言:java
 
 1 package com.yyf;
 2  
 3 import java.util.Scanner;
 4  
 5 public class Software {
 6     public static final int COUNT = 3;
 7  
 8     public static void main(String[] args) {
 9         // TODO Auto-generated method stub
10  
11  
12             double result = 0, sum = 0;
13             int num;
14  
15             Scanner in = new Scanner(System.in);
16  
17             System.out.print("请问要求几个平均数:num=");
18             num = in.nextInt();
19             double array[] = null;
20             array = new double[num];
21             /*
22              * 输入数值
23              */
24             System.out.println("请输入具体数值:");
25             for (int i = 0; i < num; i++) {
26                 System.out.print("array[" + i + "]=");
27                 array[i] = in.nextDouble();
28  
29             }
30             if (array.length <= COUNT) {// 不触发fault
31                 System.out.print("计算过程:sum=" );
32                 for (int i = 0; i < array.length; i++) {
33                     sum += array[i];
34                     System.out.print(array[i]+"+");
35                 }
36                 result = sum / array.length;
37  
38             } else {// 有fault
39                 System.out.print("计算过程:sum=" );
40                 for (int i = 1; i < array.length; i++) {
41                      
42                     sum += array[i];
43                     System.out.print(array[i]+"+");
44                 }
45                 if(array[0]!=0){
46                     result=sum/(num-1);
47                 }else{
48                     result = sum / array.length;
49                 }
50             }
51             System.out.println("所求平均值为:" + result);
52             in.close();
53     }
54  
55 }

四、存在Fault代码:

 1                 System.out.print("计算过程:sum=" );
 2                 for (int i = 1; i < array.length; i++) {//说明:如果是用数组存储输入的数据,并求其平均值,应该是从说组下标0开始计算
 3                      
 4                     sum += array[i];
 5                     System.out.print(array[i]+"+");
 6                 }
 7                 if(array[0]!=0){
 8                     result=sum/(num-1);
 9                 }else{
10                     result = sum / array.length;
11                 }

五、测试用例:

    •1. 存在fault,但是不能触发Fault。

    

if (array.length <= COUNT) {// 不触发fault
                System.out.print("计算过程:sum=" );
                for (int i = 0; i < array.length; i++) {
                    sum += array[i];
                    System.out.print(array[i]+"+");
                }
                result = sum / array.length;
 

    •2.触发Fault,但是不能触发Error。

    

                System.out.print("计算过程:sum=" );
                for (int i = 1; i < array.length; i++) {
                    
                    sum += array[i];
                    System.out.print(array[i]+"+");
                }

    •3.触发Error,但是不能产生Failure。

    

六、总结: 

    这次结对项目是构造程序,通过程序的编写完成对error,fault,failure的认识,在写程序之初,我们对这几个概念进行了学习,然后设计了求平均数的题目,编写了以上程序,有了之前结对编程的经验,虽然这次换了一个结对对象,但进入状态还是要快一些,我的队友是一个很有耐心,思维活跃的人,在结对过程中,我们也有不同的看法,但很快在我们的分析讨论中也迎刃而解了。其实,我们这次的程序写得不是很完善,可能是因为我们对上面三个概念的理解也不是很深刻,了解很片面,在最后的结果分析中我们也认识到了这点,所以我们会在以后的编程练习中进一步学习这些知识。

    学习进度条:

点滴成就

学习时间

新编写代码行数

博客量(篇)

学到的知识点

第一周

2h

0

0

了解认识软件工程

第二周

2h

0

1

了解软件工程思想

第三周

2h

0

1

制作并进行问卷调查

第四周

4h

100

1

需求分析与结对编程

第五周

4h

240

0

Java的学习

第六周

3h

0

0

初步学习“软件测试”

第七周

4h

178

1

软件系统设计、结对编程

第八周

6h

55

1

软件测试、结对编程对fault、error、failure的认识

 

 
posted @ 2016-04-19 09:41  Cassie语思菲菲  阅读(147)  评论(0编辑  收藏  举报