论文部分内容阅读
科学技术和电子计算机的飞速发展使得现阶段软件规模日益增大、软件应用领域日益扩大、客户需求日益复杂多变。例如,Windows XP操作系统的代码大约有4000万行,这使得错误更可能随时发生。作为软件工程中不可或缺的一个重要环节,软件测试对于确保软件的正确性、完整性、安全性和软件质量方面发挥着重大作用。全球每年因为软件缺陷引起的问题数不胜数,轻则给用户带来使用上的不方便,如浏览器崩溃,重则使用户数据丢失,系统崩溃;而在国防、金融、航天等重要领域,有时候软件缺陷造成的后果将更为严重。因此,必须对编写的程序进行完全充分的测试以确保软件的质量。在软件测试中,测试用例的质量决定了测试的完备性,传统的手工测试主要是由人工设计测试用例,虽然很有针对性且质量很高,但是随着软件规模和复杂性的增大,这种测试方式越来越无法满足现代的大型软件测试需求。因此,各大企业更加关注自动化测试逐渐,而测试用例的设计在自动化测试中一直占据着首要位置,因此测试用例的自动生成同样受到了人们的广泛关注。本文主要的研究内容包含如下5方面:(1)深入研究了软件测试的概念、目标和原则,目前已有的软件测试方法和技术;研究了Python脚本语言和XML技术在软件测试中的应用;深入研究了自动化软件测试的概念、适用范围、测试框架和测试脚本的设计与实施,并对目前不同测试环境中常用的自动化软件测试工具的现状进行了分析,特别对这些工具在测试用例的生成方面进行了分析。(2)研究了常用的测试用例自动生成算法,重点分析了随机法和遗传算法在测试用例自动生成方面的优缺点,提出了在特定应用场景下本文所设计的自动化测试工具所使用的测试用例生成算法。(3)设计了一种软件测试的系统模型,该系统模型主要分为以下三个模块:源代码扫描及预处理模块、测试用例自动生成模块和测试报告生成模块;最后对设计的软件自动测试工具的整体的功能流程进行了描述。(4)基于上述系统模型,对设计的软件自动测试工具的各个模块进行了功能的实现并详细介绍了各个模块的整体工作流程和算法流程及各个模块之间的的关系。(5)搭建测试环境并以标准的三角形判断源程序和部分项目源程序为测试对象,对测试结果和测试工具的运行结果进行了分析。