近似分布
    1.类似ces的方法,将所有测试用例在某一变异模型上置信度的相对变化值作测试用例的特征表示向量。
    原ces的方法:将 所有测试用例/部分测试用例 在最后一个隐藏层上每一个神经元的输出值以最大最小值为分界分为10份,计算所有的输出值分别落入每一个区间的概率,以此能求得交叉熵,最后每个在每个神经元上都有一个值,取所有神经元的平均值
    2.利用聚类中的效果评价指标轮廓系数
    每次迭代选择的时候,将选中的测试用例和整个测试集看作两个单独的类,计算轮廓系数,轮廓系数越小意味着相似度越高,问题在于cost特别大,而且效果不理想。
    3.利用欧式距离、cos距离、弗雷歇距离
    其实就是计算选出的测试用例的特征表示向量的均值和整个测试集特征向量的均值

    • 欧式距离略优于cos距离
    • 弗雷歇距离设计到递归计算,巨慢😒

    重新设置采样个数
    聚成两类之后重新定义从各类中采样的个数(如果之间按簇的大小按比例选择就失去了采样的意义)

    1. 利用domain gap(源域和目标域之间存在域差异)确定簇和整个测试集之间的差异从而确定采样个数,但domain gap
    2. 其实在使用KMeans(k=2)聚类时,可以手动构建一个噪声点集合,因为直接聚3类既不能确定哪一个是第3类且具类效果也达不到预期。继而重新确定在噪声点集合和正常点中采样的比例,剔除噪声点后可以根据正常点簇的大小依据killNum进行采样。问题在根据什么确定噪声点?选择的噪声点的个数?怎么在噪声点中采样?(demo_0702.py)

    …………
    选择出来的噪声点基本都是正确测试用例和错误测试用各占一半(无论按照killNum还是距离两聚类中心的差值),按照mmd或者random的方法选出的测试用例基本都是各占一半。