论文部分内容阅读
随着软件规模的不断扩大,高效率和高质量的软件开发成为现代软件工程学研究的热点。基于构件的软件工程(Component-Based Software Engineering,简称CBSE)是为了保证高效、优质地进行软件开发应运而生的技术。但是对于构件化软件来说,软件可靠性如何保证也是摆在测试工程师面前的难题,而软件测试正是保证软件可靠性的必要手段。因此构件化软件的测试技术必将受到测试工程师的重视。在构件化软件测试技术中,高效的测试用例生成是简化测试工作、提高测试效率、降低测试成本的必要手段。由于最初生成的测试用例数量庞大、测试效率低下,因此需要利用一种强有力的优化算法对最初生成的测试用例进行优化。遗传算法作为一种强健的搜索方法,它在解决大空间、多峰、非线性、全局优化等高复杂度问题时,显示了独特的优势和高效性。但对于局部空间的搜索问题遗传算法不是很有效,个体的多样性减少的很快。为了克服以上缺点,Chun等基于体细胞理论和免疫网络理论提出了一种免疫遗传算法[1]。在这个算法中,将抗原作为目标函数、抗体作为解答、抗原和抗体之间的亲和力作为解答的联合强度,显示了独特的优势和高效性。通过对其算法思想的改进就可以达到优化测试用例的要求。本文首先介绍了构件化软件的测试技术和测试用例自动生成技术,接着介绍了免疫遗传算法的主要思想,结合并行性思想、自适应思想提出了一种改进的免疫遗传算法(Improved Immune Genetic Algorithm,简称IIGA)。结合构件的合约检查思想,提出了一种基于改进的免疫遗传算法的构件化软件测试用例生成模型(Model of Test Case Generation of Component-Based Software,简称MTCGCBS),在此基础上详细地介绍了改进的免疫遗传算法的算法思想,并对算法进行了编程实现。在实验型构件化软件达到100%构件接口方法调用覆盖率的情况下,将改进的免疫遗传算法与传统遗传算法和随机算法在生成测试用例数量及生成测试用例运行时间上进行比较,进一步说明了改进的免疫遗传算法在构件化软件测试用例生成及优化中的优越性,同时也验证了MTCGCBS模型的正确性、可行性。