人工智能辅助测试技术主要分为两个方面,每个方面又可以具体进行细分,主要概述如下:
(1)基于约束的技术
人工智能用于自动化软件测试的一项重要突破,是基于约束技术。基于约束的软件测试技术最早于1991年提出,其基本思想是,将被测程序或其模型,以及测试准则或测试目标转换为约束,然后通过约束消解器消解约束,最终获得测试用例。
(2)启发式搜索算法
人工智能对软件测试的一个重要贡献,是解决软件测试数据的优化选择难题。其中应用最广的是遗传算法、蚂蚁算法和模拟退火算法。
①遗传算法:是计算数学中用于解决最优化的一种搜索算法,这种算法借鉴了进化生物学中的一些现象,包括遗传、突变、自然选择以及杂交等,遵循适者生存、优胜劣汰的遗传原则。
②蚂蚁算法:主要用于基于搜索的测试用例生成,特别是功能测试和基于UML的模型测试。
③模拟退火算法:是基于蒙特卡洛迭代求解策略的一种随机寻优算法,其出发点是基于物理中固体物质的退火过程与一般组合优化问题之间的相似性。