我最近开始使用遗传算法,为了更好地理解它,我决定用它来解决问题。我正在使用遗传算法生成路径测试问题的测试用例。除了如何选择最佳的健身功能外,我已经想到了一切。所以,我可以使用一些帮助:)
以下是我的问题的概述: 在每一代中,都会生成 100个测试用例。 CFG中的每个路径都已分配一个权重,具体取决于该路径的测试用例的罕见程度。 例如,采取以下CFG:
有4条独立路径。假设路径的权重如下 -
路径1:10
路径2:5
路径3:4
路径4:5
现在,对于这一代的每个测试用例,我都在考虑整个一代人的平均健康状况。
(10 * 100 - 4 * 100)/ 2 = 300 [由于有100个测试用例]
所以,我将该测试用例(它所覆盖的路径的重量)的权重提高了300。 虽然结果令人满意,但其逻辑极其缺陷。我认为一个更好的适应度函数,以便测试用例的适应度与它所覆盖的路径的权重成正比,将是权重除以所有路径的权重之和。所以对于这个问题,
w /(10 + 5 + 5 + 4)= w / 24
您认为计算每个测试用例的适合度的更好方法是什么?
W / 300
W / 24
或者你会建议一种完全不同的方法吗?可以为这个问题生成更好的适应度函数吗?
我很感激你的帮助:)。