严重程度优先级不一定低

  如果是软件名称或公司名称的拼写错误,虽然说其属于界面错误,严重程度不高,但其关系到软件和公司的市场开解,必须尽快修正。

  缺陷状态

  对于一个问题,其处理过程是一个周期,周期的不同阶段,其所处的状态也是不一样的。不同状态所对应的处理人也是不一样的。

  打开 : 表示问题被提交等待有人处理。

  重新指派 : 问题被重新指派给某人处理。

  处理 : 问题在处理中,尚未完成。

  固定 : 确认此问题存在,但暂时不进行处理。

  回归 : 对已经修复的问题进行回归确认。Reopened :

  关闭 : 问题的后一个状态。

  Bug处理流程

  下面通过一个比较完整的bug的处理流程图,更深刻的理解bug的状态以一个bug的生命周期。

  提交(打开)缺陷

  在提交一个缺陷的缺陷,首先尽量描述这个缺陷的属性。Bug重现环境,bug类型,bug等级,bug的优先级以及详细的重现步骤,结果与期望等。

  当然,我们在提交一个问题之前首先应该保证,这个缺陷是没有被提过的,以免造成重复缺陷单。

  如果是回归不通过的缺陷,其状态又会变为打开状态。

  分配(转交)缺陷

  这一步不是必须的,跟项目模式有关,有些公司测试部门与开发部门独立,那么测试人员不确定自己测试的模块是由哪位开发人员负责的,在这种情况下,测试人员统一把问题指派给项目组长或经理,由项目组长(或经理)对问题进行确认后再次分配给相应的开发人员。

  有些测试人员是穿插到不同研发团队中的,所以对不同的开人发员负责的开发模块非常清楚,这个时候可以将问题直接指派给相应的开发人员。

  也有一种情况,本来此问题应该由A开发人员负责,但由于A开发人员的调离或辞职,些问题为转交给其它人员处理。“分配”强调是上级对下级;“转交”强调的是平级之间。

  确认缺陷

  当开发人员接到一个缺陷时,首先是对其进行分析与重现,如果对其进行分析发现不是缺陷(可能由于测试人员不了解需求)或无法对此问题进行重现,那么需要将此问题反回给测试人员,并注明原因。如果确认为缺陷则需要对其进行处理。

  推迟处理

  在处理问题之后,还需要进行一次判断,是否需要推迟处理,有些需求已经确认了是问题,由于其可能在极端情况下才会出现,或需要对系统架构进行改动,或其优先级非常低,所以暂时不需要对此问题进行处理(或到下个版本进再进行修复)。

  固定

  对于推迟处理的问题可以暂时进行固定(“固定”为QC中的叫法。)一般固定的问题需要经过项目经理与测试经理协商后才能固定。

  处理缺陷

  开发人员在确认完一个问题需要处理时,那么对其进行处理工作。(例如,redmine 是支持处理人时时更新问题处理进度的,如 已处理30% ,已处理80% 等,当然,对于短时间内可以修复的问题没必要时时的去更新处理进度。)

  回归缺陷

  回归缺陷对于测试人员来说是非常重要的工作,其有三个入口两个出口。

  确认非缺陷问题:对于提交的一个缺陷,开人员处理为非问题或无法重现,然后直接转交给测试人员回归。测试人员再次确认,如果真如开发人员所说,则将问题关闭。如果非开发人员所说,是由于问题描述模糊或其它原因喂重现问题,则再次注明原因转给开发人员。

  确认修复问题:对开发人员修复的问题再次进行确认,确认能过,则关闭问题。确认不通过,将问题再次打开并转给开发人员。

  确认固定问题:有计划的对固定问题进行确认,有些固定问题随着时间的推移,版本的更新或已经不存在了,对这类问题应该及时关闭。有些固定问题依然存在且变得紧急,对于这类问题应该及时打开交给开发人员处理。

  关闭缺陷

  对于已经修复的缺陷进行关闭,这也是一个缺陷的后一个状态。

  注1: 文中提到了产品与项目,好多人分不清项目与产品,各自有各自的理解。我个人从用户群上来划分。如果面向的是特定客户的需求,那么称其为项目,如某医院的医疗系统,某公司的管理系统。面向大众用户且长期运营的需求,称为产品,如,某网站,某网络游戏。

  如果小A让我给他做一个网站呢?对于我来说,小A是我的客户,这个网站对我来说是一个项目,对于小A来说,他的网站是面向大众用户的,那么对于小A来说,网站是自己的产品。

  富士康带工苹果手机是一样的道理,富士康接到苹果的订单,那么对富士康来说是个项目,完成项目,拿到钱算项目结束。苹果手机对苹果公司来说是一个产品,它长期持有这个产品的所有权,并且不段的更新自己的产品。

  注2: 本文中用到了 bug、缺陷、问题等三个词语,用词比较模糊,本文中表示为一个事物。