Automated path testing using the negative selection algorithm. (2017)