首页 > 范文大全 > 正文

软件测试在软件开发过程中的应用探析

开篇:润墨网以专业的文秘视角,为您筛选了一篇软件测试在软件开发过程中的应用探析范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:文章通过对软件概念的阐述,分析软件的地位及其重要意义,并深入探析软件测试在当前软件开发中的应用,以期促进软件质量的进一步提高,更好地满足现代社会的信息化需求。

关键词:软件测试;软件开发;应用

1 前言

作为软件质量控制的一个重要方式,软件测试是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。目前,软件测试正朝着持续的反馈机制方向发展,力争始终贯穿于整个软件开发的生命周期,及早发现问题,减少开发成本,有效提高软件的开发力度。

2 关于软件测试

2.1 软件测试的对象

软件测试和程序测试不同,它存在于软件开发的整个生命周期,能够保证软件正确地实现了一些特定功能的一系列活动,并证实在一个给定的外部环境中软件的逻辑正确性。软件开发的需求分析、规则、设计书、程序等都是软件测试的对象。

2.2 软件测试的目的和意义

软件测试是软件开发中质量控制的一个重要方式,测试的目的在于找出程序中的缺陷,及早发现并解决问题,完善软件的功能,将软件成分由低层组装到高层,尽量促使软件符合系统定义的技术要求,争取在最少的时间内建立标准的软件质量模型。软件测试能够防止软件开发中的错误,及时谨慎地衡量软件品质,保证出去的产品达到一定的质量标准。

其意义可以从三个方面来说:一是确认软件的质量,即确认软件是否做了需求者所期望的事情,并以正确的方式来做了这个事情;二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息;三是保证整个软件开发过程是高质量的,软件测试不仅测试软件产品的本身,而且还包括软件开发的过程[1]。

2.3 软件测试的方法

软件测试的方法和技术是多种多样的,根据测试是否针对系统的内部结构和具体实现算法可以分为黑盒测试和白盒测试。

黑盒测试也称功能测试或数据驱动测试,它是在已知产品所应具有的功能,通过测试来检测每个功能是否都能正常使用。在测试时,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数锯而产生正确的输出信息,并且保持外部信息的完整性。

白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基本路径测试法等,主要用于软件验证。

3 软件测试在软件开发过程中的应用

软件测试存在于软件开发的整个过程,与软件开发的其他团队共同合作,形成了软件生命周期中的一个整体(图1)。

3.1 测试在软件需求分析阶段的应用

在软件需求分析阶段,软件测试人员要及时参与了解软件的需求分析、仔细评估大概的工作量、估量软件测试风险和可行性、考虑是否接受需求分析的功能等[2]。

所谓需求分析,就是了解客户的对软件的需求,与客户商讨保证软件功能达到一致性,并评估软件风险和该项目的花费代价,形成一个完整的开发计划过程。另外,还要和软件开发人员共同将客户的需求转换成计算机语言,并估量是否可以在现有的技术水平下实现该需求。

进行工作量评估时,先大概计算软件功能测试花费的时间,将其与软件开发时间合并统计,综合评估整个软件开发过程所需的时间,再对比于软件产品经理要求的时间,若不相符则进行沟通商讨,确保一致性。

3.2 测试在软件系统设计阶段的应用

系统设计是软件开发过程中一个极其重要的部分,一旦出现了问题,会导致对一些边界问题无法修复,甚至会导致软件开发过程的失败或者开发出来的软件难以扩展。

软件测试人员在系统设计阶段的工作主要是了解设计模型、评估设计模型的风险、对设计提出建议等,还要编写测试计划[3]。软件测试人员在工作中应该选择良好的系统结构,减少不必要的变更,确保测试设计的稳定性;另外,良好的社会架构能够促使团队内部在实力和能力上存在的差异得到相互弥补,保持其平衡;一些特殊的业务需求可以创建技术边界来满足,保证系统在市场竞争中的可持续性和不可替代性。

测试人员还应该了解软件产品的运行环境,参与到产品逻辑流程、数据库结构、各模块的功能等的讨论中,评估软件在设计阶段可能出现的问题,在后阶段的测试中注意设计的难点部分;还要了解各个模块之间的接口部分和软件产品设计的性能要求,为后面的测试奠定基础。

3.3 测试在软件代码编写阶段的应用

在软件代码编写过程中,软件测试人员应该参与到单元测试、编写测试用例、考虑是否接受代码完成报告和冻结报告等工作,特别是要认真对待编写测试用例。通常情况下,软件开发人员可以独立完成单元测试,但是其相应的测试用例、自动化测试脚本等还得靠测试人员来提供。

3.4 测试在软件测试阶段的应用

在软件测试阶段,软件测试人员的工作是开展软件测试、更新测试用例、观察并处理发现的缺陷、最终质量报告等。这一阶段是软件测试在软件开发过程中最关键的环节,主要进行的是集成测试、确认测试、系统测试三部分,必须根据测试用例的情况来进行。基本上,这些测试只能确保常用功能的正常发挥,而对于一些较特殊、异常的测试用例,却不能保证其正常工作,因此在必要时应该进行“自由测试”,以期发现更多的缺陷[4]。当新的缺陷没有对应的测试用例来覆盖时,应该及时更新测试用例,以保证软件开发的正常运行。跟踪缺陷是按照项目的异同来采取不同的处理方式,如果是一个全新的项目,进行跟踪处理缺陷顺序是新报缺陷、确认缺陷、重现缺陷、修复缺陷、验证缺陷、关闭缺陷,必须严格按照顺序开展。

3.5 测试在软件运行维护阶段的应用

在软件运行维护阶段,测试人员的工作主要是帮助客户进行验收测试、及时处理客户提出的问题以及重新组合测试用例。其中帮助客户开展验收测试是主要工作,处理客户发现的问题是关键性部分,必须高度重视客户提出的问题,采取“3W”的形式,即问题是什么、原因在哪里、怎样解决的方式,仔细分析是否没有从客户角度出发,并认真分析客户真正关心的问题,最后找出在前期测试中没有发现该问题的原因。另外,重新组合测试用例也是不可忽视的,通常会在经过整个软件周期后才发现在设计时没有考虑到一些测试用例的设计,在测试过程中也会添加不少的新用例,因此在软件维护阶段,必须重新组合、更新测试用例。

[参考文献]

[1]王萍.软件测试的重要性[J].软件导刊,2009.4.

[2]朱虹.软件测试在软件开发过程中的应用[J].中国新技术新产品,2009.22.

[3]徐新峪.软件测试在软件开发过程中的重要性[J].东方企业文化,2010.2.

[4]潘祯,吴永强,王艳华.软件测试在软件开发中应用的探讨[J].硅谷,2011.22.