和一同事运行阶段、测试阶段引入缺陷的对话

  10:53 lanmier2001: hey,忙不,请教一个问题

  10:54 我: 什么问题你说

  lanmier2001: 软件在运行阶段能否引入缺陷?

  10:55 能举个例子说明不?

  10:57 我: 什么叫“ 软件在运行阶段”

  是不是这个意思:软件在运行阶段,会不会产生之前没有发生过的缺陷?

  如果是这个意思,那是可能的。

  lanmier2001: 不是

  10:58 是这样,根据软件的瀑布模型

  软件开发分成需求、设计、实现、测试、运行五个阶段

  10:59 每个阶段都应该会引入缺陷,每个阶段也都会发现缺吸纳

  别的阶段的缺陷引入是可以理解的。

  例如由需求引起的缺陷、由编码引起的缺陷等等

  11:00 我: 哦,明白了

  假设系统是在jdk1.4上编译并部署的。后来这台服务器环境(运行了其他系统),将jdk升级到1.5,那么之前在jdk1.4上运行的系统可能运行异常。

  lanmier2001: 但是对于由运行引起的缺陷不太好理解。

  我: 这种运行环境的变化,导致运行的系统产生缺陷,可不可以解释这种情况?

  11:01 lanmier2001: 对的。是这个意思。

  11:02 lanmier2001: OK,看来是我经验不够,总没有办法举例说明,也理解不清楚了。

  11:32 lanmier2001: 呵呵,对了,测试阶段引入的缺陷可不可以认为是测试阶段人员的误操作引入的缺陷?

  感觉说服力都不是太强。

  11:52 我: 好像不算

  想个例子

  13:14 我: 测试阶段引入的缺陷,这个例子不知道适合不?测试中,需要产生一些测试数据。例如,增加了一个员工信息记录,开始程序没有对某个字段做非空控制。后来程序修改,这个字段变成了非空要求。而且在修改时是不可改。那么对于之前的测试数据,在回归测试时,会出现一些异常。

  13:16 lanmier2001: 但是我理解这个例子还是像由编码引起的。

  我: 好像编码没错啊。

  如果有错,也是没有恢复测试环境数据

  13:17 lanmier2001: 这个可以认为是一个缺陷么?

  13:18 我感觉如果开发接收,会认为不是缺陷reject回来的。

  或者是不是由需求引入的。

  我: 如果测试人员没有发现问题原因,会提缺陷报告。

  我更认为,开发会回复是测试环境数据问题。

  13:19 lanmier2001: 对的。是测试环境数据问题,与系统无关,也应该不是缺陷。也能认为是测试引入的缺陷么?

  13:20 我: 我个人是认为这是缺陷,但是算不算测试引入的缺陷,勉强算吧。因为这个缺陷,可能开发不会完全接受

  13:22 lanmier2001: 这些概念我还有些混淆。

  我: 这个例子,我自己也不是很满意

  13:23 还要想个没有异议的,好一点的例子来说服自己。

  lanmier2001: 测试阶段引入的缺陷能不能理解成例如由于修改一个缺陷引起的另一个缺陷?

  13:24 我: 这种我觉得也算

  lanmier2001: 还是是由测试过程引起的缺陷?

  13:25 我: 由测试过程引起的缺陷??

  这不变成测试人员的责任了

  lanmier2001: 测试阶段引入的缺陷能不能理解成例如由于修改一个缺陷引起的另一个缺陷?

  还是这个解释好一些

  13:26 而且容易接受

  lanmier2001: 嗯。

  我也这样觉得。

  我: 那这么说来,什么是编码阶段引入的?

  呵呵

  是编码写的程序有错,本身是错的,设计、需求都是正确的

  13:27 lanmier2001: 对,这样好理解了。

  我: 天,如果这么分,感觉一般人,或者说普通人,分不好。而且划分这个,似乎也要不少时间。

  13:29 不过,如果大家遵守同一个约定,应该还是有一些度量分析意义的。先模糊一些,只要去做了,还是有进步。

  ……