软件测试是软件开发过程中非常重要的部分。随着软件的规模越来越庞大,花费在软件测试工作上的时间、人力、物力也越来越多。测试用例集的数量及每个测试用例的运行代价决定着软件测试的成本及效率。在保证软件测试的质量和对软件关键操作进行充分测试的前提下,如何使用代价小且尽可能少的测试用例来充分测试软件,从而降低软件测试的成本和提高测试效率是本书研究的重点内容。解决测试用例集约简问题的途径有两种,一种是进行测试用例的选择,另一种则是采用测试用例集约简技术。测试用例的选择就是从原始用例集中选择出一个测试用例子集,其能够覆盖所有的修改,但这种方法一般不能提供与原始测试用例集一样的测试覆盖度。本文主要关注的是第二种方法,即在原始用例集中,找到一个近似运行代价*小的测试用例子集,并能够提供与原始测试用例集一样的测试覆盖度。为了尽量减少软件测试的费用,我们在做测试用例集的约简时,不仅要减少用例的个数,还必须考虑测试用例的运行代价,并且每个测试用例的运行代价是不相等的。本书分为四个部分。第一部分即第1章的绪论部分,给出概要性的介绍,第二部分是软件测试用例集约简的理论基础,由第2章、第3章和第4章组成。第2章介绍了软件测试的概念,测试用例集约简的相关定义和术语,以及用贪心算法、HGS算法和GRE算法解决测试用例集约简问题的步骤等第3章是以基本蚁群算法为核心展开的,在这一章中介绍了蚁群算法的思想并详细阐述了如何用基本蚁群算法约简测试用例集,并且分析了此算法存在的问题及如何进行改进。第4章以基本遗传算法为基础,介绍了遗传算法的基本思想及原理。第三部分详细阐述了作者提出的3种算法,由第5章至第7章组成。第5章在基本蚁群算法的基础上,考虑了每个测试用例的运行代价,其中,每个测试用例的运行代价是不相等的,于是引人了变异因子来增加蚂蚁选择路径的随机性,使得蚁群既能快速找到最佳路径,又不会限于局部*优。第5章将蚁群算法和遗传算法进行融合,首先利用遗传算法的快速随机全局搜索能力生成蚁群算法的初始信息素,然后利用蚁群算法的正反馈性,快速得到约简测试用例集的近似*优解。第6章在约简回归测试用例集的时候综合考虑了测试用例的测试覆盖度、测试运行代价和错误检测能力3个因素,该算法在有效约简回归测试用例集的同时能保证约简后的测试用例集的错误检测能力。在第四部分为第8章,设计了一个原型系统进行仿真实验,把作者提出的3种算法和3种经典算法进行比较,对本书提出的3种算法进行了性能评估。本书图文并茂,以实用为主,力求能够成为高年级本科生、软件测试方向的研究生、有兴趣的青年学者在研究相关主题时的参考书。本书受到“新能源汽车与智慧交通”湖北省优势特色学科群(Hubei Superior and Distinctive Discipline Group of“New Energy Vehicle and Smart Transportation”)的资助。由于编者水平有限,缺点和错误在所难免,希望广大读者给予批评指正,对此作者深表谢意。