赵星汉同学的技术博客 Software testing & software engineering

基于中文需求文档的软件缺陷预测方法

2022-03-14
Frank Xinghan Zhao


基于中文需求文档的软件缺陷预测方法

概述

软件缺陷预测是软件测试和软件工程领域中的重点研究方向之一。软件缺陷预测是当组织遇到新的待测软件时,根据被测软件的代码、文档、管理过程记录等信息,对软件潜在的故障数量及其密度分布进行预测的方法。软件预测的准确度,对组织对测试资源的分配、软件产品质量的判断、软件过程的质量管理、软件测试结果的评估等方面都很有指导意义。

不论在国际上,还是国内的工业界,瀑布开发模型都是最常见的软件开发模型。典型的瀑布模型将软件开发周期分成“需求——设计——编码——测试”四个阶段,在前一阶段的所有工作完成后再进入下一阶段。而在大多数瀑布模型的实践中,软件各方面的策划,包括配置项和系统级别测试活动的策划的确定一般是在第一阶段,也就是需求阶段就已经完成。而测试资源分配的策划一般依赖于软件的设计输入文档,如软件任务书、软件需求规格说明等,软件测试管理人员需要根据软件的任务书和需求分析文档,判断软件测试的难度和具体工作量,进而按需分配测试资源。

常见的缺陷预测是根据软件代码的规模1、复杂度23、各种设计参数、以及软件的固有属性和过程信息等进行预处理、拟合与回归后,形成有针对性的预测模型。这些方法大多只能用于项目后期,在被测软件已经完全开发完毕,或者部分开发完毕后,针对已经完成编码的软件进行缺陷数量和分布密度进行预测。然而,这种方法却无法在项目的初始阶段,也就是项目的需求阶段对项目的缺陷进行预测。

对于一个组织或软件开发团队而言,测试资源总是有限的。在软件测试管理层面,一般会基于一个共识——越容易出错的地方应该分配更多的测试资源以保证软件质量。当下的软件故障预测技术能通过对代码、设计、过程管理的信息预测软件故障的数量与分布,这些结果只能在软件开发周期的后半段,即编码和测试阶段才能获得。而施行瀑布模式的组织,需要在需求分析阶段就得到缺陷预测的结果,以辅助完成测试资源的策划。开发周期后半段才能得到的预测数据并不能对开发初期进行的测试策划有所帮助,工业界需要一种能在开发初期就能进行软件缺陷预测的方法。

针对中国工业界在项目初期进行软件缺陷预测的问题,我们开发了一种基于中文需求文档的软件缺陷预测方法。该方法通过对软件需求文档进行语义分析,得出软件需求的自身参数,然后利用线性回归的方式,得出软件缺陷预测的模型,从而实现利用中文软件需求规格文档来实现对软件缺陷分布的预测。此外,在实际工程项目管理中我们也发现,具体的缺陷数量的预测,对于后期的配置项和系统级别测试管理的实际参考意义并不是很大,所以我们将预测结果的输出形式由常见的缺陷个数调整为了故障可能性的风险层级,这样做一方面可以让结果更加可信,而且更贴合于实际测试管理工作的需要。

(这里可以添加结果的描述)

文章的后续内容如下:第二章主要对缺陷预测的背景进行了描述,第三章对我们采用的中文语义分析的方法进行了阐述,第四章采用了机器学习的方法生成了预测模型,第五章针对工程使用,提出了可采用的简化方法,第六章进行了总结和指出了后续的研究方向。

(待续吧,陷入瓶颈了)

  1. Akiyama 

  2. THOMAS J . MCCABE: A Complexity Measure 

  3. Hestead 


Similar Posts

Comments