这是《落叶》文集里第 362 片落叶,希望你能喜欢,不为别的,只为这份坚持。
【背景】
一个项目的需求计划会上,开发初步评估至少需要20天,项目经理问测试负责人,因为项目工期紧张,给你们留3天测试时间,是否能测完?如果你是这个测试负责人,你会怎么回答?
这是一个面试时的模拟场景题,其实在实际的工作中,也是比较常见的一种场景。
【你问】
面对肯定完不成的测试任务时,我该怎么去承诺完成时间?
【我答】
我们就基于这个模拟场景来看看,开发至少需要20天,我们就假设开发工作量是20天,从粗略估算的经验值来看,测试工作量至少是开发的1~2倍,所以我们抛开这个模拟场景中并未提及具体人数的前提,可以简单认为测试工作量最少也得20天。而项目经理只打算给测试留3天的时间,很明显,这是一个不可能完成的测试任务。
所以,这时候可以有两种回答,或者说是基于不同的出发点,有两种可行的方案:
方案一:如果这个项目有明确的质量要求,必须将发布后缺陷率控制在3%以下,那我只能说3天肯定是测不完的,我目前基于开发的评估工作量,只能粗略预估至少要20天,详细的测试工作量评估,我还需要会后对需求做一些具体的梳理分析,针对测试点做相对精确地测试工作量评估,从而确保项目的质量达到客户要求。
方案二:如果项目工期的确没办法在做调整了,也就是不管我评估的测试工作量有多少,就只有3天的测试时间,我只能回答,如果在不需要保证整体质量的前提下,而且开发代码质量合格的情况下,我可以在这3天里完成项目核心业务流程的测试,确保项目能交付给客户端到端的使用,至于 UI、交互、分支流程、异常场景、性能、安全等等,都只能等项目上线之后,继续跟进测试。同时,我也没办法保证核心业务流程的 bug 百分之百被发现,我优先会确保业务逻辑和数据的正确性,保证客户能端到端的用起来,走完整个流程。
我们再来看下这两种方案的利弊,从不同的出发点考虑,这两个方案各自都做了一定的牺牲:
- 方案一牺牲的是进度和成本,为了保证质量达标,需要足够的测试时间,但这样一来,项目就需要延后交付,进度就滞后了,同时成本也就相应地增加了,这还不算可能支付的延期违约金等等。
- 方案二牺牲的是质量和客户满意度,因为时间紧,将完整的系统测试变为了阶段性的测试推进,所以这个需要事先告知项目经理,因为他可能需要跟相关的项目验收人和客户事先做一些沟通,从而取得客户对于这种阶段式质量保证方案的认可。
《测试路上你问我答》里的 Q&A 104,如果是你要的,甚好!如果不是,你问,我答!
作者简介:14 年测试 + 11 年项目管理 + 11 年团队管理 = 一个测试老兵