1、软件测试技术与测试管理摘要:软件测试是在软件开始投入使用之前,对软件编码实现、设计规格的说明和软件需求分析等的最后审查,是为了发现错误从而对程序进行执行的过程。软件测试作为软件开发重要环节之一,它同样确保着软件的质量,对软件的顺利运行起着保障性作用。因此,为了确保计算机软件能够正常运行,降低错误发生率,减少软件的开发费用,探究计算机软件测试方法及加强测试管理具有重要意义。 关键词:软件测试;测试技术;测试管理 中图分类号:TU74 文献标识码:A 文章编号: 引言: 软件缺陷自软件诞生的那一日起就跟随着出现,软件测试就应运而生。随着软件内容和结构的不断丰富,软件缺陷也日趋多样化,引起更为严重的
2、质量问题。软件测试方法的研究正是本着提高软件质量,降低软件缺陷的影响。随着人们对软件质量的重视,软件测试也不断得到加强和持续发展。 1、软件测试的定义 软件测试应该是以查找软件缺陷为目标的一种过程,测试设计和缺陷管理是软件测试中提高缺陷查找效率和缺陷处理效率的两个有效手段。软件测试依靠的是强大的逻辑和条理性来完成工作,也同时存在着一定的风险。软件的应用形式多样,输出和实现功能的方式也不止一种,而产品设计中缺乏客观的标准,就使得软件缺陷的标准也变的多样,没有任何一种方式能够对软件进行完全测试。这样,就无法通过软件测试显示隐藏的软件缺陷,只能尽量查找软件缺陷,找到的软件缺陷越多,说明软件本身的缺陷
3、就越多,同时尚有在测试过程中被发现和断定的缺陷,这也是软件测试的局限性。 2、软件测试的基本方法 软件测试过程包含几个阶段:测试需求的分析和确定;测试计划;测试执行;测试记录和跟踪;回归测试;测试总结和报告。狭义的测试是指在代码编写完成后对代码进行测试,而广义的测试开始于需求阶段,伴随着设计、实现阶段。如测试需求规格说明书,测试设计框架等。可以从不同角度来划分软件测试方法。 2.1 静态测试和动态测试 软件测试从是否需要执行被测软件的角度,可以将软件测试分为静态测试和动态测试。静态测试是指依据需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行,对软件进行分析、检查和测试,不
4、实际运行被测试的软件,约可找出 30%到 70%的逻辑设计错误。这种方式不通过程序运行就能够寻找代码中的缺陷或对程序中的代码进行评估,可以由人来操作,发挥了人的逻辑思维的优势或测试经验,能够批量性地发现问题,并直接定位到缺陷或错误的具体位置。静态测试可以分为静态分析和代码走查。静态分析是一种计算机辅助静态分析方法。主要对程序进行控制流分析、数据流分析、接口分析和表达式分析等。静态分析的对象是计算机程序,程序设计语言不同,相应的静态分析工具也不尽相同。代码走查是一种人工测试方法,它一般依靠有经验的程序员根据需求分析、设计规格等来执行。动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性
5、。动态测试有两个基本要素:被测试程序和测试数据。必须生成测试数据来运行被测试程序,取得程序运行的真实情况、动态情况,进而进行分析测试质量依赖于测试数据。 2.2 黑盒测试、白盒测试、灰盒测试 从测试是否针对系统的内部结构和具体实现算法来看,可以将软件测试分为黑盒测试、白盒测试、灰盒测试。 黑盒测试又称功能测试,数据驱动的测试或者基于规格说明书的测试。黑盒测试可以从软件的功能为起始,根据功能的需求说明测试所用的方式,并依据该方式的需求来运行被测试的程序。从名字上来解释,就是将软件看成是不透明的黑盒子,对于盒子内部的结构不理会,只关注软件的实用功能,并对这些功能进行测试。 白盒测试又称结构测试,玻
6、璃盒测试或基于覆盖的测试。相比较于黑盒测试,它更关注于软件内部逻辑结构,其测试的重点是测试用例的覆盖程序结构的程度。白盒测试,是将软件比作透明可见的盒子,测试人员可以根据程序内部的逻辑结构来设计测试用例,来测试程序的逻辑路径。 灰盒测试,也称跟踪法测试,是指介于白盒测试和黑盒测试之间的一种测试方法,它关注输出对于输入的正确性,同时也关注内部结构形式的程度,它跟踪程序的运行过程,特别是输入数据在程序中的“流程” 。比如,测试人员输入数据后,软件会将其转换为代码并通信至服务器,服务器经过一系列的处理,将数据传送给客户端,并最终显示给测试者。灰盒测试能够对整体的过程进行追踪,对每一步的数据进行测试。
7、但较白盒测试而言,灰盒测试没有深入解析程序的结构,但也不像黑盒测试那样只关注输入和输出,它也关心程序中间的某些流程是否正确。 3、软件测试过程 3.1 单元测试 单元测试是正确检查软件设计的最小单位,即程序模块。单元测试目的是为了发现各个模块的内部所存在各类差错。单元测试的要点在于测试单元模块全部数据项的完整性和正确性,单元测试主要关注的是模块接口处流动数据和模块算法细节,并检查操作数据库表各字段的数据存储信息的准确性和完善性,完善性包含正确与否、长度和位数,以及表中状态正确性。此外,单元测试通过准则成功执行测试用例,将发现错误修正,确保性能、功能和单元模块设计要求相一致。 3.2 集成测试
8、集成测试又被称作为联合测试或组装测试,它主要在单元测试前提下,按照需求把所有模块根据设计的要求联合成为一个系统。集成测试可以划分成渐增式的组装和一次性的成型拼装两种。集成测试的测试要点在于测试子系统或子功能模块业务逻辑流程的完整性和正确性。集成测试通过准则成功规定全部组装的测试,并让测试结果通过评审并修正已经发现错误。 3.3 确认测试 确认测试还被称之为有效性测试,确认测试目的在于检验软件性能、特性和功能是否符合用户需求。确认测试一般情况下采取的是清数据库的测试方法,也就是首先清的是数据库,可以是在测试人员或一个用户开发环境情况下来测试,同样可以在模拟实际操作的环境下来测试。对此,确认测试通
9、过准则就是性能与功能要和用户要求保持一致。 3.4 系统测试 系统测试将通过测试软件当作计算机体系中元素,和计算机人员、数据、支持的软件、外设和硬件等元素有机结合,并在实际使用时确认测试和集成测试计算机的系统。系统测试目的是通过比较系统需求定义,来发现系统定义和软件的矛盾或不相符合位置。系统测试测试用例要按照需求分析的说明书进行设计,同时在实际的使用状况下运行。 4、测试管理过程和基本内容 4.1 测试团队管理 做好软件测试需要一个独立的团队,测试团队独立于开发团队之外去做测试工作,可以更加公正的进行测试。虽然测试人员可能需要花时间去熟悉被测对象然后才能设计出测试用例,但是测试人员具备了专业的
10、测试理念和设计技术,而这些测试技术是一个开发人员所没有的或测试前必须花时间去学习掌握的。 4.2 测试过程管理 软件测试贯穿于软件开发整个生命周期,在软件开发的每一个阶段,都有相对应的测试任务,从计划、设计、执行到缺陷管理、总结等步骤,构成了一个测试过程。因此,软件测试过程管理主要集中在测试准备、测试计划、测试用例设计、测试执行、测试结果分析,以及如何开发和使用测试过程管理工具上。 4.3 资源和配置管理 资源管理包括人力资源和环境资源。人力资源:测试人员的数量及其测试技能,在测试的各个阶段中对人员和技能要求不同。环境资源:建立测试环境所需要的计算机软件资源和硬件资源。硬件提供了一个支持操作系
11、统、应用系统和测试工具等运行的基本平台,软件资源则包括操作系统、第三方软件产品、测试工具等。 (2)配置管理。配置管理是指通过执行版本控制、变更控制等规程,以及使用合适的配置管理软件,来保证所有配置项的完整性和可跟踪性。配置管理是对工作成果的一种有效保护。 4.4 事件(缺陷)管理 事件即缺陷管理,为了有效地管理缺陷(事件) ,在项目内应该引入规范、高效的缺陷(事件)管理系统。软件测试的任务就是寻找缺陷,缺陷从被发现、分析、修改,到修改的确认形成了一个缺陷的生命周期(lifecycle) 。在缺陷周期内要对缺陷进行跟踪。缺陷可能会在开发过程中被发现,也可能在评审和测试过程中发现,甚至在系统最后
12、使用过程还会发现缺陷。缺陷可能在代码内、在运行的系统中、也可能在各种文档内。缺陷与软件的版本、运行的环境有关。缺陷与人员有关:测试员、开发人员、管理者和客户等。 五、结束语 软件测试的目的是利用测试过程中对发现问题,并对问题进行处理,从而实现增强软件质量的目标,是一种确保软件产品可靠性与良好质量的关键措施。作为软件测试师而言,应该按照软件测试规范要求进行软件测试,通过改进质量活动的生产率,既提高质量,又能缩短研发进度。只有这样,才能在测试软件的时候取得质量和进度的双赢。同时,测试管理涉及的范围非常广泛,如测试组织管理、测试过程管理、事件管理、人力资源与配置管理、风险管理、进度管理等。因此,在实际工作中,要考虑实际情况灵活地运用测试过程管理理念,依据这些理念来策划测试过程。 参考文献: 1张洪春.基于质量属性的软件测试力系统分析架构J.微型机与应用.2011. 2吴国芳.王仲生.如何在软件测试阶段有效的提高软件质量J.计算机光盘软件与应用.2010. 3邱珊.软件工程专业软件测试平台建设实践J.现代计算机(专业版).2012