基于捕获—再捕获方法的软件评审后缺陷预测问题研究
发布时间:2017-11-18 20:12
本文关键词:基于捕获—再捕获方法的软件评审后缺陷预测问题研究
更多相关文章: 软件评审 缺陷预测 捕获-再捕获 实证软件工程
【摘要】:软件评审是确保软件质量的最佳实践之一,但是,如果软件评审活动本身开展得不好,其相应的对软件质量的帮助将会非常有限。这就需要理解和评价软件评审活动的完成质量,从而确保评审目标的实现。然而,评价软件评审活动的质量并不容易。常见的方式是通过建立一系列经验模型来预测缺陷总数,然后根据评审实际发现缺陷占缺陷总数的百分比来评价评审活动完成的质量。这种方法最大的问题是必须依赖高质量的历史数据,而这些数据往往在实际开发中很难获取。此外,历史数据往往都关联着具体的项目特征,一旦这些特征发生变化,原来建立的数据模型就会失效。导致实践者只能从构建上述经验模型的部分典型参数特征来大致判断评审活动质量。例如,如果评审速度较慢,则有很大可能是一个好的评审;或者,如果评审发现缺陷较多,则可能是一个较高质量的评审。但是,这种间接的方法一方面没有直接关联到缺陷数量所体现的质量问题;另外,这类方法本身也带有很大的误判风险。例如,发现缺陷多,既可能是认真评审的结果,也可能是评审产物质量很差所致。在评审后缺陷预测中引入生物学研究中统计种群数量的捕获-再捕获(Capture-recapture)方法一度被认为是非常有前景的方法。这种方法不依赖历史数据,只是根据当前不同评审者发现的缺陷的重合程度和分布来判断遗留缺陷数量,从而相对客观地评价软件评审活动开展的质量。这样一来,摆脱了对历史数据的依赖,也就大大提高了这种方法在实际项目当中应用的可能。但是,尽管捕获-再捕获被引入软件评审已经有20多年的历史,并且在部分工业界的项目当中得到了少量应用,但是,总体而言,这种应用仍然处于较为初级的阶段,成熟案例不多。例如,较为典型的一点是,工业界的应用仅仅用到了捕获-再捕获中的最大似然算子,而事实上,这种最大似然算子在很多软件工程研究中被认为是估算表现较差的一个算子。因此,本文工作的主要出发点是试图从实用主义的角度探索和改进捕获-再捕获方法在实际软件评审中的应用,扩大应用范围,提高应用的效果。同时反过来也从中识别一些需要未来进一步探索的问题,为后续研究和改进提供参考。容易理解,为了更好的应用捕获-再捕获方法来预测评审后缺陷,有如下三个问题需要解决,即:(1)如何选择一个合适的算子;(2)如何评价和理解捕获-再捕获方法的估算结果;(3)如何对这种方法本身或者方法的应用进行改进。值得注意的是,还不能很好的回答这三个问题,因此,本文试图从这三个基本问题出发,探索和改进捕获-再捕获方法的实际应用。算子选择问题.对算子的评价与选择是捕获-再捕获方法的相关研究中开展最多的课题之一,但是目前的研究尚不能很好的支持算子的选择。一方面,各种研究对不同算子优缺点的认识并不一致;另外一方面还没有用大规模数据来检验各种算子估算能力。导致研究者和实践者对算子的特征理解有偏差,影响了算子的选择。估算结果评价问题.这是一个被现有的研究所忽略的问题。事实上,现有对捕获-再捕获算子的应用和研究表明,所有算子都会出现极端的估算结果。这种极端的估算结果会给管理决策带来误导,因此,有必要探索一些有效手段来评价捕获-再捕获估算结果,识别极端的估算结果。应用改进问题.现有研究在评价各种算子的估算能力的同时,往往也会提出一些应用改进的建议。这其中被认为效果最好的建议是,通过提升评审团队发现缺陷的数量,以期待更加充分的评审,从而改进捕获-再捕获方法的估算结果。例如,增加评审人员、培训评审技术、提升阅读技巧等都属于此类改进。然而,这种改进思路本身是否正确(即是否团队发现的缺陷越多,相应的捕获-再捕获估算结果越准确)?既无法从现有算子的算法直接推导出这一结论;而且,目前的研究也没有通过大量数据进行实证检验。本文通过实证研究手段(主要是系统评价方法和受控实验)对上述三个基本问题展开研究,其结果和贡献在于:1.提出和检验了一种对捕获-再捕获算子进行系统化的选择结果,并且对该结果中的算子的应用进行了进一步优化。2.提出了一种评估捕获-再捕获估算结果质量的方法,用以识别极端估算结果,避免决策误导。3.给出了一类改进捕获-再捕获估算结果的方法的前提假设的验证结果,用以作为该类型捕获-再捕获估算改进的理论基础。
【学位授予单位】:南京大学
【学位级别】:博士
【学位授予年份】:2015
【分类号】:TP311.53
,
本文编号:1201004
本文链接:https://www.wllwen.com/shoufeilunwen/xxkjbs/1201004.html