软件测试给我们带来的好处不仅仅是发现软件当中存在的缺陷,更重要的是,通过对测试问题的分析,找出导致问题产生的原因,并采取针对性的措施,以达到预防缺陷的目的。 下面以一个实际的例子来揭示一下分析测试问题的思路。 某项目在完成系统测试后,共发现85个错误,按程序错误、设计错误、文档错误、其他错误等分类统计,结果见下图。 其中程序错误最多,占66%;文档错误次之,占27%。按照二八原则,如果能够找到这两类错误形成的原因,消除这两类错误,软件的质量将大幅提高。 首先我们来分析下文档错误的原因。分析文档错误问题都是对需求规格说明而言的。文档错误有2种类型:需求描述错误或有歧义;需求描述与代码不一致。这两类错误的统计结果见下图。 在样本中由于“需求描述错误或有歧义”导致的文档错误占38%,由于“需求错误与代码不一致”导致的文档错误占62%。下面对造成这两种错误的可能原因进行分析。 造成“需求描述错误或有歧义”的原因可能包括:
造成“需求错误与代码不一致”的原因可能包括:
对此,建议的解决措施为:
原因分析有个5个“为什么”的分析方法,可以逐层深入剖析出导致问题产生的根本原因。因此,可以对上面的造成错误原因问“为什么”做进一步的原因分析。例如: 造成“需求规格说明评审效率低下”的原因可能包括:
针对这些深入的原因,再给出相应的解决措施:
以此类推。 其次对程序错误原因进行分析。从技术角度,对程序错误的类别划分如下:
通过对程序错误的52个问题的调查统计,按错误类别的统计结果如下: 由图中可以看出,程序错误问题主要集成在设计错误(占67%)中,其次是需求不正确错误(占13%)。根据二八原则,我们将集中解决这两类错误。 对于“设计错误”,建议的解决措施:
对于“需求不正确”错误,建议的解决措施:
下面是对导致问题产生原因的分析,统计结果如下; 由图中可以看出,导致程序错误问题产生原因主要集中在考虑不周全(占62%)中,其次是需求理解不正确(占23%)。考虑不周全,就是设计能力不足的体现;需求理解不正确,则是需求分析的能力和质量控制出了问题。建议的解决措施参考前面。 分析问题就是这样分类分析,逐步抽丝剥茧,直至找到问题的根本原因,能够给出可行的解决方案为止。 另外,对于问题类别的设置也是个技术活,设置合理的类别才有助于分析过程的顺利进行。 对于问题分析,可能不是个人能够完成的事情,往往需要各个相关方都参与分析过程,从不同的角度给出问题的原因,这样才不会有遗漏。 微信号:IdeaofSE |
|