美文网首页
软件测试论文阅读报告

软件测试论文阅读报告

作者: SandraZZ | 来源:发表于2019-10-31 17:19 被阅读0次

    An Improved SDABased Defect Prediction Framework for Both Within-Project and Cross-ProjectClass-Imbalance Problems

    IEEE Transactions onSoftware Engineering

    1. 论文简介

    本文主要研究异质缺陷预测(HDP)中的多源问题与隐私保护问题。异质缺陷预测(HDP)是指使用来自其他项目的异质度量数据预测目标项目中软件模块的缺陷倾向。本文中研究了异质缺陷预测(HDP)中的两个问题:

    为了有效地利用多个源项目,文中提出了基于多源选择的流形鉴别对齐(MSMDA)方法。

    为了保护数据所有者的隐私,设计了基于稀疏表示的双混淆算法(SRDO)并将其应用于HDP。

    2.  研究意义

    (1)多源问题:现有的HDP方法主要侧重于基于单个项目收集的度量数据来预测目标项目中的软件实例。在实践中,存在来自其他公司的大量外部项目,多个源项目通常可以提供比单个项目更多的信息。直观地,预测具有多个源的目标项目中的软件实例可以带来更好的性能。然而,由于异质性不仅存在于源和目标之间,并且存在于多个源之间,从多个异质源学习高质量缺陷预测模型是具有挑战性的。因此,研究是否以及如何通过采用多源项目来提高HDP的性能是有意义的。

    (2)隐私保护问题:使用多个源项目进行HDP学习的前提是这些源项目可以从其他公司获得。实际上,由于数据的隐私问题,大多数公司都不愿意分享他们的数据。特别地,一些敏感属性(例如,代码行)可以存在于软件缺陷数据中,从中可以推断出一些商业敏感信息。例如,使用代码行,可以粗略估计开发相应项目的工作量。为了促进数据共享,必须研究如何在数据所有者发布数据之前保护其隐私。

    3. 相关工作

    本文主要涉及软件缺陷预测和隐私保护两方面的研究。现有的缺陷预测方法可以根据其应用场景主要分为两类:项目内缺陷预测(WPDP)和跨项目缺陷预测(CPDP)。WPDP专注于通过使用足够的历史缺陷数据构建缺陷预测器来预测同一项目中新软件模块的缺陷。但是,实际上,某些项目的历史缺陷数据可能非常有限,这阻碍了WPDP的应用。CPDP使用从其他现有项目(即源项目)收集的历史数据来构建目标项目中的软件模块的缺陷预测模型。此外,最近研究者们提出了一种异质缺陷预测(HDP)模型来预测具有异质度量集的项目中的缺陷。

    3.1 跨项目缺陷预测(CPDP)方法

    近年来,研究者们从开发的几种CPDP方法中发现跨项目数据构建的缺陷预测器与从项目内数据构建的缺陷预测器一样有效。现有的CPDP方法要求源项目和目标项目的实例具有相同的度量(即,度量集在项目之间应该是相同的)。然而,在许多情况下,源和目标项目之间很少有共同的指标。例如,NASA数据集中有37个度量指标,AEEEM数据集中有61个度量指标。但是,NASA和AEEEM数据集之间只存在一个共同的度量指标,即代码行(LOC)度量标准。在这种情况下,现有的CPDP方法无法获得令人满意的预测结果,因为构建良好预测模型所需的一些信息度量可能不存在于跨项目的公共度量中。

    3.2 异质缺陷预测(HDP)方法

    HDP模型来预测具有异质度量集的项目之间的缺陷(即,源项目和目标项目具有不同的度量集)。 例如,Jing等人通过利用统一度量表示和基于CCA的HDP迁移学习技术,提出了一种迁移CCA +方法。Nam和Kim采用度量选择和度量匹配技术来预测具有异质度量集的项目中的缺陷,这些方法都得了较好的预测结果。此外,He等人提出了CPDP-IFS来解决CPDP中异构度量集(不平衡特征集)的问题,他们使用每个实例的分布特征向量作为新指标来实现缺陷预测,但他们没有考虑到HDP目的的隐私保护问题。

    3.3软件缺陷预测中的隐私保护方法

    在许多软件工程应用中已经研究了隐私保护问题,例如,软件缺陷预测,软件测试和调试,软件工作量估计等。Peters和Menzies提出了一种隐私算法MORPH,使用MORPH,缺陷数据集所有者可以在发布之前对其数据进行私有化。为了解决多方场景中的隐私保护问题,提出了LACE2。但是,LACE2基于以下假设:每个数据所有者必须提供具有相同指标的数据,因此LACE2仅适用于具有相同度量集的CPDP。

    4.  主要框架与算法

    图1为本文中所提出的异质缺陷预测方法的总体架构,首先,使用稀疏表示的双混淆算法(SRDO)将来自其他公司的多个异构源项目私有化,得到隐私性较高的新的多个源项目;然后采用基于多源选择的流形鉴别对齐方法(MSMDA)来构建HDP模型;最后,基于训练后的HDP模型,对目标中的测试数据进行预测。

    4.1 基于稀疏表示的双混淆(SRDO)算法

    文中的SRDO算法是在相关技术CLIFF和MORPH上扩展得到的,CLIFF + MORPH是一种用于CPDP的最先进的私有密码算法。

    CLIFF是一个实例选择器,它返回相关实例的子集并删除不相关的实例。MORPH是一个实例变异器。它通过用MORPHed值替换这些原始值来更改每行的数字属性值。

    CLIFF算法步骤如下:

    Step1: For each column ofdata, find thepowerof eachattribute subrange; i.e., how frequently that subrange appears in one classmore than any other. Computing thepowerof a subrange is based on equal frequency binning (EFB) with 10 bins to eachattribute in the dataset.

    Step2:Finding the product of thepowersforeach row.

    Step3: Remove the lesspowerful rows of each class, keeping the most powerful rows. For example,selecting 40 percent of the top ranked rows.

    执行CLIFF算法的结果是减少了数据集,减少了行数。从理论上讲,这种简化的数据集不易受到隐私泄露的影响。

    图1 HDP的总体架构  (使用SRDO将来自其他公司的多个异构源项目私有化,然后采用MSMDA来构建HDP模型;最后,基于训练后的HDP模型,对目标中的测试数据进行预测。)

    SRDO的算法步骤如下:

    Input:The original projects

    Output:The privatized projects

    Step 1: 数据所有者使用CLIFF来选择最能代表目标类的数据子集,保留40%的原始数据,在SRDO中仅使用CLIFF选择的数据;

    Step 2: 使用方程   对CLIFFed数据进行模糊处理;

    Step 3: 将SRDO之后的私有化数据添加到公共数据存储库以进行共享。

    其中y是生成的SRDOed实例,是控制x的混淆度的随机数,是signum函数,如果相应的值大于零,则为1;如果相应的值小于0,则为-1,否则为0,是绝对值函数。相关论文中的实验结果表明,随机数r可以产生具有高隐私性的私有化数据候选者,并且在0.15到0.35的范围内准确地进行缺陷预测。

    4.2 基于多源选择的流形鉴别对齐(MSMDA)方法

    MSMDA本质上是通过在每次迭代时添加数据源的增量优化过程。 MSMDA的主要思想如下:

    (1)  对于给定的目标项目,首先使用来自多个源项目以及有限数量的训练目标数据(10 percent of labeled data

    from the target project)来构建MDA预测模型,然后根据g-measure(或AUC)评估其在训练目标数据上的表现;

    (2) 通过将源项目基于g-measure的降序排序到目标项目来获得排列;

    (3) 基于获得的排列,选择对应于最佳源项目的最佳g-measure值作为阈值,并将该源项目添加到数据高速缓存中。

    (4)然后,依次选择数据源和训练目标数据来构建MDA预测模型并计算g-measure。如果当前g-measure值小于阈值,我们将丢弃此数据源。否则,我们将此数据源添加到数据缓存中。

    (5)遍历所有源时,该过程完成。

    (6)最后,使用数据高速缓存中的选定源进行缺陷预测。

    5. 实验结果

    实验中采用了私有化措施IPR评估SRDO算法的隐私性:IPR越高,隐私算法越好,良好的隐私算法将使IPR接近100%。

    采用g-measure和AUC来评估文中提出的多源异质缺陷预测方法MSMDA的性能。

    Figure.2显示了CLIFF + MORPH和SRDO的IPR结果,作者发现SRDO生产的大多数私有化项目已经达到了与CLIFF + MORPH相当的IPR值。同时,SRDO的大多数g-measure和AUC值高于CLIFF + MORPH。这是因为SRDO同时使用NUN (nearest unlike neighbor)和NSN(nearest similar neighbor)作为干扰,并且使用基于the nearnest neighbor

    selector的稀疏表示,因此,其更可能为原始实例选择最接近的实例。总之,在HDP设置下的大多数情况下,SRDO实现了对源项目数据的隐私保护且在效用方面产生了比CLIFF+MORPH更好的g-meausreAUC值。

    Figure.2 query size为1时每个目标项目的g-measure与IPR和AUC与IPR的关系。Horizontal

    lines显示原始项目的g-measure和AUC值,vertical line显示IPR值为80%。IPR超过80%说明隐私性得到了保障,并且性能与原始数据一样好或更好。

    Table 5显示了文中提出的MSMDA方法与使用单一源项目的方法时,每个目标项目的g-measure和AUC结果。可以看出,就g-measure而言,改善率为3.4-15.3%,就AUC而言,改善率为3.0-19.1%。由此可见,MSMDA能够提供比使用单一源项目的现有代表性方法更好的HDP性能。

    Table 8显示了MSMDA与使用多个源项目的方法的每个目标项目的g-measure和AUC结果。 MSMDA在大多数项目中达到了最佳预测值。特别是,与MultiSourceTrAdaBoost(MSTAB)和HYDRA相比,MSMDA将g-measure的中位值分别提高了5.7%和5.4%,将AUC的中位值分别提高了3.5%和2.3%。由此可见,MSMDA能够提供比使用多源项目的现有代表方法更好的HDP性能。

    6.  结论

    异质缺陷预测是非常有前景的,因为它语序软件项目的异质数据用于缺乏足够缺陷数据的新项目的缺陷预测中。为了支持异质缺陷预测,文中提供了一种新的私有化算法,称为基于稀疏表示的数据混淆(SRDO)。使用SRDO,可以将来自其他软件开发组织的数据私有化,从而促进数据共享。为了充分利用多个源项目中包含的信息,文中提出了一种多源异质缺陷预测方法,即MSMDA。实验结果表明了私有化算法SRDO和多源异质缺陷预测方法MSMDA的有效性。

    7.  个人启发

    只要有足够的历史缺陷数据可用于训练预测模型,软件缺陷的预测就能够在同一项目中运作良好。因此,对于目标项目,如果有足够的历史数据,我们可以使用WPDP方法进行缺陷预测。但是,新软件项目或新公司可能没有足够的历史数据,而在实践中通常存在来自其他公司或组织的大量数据,如果这些外部的数据与目标项目具有相同的度量集合,我们便可通过使用最近提出CPDP方法来构建缺陷预测模型。然而,当外部数据和目标的度量集是异质的时,上述CPDP方法可能是不可行的。在这种情况下,可以采用最近提出的异质缺陷预测HDP方法。

    在使用CPDP或HDP方法之前,我们需要收集外部数据。但是,由于数据所有者的隐私问题,想要从数据所有者那里获取缺陷数据并非易事。为了便于数据共享,数据所有者可以使用一些有效的隐私保护算法(本文中提出的是一种称为稀疏表示的双混淆SRDO算法),以在发布数据之前保护隐私。

    在软件开发的早期阶段,项目中通常存在有限数量的历史数据。如果有限数量的历史数据可以与多个外部源项目一起用于训练,则模型将具有更强大的预测能力。因此,可以在软件开发的早期阶段建立异质缺陷预测HDP模型(本文提出了一种称为多源选择的流形鉴别对齐方法MSMDA建立HDP模型),当收集到足够的历史数据时,我们也可以使用WPDP方法来构建缺陷预测模型。

    相关文章

      网友评论

          本文标题:软件测试论文阅读报告

          本文链接:https://www.haomeiwen.com/subject/bshohctx.html