论文部分内容阅读
软件测试作为直接获取软件基本度量和发现软件缺陷的最重要手段之一,日益受到人们的重视。在软件的发展过程中,测试逐步从软件研发过程中分离,成为独立的业务和社会分工。在整个软件生命周期内,软件测试成本已经占到软件研发总成本的40%,在安全关键领域甚至占到60%,由于缺乏充分测试而导致的软件质量问题成为制约我国软件产业发展的重要因素。测试用例的复用在提高软件测试质量,缩短测试周期,提高软件测试的覆盖率,均起着十分重要的作用,对软件测试复用的研究已成为软件测试工程化研究的趋势之一。课题的研究对于提高企业测试水平和过程能力,促进我国软件产业的发展具有极其重要的指导意义。目前国内外在软件测试用例复用方面的研究,往往集中在某特定环节的复用技术,缺乏能够综合测试用例的来源、组织和存储、检索、复用的完整复用体系。测试能力成熟度模型提供了良好的软件测试过程的指导,但缺少有效的建模和仿真手段,过程改进成本高,测试用例的描述缺少语义关联,来源缺乏系统化,严重地制约了测试用例的复用,因此开展测试用例的复用研究具有重要的理论价值和广阔的应用前景。基于上述原因,本文在测试流程建模和仿真,测试用例的生成,测试用例的描述、组织和检索,测试用例复用的支撑环境等方面进行了深入的研究。所做的工作和成果主要体现在以下几个方面:I提出了基于层次赋时着色Petri网的测试流程模型,实现了软件流程的仿真与复用。利用经典Petri网对测试计划、测试设计、测试执行、修故缺陷、测试评估、测试结束等环节构成的测试流程进行仿真和分析。在此基础上,根据测试流程的基本要素,进一步采用HTCPN工具,依照自顶向下的模式,开展软件过程的复杂建模和流程的动态仿真,实现了事前高效的软件测试过程优化和资源调度,避免了传统软件测试过程在事后实施改进周期长、成本高的缺点。I提出了基于Z语言的Web页面序列及浏览器交互测试覆盖准则。Web系统的无状态、多入口、流程不确定等特点给Web软件的测试带来了新的挑战,本文依据Web应用的页面关系提出了Web应用的页面序列覆盖准则,分析了准则之间的包含关系,根据Web应用和浏览器按钮之间的交互提出了交互状态覆盖和迁移覆盖准则。解决了目前Web应用存在覆盖准则复杂、应用不直观的现状,提高了Web应用测试的可复用程度。I提出并实现了可复用的基于遗传算法的两两组合测试用例的自动生成算法GACT。求解满足两两组合覆盖的最小测试用例集是NP完全问题,该算法能够生成满足两两组合的测试用例集的满意解,和国外相似算法相比,在组合数目较大时,GACT测试用例数量减少的优势比较明显。I提出了面向复用的测试用例描述模型。引入测试本体和软件测试用例分类本体,讨论了测试用例本体的匹配的相似度计算方法和测试用例的检索过程。采用形式化方法描述了固定属性字段测试、状态分解、和测试模板框架等可复用测试用例的来源,提高了软件测试用例的复用能力。I在调查软件测试质量情况和企业软件配置情况的基础上,分析了软件测试质量和软件测试配置之间的联系。结合本文研究成果,实现了基于本文研究成果的测试用例复用支撑环境-软件测试管理平台STMP,并应用于实际的第三方测试组织,取得了较为明显的效果,根据过去2年约1000个软件测试项目的统计,测试效率平均提高了20%,项目的部分研究应用成果获得上海市科技进步三等奖。