随着应用软件的需求和规模不断增大,自动化测试早已变成软件测试的主流趋势。传统的人工生成测试用例的方法产生的用例较少,且耗时耗力,需要高水平且经验丰富的测试人员来保证代码覆盖率。在软件的快速迭代过程中,手工的生成方法往往会影响软件测试的进度。然而由于待测程序的多样性和测试用例的不确定性,如何高效地自动生成覆盖率高、尽量精简的测试用例集,这成为一项技术上的难点。而由于测试用例的生成为不可判定性问题,很多搜索算法都存在着固有的缺陷与不足。粒子群算法具有简单易用、计算迅速、鲁棒性好的优点,但是传统的粒子群算法也存在着容易陷入局部极值、出现早熟收敛或停滞等现象的缺点。本文针对程序中的数据流依赖关系,结合提出的进化性结构测试系统,对粒子群算法进行了四个方面的改进:粒子群初始化、邻域拓扑、参数设置和混合策略。对算法的主要的改进包括采用非均匀随机分布的方式来初始化粒子群,结合全面学习粒子算法来对邻域进行拓扑,采取收缩因子而非惯性系数的速度更新方法,以及算法各项相关参数的取值设置。最后做实验对比改进后的粒子群算法与作为基准的随机算法,证明本文的算法确实在测试用例的生成效率以及生成用例集的精简程度上有了一定的提升。然后将本文设计的测试系统应用于实验室的一个综合测试验证平台中,结合基于场景的测试方法,对某DSP的CAN通信程序进行测试用例的自动生成,最终获得了覆盖率高且较为精简的测试用例集。