为什么要进行基于需求的测试?
对于测试人员而言,有个老生常谈,但不争的事实,那就是:测试人员最重要、最根本的职责和使命是在软件生命周期中保证软件产品质量满足客户需求。
所以,测试组采用RBT会使测试更加有效,因为它使测试专注于质量问题产生的根源。
研究报告指出,多年来,大部分的软件项目不能按计划完成,不能有效控制成本。大部分项目失败的首要原因是软件质量差,导致大量的返工、重新设计和编码。其中软件质量差的最主要的原因就是:软件需求的质量差。
我们经常听到最终用户抱怨我们的软件,甚至放弃使用我们的软件,然而这些软件还通过了严格的测试和QA。这是为什么,原因很简单,那就是我们的软件需求从一开始就是错误的。
一项调查(James Martin (“An Information Systems Manifesto,” Prentice Hall, 1984)表明56%的缺陷其实是在软件需求阶段被引入的。而这其中的50%是由于需求文档编写有问题、不明确、不清晰、不正确、存在二义性导致的,剩下的50%是由于需求就根本没有被描述、没有被识别出来,即需求遗漏导致。
如下图:
可见,保证需求尽可能准确、具备可测试性,对于软件项目的成功起到很重要的作用。
基于需求的测试能带来什么好处?
Standish Group的研究表明,造成软件项目失败(质量低、超出周期和成本的预算等)的TOP3问题是:
* 不完整的需求规格
* 需求规格变化过于频繁
* 缺少用户在需求阶段的介入
基于需求的测试将对症下药:
* RBT在软件生命周期的一开始就介入,使得存在与需求分析和系统设计阶段的缺陷以最低成本的方式得以修复;
* RBT强调的重点就在于对需求规格的测试,而在需求规格中存在的缺陷又占缺陷总数的大部分;
* RBT有助于需求规格质量的完善,有助于项目成员提高对需求规格的质量意识,为后续的开发、测试、运行和维护工作提供一个好的源头;
* RBT有助于测试人员已“用户代言人”的身份参与到测试工作中,有助于测试人员进行测试设计,加大测试深度和广度,并从根本上预防缺陷的产生。
* RBT有助于进行需求覆盖的量化度量和测试跟踪。
参考文献:
James Bach:《Risk and Requirements-Based Testing》
Gary E. Mogyorodi, B.Math., M.B.A.Principal Consultant:《RBT Ambiguity Reviews》
STSC CrossTalk:《What Is Requirements-Based Testing》
陈能技:《基于需求的测试(RBT)》
邰晓梅:《基于需求的测试》
中国工商银行:《静态测试培训材料》
相关链接: