问题提出:
设计缺陷记录日志是为帮助收集缺陷数据。尽可能性详细地描述每个缺陷,以便以后仍可理解它。完成每个程序后,分析有关数据,看一看程序哪些地方引入和排除了缺陷,是哪种缺陷导致主要的问题。请实例说明如何完成缺陷记录日志?
问题解答:
表12.4 缺陷记录日志示例
学生 学生Y
日期 10/28/96
教员 先生Z
程序号 10
日期 |
编号 |
类型 |
引入阶段 |
排除阶段 |
修复时间 |
修复缺陷 |
10/28 |
1 |
20 |
编码 |
编译 |
1min |
|
描述:漏掉了分号“:” |
|
2 |
20 |
编码 |
编译 |
1min |
|
描述:漏掉了分号“:” |
|
3 |
40 |
设计 |
编译 |
1min |
|
描述:二元操作变量Rhs有类型错误,必须将整型转换为浮点型 |
|
4 |
40 |
编码 |
编译 |
1min |
|
描述:二元操作变量Rhs有类型错误,常数应为0.0,而不是0 |
|
5 |
40 |
编码 |
编译 |
1min |
|
描述:二元操作变量Rhs有类型错误,必须将整型转换为浮点型 |
|
6 |
40 |
设计 |
编译 |
7min |
|
描述:指数必须为整数。使用数学库计算Sqrt。整数计算不正确 |
|
7 |
80 |
编码 |
测试 |
14min |
|
描述:答案布正确(std.dev.) |
|
8 |
80 |
编码 |
测试 |
28min |
|
描述:对负指数的循环没有终止,忘记减小循环变量 |
如表12.4:
- 当开始开发一个程序时,找几张缺陷记录日志表,在第一页的表头登入所需要的内容;登满第一张后,按同样的方式使用第二张表格。
- 当遇到第一个缺陷时,在日志上记下它的编号,直到修复了这个缺陷时,再填写其它的数据。当学生X第一次编译程序10时,编译器显示了12个以上的出错信息。尽管最初不知道时什么问题,但知道至少有一个错误。这样记下时间,并在缺陷日志的第一行编号下登入1,这是程序10的第一个缺陷。这些编号有助于以后分析缺陷数据。
- 每个缺陷单独占一行。不要把几个相同的缺陷放在同一行上。
- 记下发现缺陷的日期。在表12.4中,学生X所有的错误都是在10月28日发现的,因此不必重复登入日期。空白的日期表示和前面的缺陷是在同一天发现的。
- 在修复缺陷后,登入缺陷类型。在表12.4中,学生X发现的缺陷1是丢掉一个分号。当解决了这个问题,应在缺陷1类型下登入20。
- 登入引入缺陷的过程阶段。此处,学生X确信是在程序编码时丢掉分号,所以在引入项下登上编码一词。
- 在排除缺陷后记录过程阶段。此例中,学生X是在编译阶段发现和修复缺陷,所以在排除项下登入编译一词。
- 对于缺陷修复时间,从开始意识到缺陷的存在时算起,直到修复完成且检查无误的估计时间。学生X开始修复缺陷1时记下时间,当解决问题并且确认修复完成时再看一下表,这样就知道化了1分钟。
- 修复缺陷项说明是由于修复其它缺陷而引入的。
- 在描述部分对这个缺陷进行简短的描述。本题中,对于缺陷1,学生X简单记下“遗漏:”,对于表12.4中的大部分缺陷,给出更详细的说明,因为只是由自己使用,只要能提示你记起问题即可,不必过细。
总结:
为了预防缺陷了解错误的起因是很必要的,缺陷类型只描述产品中哪里不正确。 |