如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第八章软件测试与质量在软件的开发过程中,软件测试是保证软件产品质量的关键环节。早期的软件开发人员并没有意识到软件开发还需要测试这个环节。随着软件规模的不断增大,软件的复杂度越来越高,人们逐渐认识到应将软件测试作为一个系统工程来看待。应该围绕软件开发过程,系统完善地探讨测试测试理论与方法。8.1软件测试策略在软件企业中,软件项目组通常拥有专业的测试人员,测试工作已经由一项单纯的技术工作转变为一个系统化的过程。在微软内部,软件测试人员与软件开发人员的比例为1.5-2.5,导致这一比例的原因是微软意识到测试对软件产品的重要作用。表8.1给出了开发人员与测试人员的分配[1]。软件测试策略把软件测试设计与执行集成到一系列已经周密计划过的步骤中,它为软件开发人员、质量保证人员和客户提供了一个路线图。该路线图描述了测试步骤、以及实施这些测试步骤时所需的人员、工作量与资源。因而,一个测试策略与测试计划、测试用例的设计、测试执行、测试结果数据的收集与分析紧密相关。软件协同开发的每一个周期都可以看作是由软件总体目标、软件需求、设计、最终到达编码的过程。软件测试策略也可以放在这个过程语境里设计,如图8.1所示。首先进行单元测试,在单元测试完成后,再沿着开发过程的反方向,依次进行集成测试、确认测试、系统测试。单元测试着重于每一个单独的模块,以确保每一个模块都能够正确地实现了其逻辑功能,单元测试大量地使用白盒测试技术,检查每一个控制结构的分支潜在的错误;接下来,模块必须部署或集成在一起形成完整的软件包,集成测试是检查模块间的互相调用的匹配错误与各种冲突。在软件集成完成之后,进行确认测试,以检查软件提供的功能满足软件在性能、功能方面的需求。最后的系统测试属于范围更广的计算机系统工程方面应用测试,它测试但软件与其他系统元素如硬件、人员、网络、数据库结合在一起时,软件完成其预期功能的情况。表8.1开发人员与测试人员比例Exchange2000Windows2000开发人员140人1700人测试人员350人3200人人员比例2.51.9系统目标编码软件需求设计系统测试确认测试集成测试单元测试图8.1软件测试所对应的开发阶段8.2测试角色在大型的软件项目开发过程中,通常有测试部分负责软件产品的测试工作,测试部门的负责人就是测试部经理。测试角色的主要目标是确保软件开发过程中,所有的软件产品的质量都达到设计要求。其工作内容包括制定测试策略、编写测试计划、设计测试用例和执行测试。在软件开发的不同阶段,测试角色有不同的工作目标和工作任务[2]。在概念设计阶段,测试人员配合产品设计人员规划产品的前景,根据以往项目产品的测试经验,从宏观上制定测试策略与测试方案,根据产品目标制定测试标准。在设计阶段,测试人员应对产品的功能设计和就是方案设计进行可行性论证,并根据产品的功能说明书编写测试需求书,制定测试计划和测试进度。在开发阶段,测试人员完成每个产品构件或模块的功能测试、对相关文档的正确性进行检查,对测试的缺陷进行跟踪。在产品集成阶段,测试人员进行集成测试、回归测试。在稳定阶段,测试人员这样对产品整体进行功能和性能测试,对产品的安装和配置方案测试。在发布阶段,测试人员负责主要跟踪用户使用产品的过程中发现的缺陷,并解决与此相关的问题。由此可以看出,测试工作贯穿与软件项目开发全过程,有人提出需将软件测试看作一个系统工程,是与软件开发过程平行的过程。8.3集成测试策略当把已经完成单元测试的模块集成到一起时,可能会产生意想不到的错误。数据在通过模块接口时可能会丢失,模块间可能产生无法预料的副作用,单个模块中可以接受的不精确性在连起来后可能扩大到不能接受的程度,全局数据结构可能存在问题等。集成测试是通过测试发现和接口有关的问题来构造软件的技术,从根本上说,集成测试应该只检查所有的模块是否存在以及它们的交互作用是否正确。集成策略很大程度上依赖于开发策略。8.3.1自顶向下集成策略这种集成策略的思想是首先集成所有最高层次部分,然后并行地一层层向下集成。这时可以每添加一个模块,执行所需的测试,也可以一次添加该层所有的模块,然后再测试。这种集成策略的好处是能够在早期发现系统范围的问题。靠迅速建立系统的框架,提供最大的适用性。自顶向下集成策略最大的问题是通常需要大量的存根或特殊的工具提供对所有未得到的功能的空返回。8.3.2聚类集成策略这种方式是以聚类的方式添加模块。但你不能简单地把什么模块都添进去。相反,你需要仔细选择符合要求的可用模块,也就是找出相关的模块并集成它们。例如,与文件处理、打印相关的部分。如果某个功能在测试系统的剩余功能时是需要的,这种方法比较合适。8.3.3自底向上集成策略自底向上集成