1、目录 I 第 1章 绪论 “软件危机”曾经是软件行业乃至整个计算机行业热议的话题 1。随着人们的逐步认识和了解,所谓软件危机实际上就是指软件中存在的问题和缺陷,这些缺陷导致了软件在开发过程中成本、进度和质量上出现失控的状况。有些问题和缺陷是软件自身的属性所造成的,而且无法改变,古语有云“人无完人”,因此由人来完成的工作也不可能是完美无缺的。我们所能够做到的就是如何最大限度的去发现并消除这些问题和缺陷,消除可能产生或已经产生的影响,最大限度的降低问题发生的几率。 在我国,军用软件的规模和应用范围不断扩大,软件应用的复杂度也 不断提高,软件研发过程中出现的人为错误或设计缺陷出现的几率也越来越大。同
2、时,由于军用软件的特殊性决定了软件的质量要求将越来越高,特别是在一些指挥控制系统、导弹卫星等高精尖武器中,软件质量受到了极大的关注。 作为软件质量保证的重要手段之一,软件测试越来越受到开发人员和使用者的重视。不管采取何种编程语言、何种开发方式、流程如何清晰完整都只能减少问题缺陷产生的几率,却无法保证软件问题缺陷彻底解决。软件缺陷是一种“与生俱来”的特征。不管软件的规模如何,都无一例外地存在问题或缺陷,这些问题和缺陷,有的很直观,容易表现 出来;有的很隐蔽,一般难以发现;有的仅仅会造成使用上的不便,有的则可能造成财产甚至生命的巨大损失 2。因此,软件测试目前仍就是发现软件内在错误缺陷,提高软件质
3、量最有效的方法。 1.1 项目背景 软件测试就是通过人工或自动化手段来执行验证某个软件或系统的过程,检验软件是否满足用户提出的需求。在目前形式化的验证方法和程序正确性证明还无法成为实用性方法的情况下,软件测试成为最佳的检验手段,并且这种检测手段在将来相当长的一段时间内仍然是验证软件质量,保证软件可靠性的有效方法 3。 目录 II 软件测试在软件整个生命周期中占有 非常重要的地位,特别是在军用软件的生命周期中,测试作为一项强制性要求纳入到武器装备的研制生产过程当中。根据军用软件的特点和要求,国家制订了一系列军用软件执行标准,其中包括开发文档标准、软件设计标准、软件测试指南等,通过标准化的要求和规
4、范,最大限度的保证军用软件的设计与研发满足最终使用的需求。因此对军用软件的测试也要严格遵照这一系列军用标准,标准化、规范化、流程化的执行军用软件测试任务。由于软件测试可深可浅,可多可少,是否进行了有效的测试是人们一直在研究的问题,为了确保测试工作的充分性和整个工作的顺利进行,必 须要进行合理有效的管理。软件测试管理是一项活动,包括了测试需求的理解和分析、对测试过程的策划和设计,测试的执行和管理、问题缺陷生成和追踪以及关闭等多个阶段,最终形成纸质化的文档,记录测试过程中发现的软件问题与缺陷,并在测试工作结束时将测试结论提交开发人员和委托方 4。同时将测试工作中发现的软件问题与缺陷记录进行整理汇总
5、,形成问题缺陷报告。 采用系统化、规范化的软件测试管理,不但可以为软件研制单位提供一个多阶段、逐步推进的实施方案,还可以在有限的时间和成本内保质保量的完成研发任务。虽然软件企业已开始意识到软 件质量的重要性,并积极开展相应的测试方面的专题研讨和会议培训,各种测试技术理论和相关策略被提出和讨论,测试人员的工作也越来越受到重视,但行之有效的测试管理却较少的被提及。现有软件测试过程模型如 V 模型、 W 模型和 H 模型等大多是对测试过程的研究,对于软件测试的管理和实施指导力不足,缺乏实践性 5。而测试过程改进模型如测试过程改进( Test Process Improvement, TPI)、测试支
6、持模型( Testability Support Model, TSM)和测试成熟度模型( Testing Maturity Model, TMM)等虽然可以用来评估软件测试机构的测试能力,为软件测试机构的改进,提高测试过程提供参考,但这些模型均没有提出具体实施的改进方法,其模型构造在很大程度上只是理论的框架描述,没有形成可以操作的定量化的操作规程 6。 随着信息系统的规模和复杂程度的增加,特别是军用软件的庞大化和复杂化,通过人工方式进行测试管理的方法已经不能满足要求,在执行过程中暴露出很多问题,导致测试工作无法顺利的进行。为了尽可能多的找出被测对象中的问题和缺陷,提高被测软件产品的质量,加强
7、对测试工作的组织和管理就显得尤为重要 7。在军用软件领域,软件质量的好坏关系到国防建设和国家安全,因此加强过程管理,设计使用规范化、标准化、流程化的软件测试管理工具是目录 III 十分必要的。由于军用软件的安全性和保密性等特殊性决定了国外测试管理软件无法进行选择和使用。而国内较为常用的测试管理工具进行定制化较为困难,无法满足军用软件测试管理的要求,因此在这个领域目前还是个空白。所以,作为一个多年从事军用软件测试服务的第三方测评机构,结合工作实际,研发一款与日常测试工作结合紧密,符合军用软件测试工作需求的工具十分必要,在保证测试工作的准确性、一致性的同时, 测试质量能够有效的控制,同时能够更好的
8、协调测试资源,提高了工作的效率。军用软件测试的工作量十分巨大,仅对需求的管理,所对应的测试用例可能达到几千甚至上万。如果没有相应的测试管理工具,仅靠人工方式进行维护和整理,那么软件测试的过程将会十分漫长,无效率可言,统计分析时也很合可能造成数据的错误,因此人工方式管理可以说是不现实的 8。所以,这就是本文研究的价值所在。 1.2 国内外发展现状 我国软件行业的发展也日趋成熟,软件测试也在不断的发展,相关的测试理论、测试方式和测试技术正在逐步的建立和完善,但与欧美等发达国 家相比,国内软件测试还是存在一定的差距 9。国内的测试工作从简单的无标准化调试逐步向涵盖测试需求分析、测试计划建立、测试用例
9、编写、自动化测试脚本编写、测试实施、测试结论分析等多项内容的正规化、标准化和流程化的测试工作演变。 这样复杂的软件测试工作如果不依靠有效的测试管理工具,而全部由人工进行处理,那将是一件非常繁杂而由十分不现实的事情。特别是对于测试用例的管理,数以千万计的测试用例在执行过程中的通过与否,是否在执行过程中出现与预期不一致的情况,并与之建立对应的问题缺陷单,统计分析这些数据的工作量无疑是非常 巨大的,在测试总结时进行的数据统计分析也将十分困难,如果单纯采用人工处理,不仅软件测试执行过程效率低下,而且极易出现错误,同时还可能出现许多难以解决的问题和困难。 目录 IV 1.2.1 国外发展现状 在国外,软
10、件测试已经成为软件产业中的一个独特的市场,软件测试管理理论已经形成,测试管理工具的开发和使用已经十分普遍 10。多家外国知名软件研发公司已经开发出较为成熟的软件测试管理产品。目前市场中比较有代表性的产品有:( 1) Mercury Interactive 公司研发的 TestDirector;( 2) Compuware公司研发的 QADirector;( 3) Microsoft 公司研发的 RAIDS;( 4) Mercury Silicon Valley Networks 公司研发的 TestExpert;( 5) Rational 公司研发的 Test Studio;( 6)IBM 公
11、司研发的 Rational Test Manager 等 11。其中, TestDirector 与 Test Expert两款测试管理工具提供了较为丰富和细致的测试用例管理和问题缺陷管理等功能。 Test Studio 主要针对的是测试用例的管理,这款工具可以按层级结构将测试用例进行 划分,便于用户对测试用例进行增删改查等操作。 RAIDS 更多的是对于问题缺陷的管理,通过这款工具可以实现对问题缺陷的创建、修改、删除、查询等多项功能。而 Test Manager 功能相对完备,支持所有的测试类型,并且提供对测试工作的规划、管理和执行。下面,我们就对这些工具进行一个较为详尽的对比,并且根据各自
12、的特点进行比对分析。 1) TestDirector TestDirector 是由全球最大的软件产品测试工具提供商 Mercury Interactive 公司研发的面向企业级客户的一款测试管理工具,也是行业内首款基于 Web 模式的测试管理工具,它可以进行全球范围的测试工作管理。通过整合将各个部分的测试管理工作集成到一个应用系统当中,实现对整个测试过程的控制,并且通过创建测试工作流框架和基础,简化整个测试管理过程,同时还具有一定的条理性。 TestDirector 能够实现测试需求管理,测试工作计划,测试实施以及问题缺陷追踪等测试过程中的各个阶段 12。 TestDirector 能够消除
13、部门间或地域间的障碍,能够让软件研发人员、测试人员和其他相关人员通过一个集中的数据仓库,跨地区的进行信息交互。 TestDirector 通过浏览 器可以完成从测试需求分析,到测试计划,日程安排,测试实施到最终问题缺陷追踪等全部测试工作,不需要操作人员在每台操作设备上安装客户端程序,简化了软件部署的复杂度。TestDirector 的 Web 页面将这些管理工作进行简化,最大限度的保证被测软件的功能是否正常,每一项需求是否满足要求,而不必担心部署的测试工具对被测软件造成运行环境差异的影响。通过直观的方式将需求、测试用例、测试结果目录 V 和问题缺陷报告联系起来,达到最高的测试覆盖率。 Test
14、Director 的功能与具体管理流程如下:( 1)测试需求管理:通常有 2 种方式 实现需求与测试的联系。第一种为需求明确,测试执行初期完全对应。TestDirector 分析获取所有需求,并将这些需求进行整理生成测试计划,并将测试计划与需求进行逐条对应。第二种为需求不明确,或称为逐步明确。由于 Web应用在不断更新和变化,因此 TD 允许测试人员对需求进行增减和修改,并确保现阶段已有的需求存在一定的数量的测试覆盖率;( 2)测试计划管理: TD 中的Test Plan Manager 功能为测试人员提供一个关键点和 Web 页面来协调测试工作,进行必要的沟通。 Test Plan Mana
15、ger 提供多种建立测 试计划。可在草图上建立一份测试计划,或根据 Require-ments Manager 所定义的需求,快速的生成一份测试计划;( 3)测试实施管理:测试实施过程就是将前期定义的测试计划进行实例化。对测试执行人员、实施周期进行分配管理,图形化工作流程。测试执行人员可以清晰的了解到测试计划的安排,合理的执行测试用例,并且可以了解测试执行的顺序,防止部分测试工作未执行或执行重复的混乱情况出现;( 4)问题缺陷管理:问题缺陷可在测试执行过程中的实时提交,也可以在测试人员需要时进行独立提交,具有较高的灵活性。根据不同测试需求 与不同单位对问题缺陷级别等因素的定义不同, TD 提供
16、了缺陷属性的设置功能,可以实现对问题缺陷属性进行灵活配置;( 5)报告统计分析:将已有的问题缺陷列表进行分析,并可以对问题缺陷属性进行配置,生成所需的报表、问题缺陷图等。 2) QADirector QADirector 具有分布式测试和多平台支持的特性,能够实现在多个平台环境下控制测试活动的实施, QA 允许软件研发人员、测试实施人员和 QA 管理员共享测试资源,测试执行过程和测试结果等信息。能够为客户提供一个透明、完整、一致而又彻底的软件测试。 QA 对整个测试工作进行协调, 提供以下多种功能 13:( 1)测试计划和组织实施;( 2)支持从多种开发工具和自动化测试工具进行测试;( 3)允
17、许测试人员进行手工测试;( 4)可查看测试结果并能够对测试结果进行分析;( 5)可将信息快捷的载入到问题缺陷追踪系统;( 6)对测试是否满足需求进行验证;( 7)将测试执行过程与测试结论进行结合;( 8)保证测试计划与用户需求相一致。 QADirector 的功能特点:( 1)可设计复杂的流程性测试;( 2)可对测试资源进行共享并且可以对共享内容进行维护;( 3)自动化测试;( 4)在测试过程目录 VI 中诊断被测软件的问题;( 5)可对发现的问题缺陷进行记录并快速重现;( 6)对执行过程中的故障进行排查;( 7)能够进行性能方面的调试;( 8)简单的访问模式记忆测试结论的比较;( 9)从多个
18、源来跟踪定位问题缺陷 14。 3) RAIDS 与 Test Studio RAIDS 具有对软件问题缺陷的管理功能,而 Test Studio 具有对软件测试用例的管理功能。两款工具进行组合,搭配使用就基本具备了软件测试管理的两项主要功能了。 RAIDS 是一款英文系统软件,它基于 C/S 结构,在使用前需进行客户端的安装,之后通过连接已部署完成的共享数据库服务器进行 协同合作。 RAIDS 最大的优点在于填报缺陷时操作十分便捷和智能。通过巧妙的设计,使它可以快速而又便捷的访问测试用例数据库,动态的查询用例数据库中填写问题缺陷时所用的可选项,有效的提高了问题缺陷报告的填报速率 15。 RAI
19、DS 的功能和特点有以下几方面:( 1)将问题缺陷分为三个状态,分别为 open、 verify 和 close。这三种状态对应了三种不同的颜色进行标识,十分直观。新创建的问题缺陷将会定义为 open 状态,同时,在创建过程中, RAIDS 允许缺陷的修复人可以动态调整,这与现实情况比较接近,因为在实际测试过 程中,因为种种原因,问题缺陷的修复人很可能不是本软件本段代码的编写者, RAIDS 这种设计符合实际工作中的操作要求,较为灵活。( 2) RAIDS 允许对同一个问题缺陷上传多张截图并保存,这样对于复杂操作所产生的问题缺陷的理解和解释将更为清晰,方便测试人员与软件研发人员进行沟通和交流,
20、并且交流内容和结果都会自动记录在问题缺陷下方显示。( 3) RAIDS 的问题缺陷查询功能便捷,在动态生成的查询界面中随意组合查询条件,可以快速的查询到符合要求的问题缺陷。 Test Studio 与 RAIDS 类似,同样是基于 C/S 结构的英文 系统软件,使用之前也需要安装相应的客户端程序才可以使用。在首次登录使用时,需要用户提供一个本地的测试用例数据库副本。测试用例以树形结构进行显示,层次清晰。Test Studio 将测试用例划分为四个不同的状态,分别为: Not Run、 pass、 failed、blocked。通过这些状态来标识测试用例的执行情况。 通过对 RAIDS 和 Te
21、st Studio 的分析,我们可以发现将两款软件组合搭配来使用,可以较好的对测试用例执行情况和问题缺陷进行管理和追踪。但 Test Studio 是通过建立自身测试用例库来进行管理, 不具备测试需求管理的功能,并且测试用例无法通过软件直接生成出来。同时,在测试管理的其他方面,如计目录 VII 划建立、文档管理、测试总结和用户管理等多个方面,这两款工具也无法充分支持。 4) Test Expert Test Expert 同样是一款英文版的软件测试管理工具,它能够对整个测试过程进行管理,包括测试策划、测试设计、测试实施和测试问题报告等阶段 16。这款软件的特点如下:( 1)对高速多任务测试的支
22、持;( 2)支持 MS Word 格式的测试条件输入;( 3)提供测试命令行接口与测试例程 API,个性化定制选项;( 4)集成 SunJavaStar、 Rational Purify、 Rational ClearCase、 Rational PureCoverage、Rational Visual Test 等多款测试软件;( 5)通过数据库对测试过程记录、测试数据和文档等进行管理,并支持标准 SQL 进行访问;( 6)定制化测试报告,满足不同用户需求,支持测试报告通过 HTTP 协议传输。 5) Test Manager Test Manager 是一款由 IBM Rational 研
23、发,功能相对完备的测试管理工具。它支持所有的测试类型,实现对功能测试、性能测试 、文档审查、软件集成测试、回归测试、配置测试和组件测试的规划、管理和执行 17。为测试执行人员、研发人员和委托方提供一个包含所有测试活动和测试结论的全面视图。这款软件主要有以下特点:( 1)测试管理可按需定制: Test Manager 提供了一个开放的API,支持操作人员添加新的测试类型和测试输入;( 2)支持远程和本地两种测试执行方式:操作人员既可以在本地计算机进行测试,也可以在远程计算机上进行测试,并行测试仅受系统资源和网络的限制。( 3)可追踪的建立和管理:将测试用例和测试需求进行关联,确保需求的覆盖程度达
24、 到要求;( 4)详尽的测试报告: Test Manager 预先定义了一系列的图文报告,通过这些报告来捕捉被测软件质量和测试执行完整性的关键信息。另外,专门为性能测试提供一种报告,其中包含软件相应时间和远程访问计算机资源利用率相结合情况。 同时,为更好的完成测试工作, Test Manager 可以与 IBM Rational 系列软件中的 Team Unifying Platform 工具进行集成,实现软件测试执行过程的持续、稳定、完善、高效。 6) 6 款国外测试管理工具的比较与分析 针对以上 6 款国外软件测试管理工具的功能和特点 ,下面我们进行对比,如 表 1-1 所示: 目录 VI
25、II 表 1-1 6 款国外测试管理工具的比较分析表 工具功能或特性 Test Director QADirector RAIDS、 Test Studio 组合 Test Expert Test Manager 语言支持 仅英文 仅英文 仅英文 仅英文 仅英文 工具易用性 一般 一般 较好 一般 一般 许可证价格 高昂 高昂 高昂 高昂 高昂 测试项目管理 无 无 无 无 无 用户权限 无 无 无 无 无 测试需求管理 较好 一般 无 无 一般 测试用例管理 较好 优秀 优秀 优秀 优秀 测试执行管理 较好 一般 一般 较好 优秀 问题缺陷管理 优秀 较好 优秀 较好 较好 测试报告管理 一
26、般 较好 一般 优秀 优秀 测试总结管理 较好 一般 一般 优秀 优秀 通过 表 1-1 可以分析得出,虽然上述测试管理工具均提供了测试测试用例管理、测试执行管理、问题缺陷管理等基本 的测试管理功能,但每款软件或多或少的都存在一些不足之处: 1) TestDirector 的功能在这几款测试管理工具中相对来说比较全面。但它牺牲了操作的灵活性和可定制性。使用 TD 进行测试管理工作时,需要在测试工作开始时就依照系统规定的方式进行工作。但在实际的测试工作中,大多数测试团队会依照自身的实际情况结合项目的具体特点进行实施,在被测软件开发的不同阶段根据实际情况进行处理, TD 的使用受到了严重的制约和影
27、响。 2) QADirector 对测试用例的管理较为完善,但对于其他环节的管理还不够细致。 QA 的需求管理无法将测试用例 与测试需求相关联,同时测试需求的导入方式也较为复杂。另外, QA 的测试评价体系不够完善,对测试评价内容过于简单,通常无法指导实际工作。 3) RAIDS 与 Test Studio 搭配使用实现了测试用例的管理和问题缺陷的管理功能。这两款软件基本实现了软件测试管理的功能。但是,它们运行在目录 IX 一个现有的测试用例库上,这就意味着这两款软件的组合不具备测试需求管理的功能,也无法直接生成测试用例。另外,在测试报告管理与测试总结管理方面,这两款软件也无法给予充分的支持。
28、 4) Test Expert 对于测试项目管理和测试需求管理的支持不足 ,与其它几款测试管理工具相比较竞争力不足。但值得说明的是, Test Expert 对自动化测试的支持程度优于其它几款工具。 5) Test Manager 也是一款功能较为完善的测试管理工具,支持所有类型测试,并对测试工作进行规划、管理和实施。但是, Test Manager 对于测试需求的管理和问题缺陷管理还存在一定的不足。 除了以上每款软件各自的不足之处以外,它们还普遍存在下面几方面的局限性: 1) 测试管理工具易用程度低,软件庞大且操作复杂,测试人员需要通过长时间的培训和大量的实际操作才能掌握多数功能。 2) 价
29、格高昂,对中文 本地化的支持不足,操作方面存在一定的不便。 3) 对操作员权限的管理分配支持不足,系统管理员无法对测试执行人员进行有效管理。 4) 对测试项目管理支持不足,作为软件第三方测评机构,存在同时执行多个被测软件的实施工作,这些软件无法实现。 5) 测试用例的版本控制比较差,不能很好的将测试用例的版本进行管理和维护。 以上几款软件均不支持我国软件测试标准规范,特别是我国根据军用软件特点制定的国家军用软件标准( GJB 系列标准),这也是国外测试管理软件无法采用的一个主要原因。因此,在研究和设计军用软件测试管理工具时,需要充分的借鉴现有国 外优秀的测试管理工具的优点,结合军用软件测试特点
30、,设计出符合军用软件需求的测试管理工具。 1.2.2 国内发展现状 近年来,随着软件工程化的理论越来越受到国内软件企业的重视,人们已经开始意识到作为软件工程化的重要环节 软件测试是不可或缺的,为了软目录 X 件产品研发过程更加有效的控制和管理,就需要有有效的管理手段来对整个软件测试流程进行规划和安排,执行过程中各项活动的监控,各类信息的记录和处理 18。由于国内软件测试未得到普遍的重视,大部分测试管理工具是由各个单位根据自身组织管理需求结合实际情况研发出来的。因此,测试管理工 具的标准性、一致性和可移植性都不是很强。特别是大型信息系统,至今还没有一款非常适合的测试管理工具。作为国内专业从事第三
31、方软件测评服务工作的机构在独立开展软件测评时,虽然测试流程及规范要求已基本建立完善,但在管理方式和方法上与国外软件测试机构仍存在较大的区别,所以到目前为止还没有一个完善的解决方案。 目前国内在软件测试管理工具方面具有代表性的产品有以下几款:( 1)上海微创软件有限公司研发的 BMS 和 TCM;( 2)上海市计算机软件评测重点实验室研发的 SSTL 软件测试管理平台 V1.0;( 3)中科软件股份有限公司研 发的软件测试管理系统 i-Test 2.0;( 4),由北京航空航天大学软件工程研究所与北京精易博创软件技术有限公司联合研发的软件测试过程管理工具 QESuite Web Version
32、1.0 等产品 19。 TCM 主要用于测试用例的管理,而 BMS 在则用于问题缺陷的管理,其它几款软件虽也同样提供了较好的用例管理和问题缺陷管理,但均无法实现对整个测试工作的管理。 针对以上 4 款国内软件测试管理工具的功能和特点,下面我们进行简单的对比,如 表 1-2 所示: 表 1-2 4 款国内测试管理工具功能特点对比表 工具功能或特性 TCM 与 BMS SSTL i-Test QESuite 架构 B/S B/S 或 C/S B/S B/S 与 C/S 软件易用性 较好 较好 较好 较好 测试项目管理 无 基本实现 较好 基本实现 测试需求管理 无 无 无 无 测试计划管理 一般 一般 较好 一般 测试执行管理 较好 较好 较好 较好 测试用例管理 较好 较好 较好 较好 问题缺陷管理 较好 较 好 较好 较好