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

更新时间:2024-02-21 作者:用户投稿原创标记本站原创 点赞:8432 浏览:32519

摘 要随着信息时代的到来,软件在人们的生产生活中发挥着越来越大的作用.因此,为减少软件运行过程中的错误,保证软件质量,开发人员需在不同阶段对软件性能进行测试.文章研究了软件测试在软件开发过程中的应用,以期为软件的开发提供参考.

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

中图分类号:TP311文献标识码:A文章编号:1671-7597(2014)07-0042-02

软件测试是软件开发工作的重要组成部分,因为软件测试能及时发现软件存在的问题,软件开发工程师在次基础上进行软件调试,解决软件运行时出现的问题,能显著提高软件开发效率,因此,软件测试成为软件开发工作不可或缺的重要步骤,深受软件开发工程师的重视.

1软件测试的分类及方法

1.1软件测试的分类

从整体上来看软件测试由静态测试与动态测试之分,其中动态测试包括单元测试、集成测试、确认测试以及系统测试等.各种测试均能不同程度的发现软件开发过程中存在的问题,下面对不同测试方法逐一进行介绍.

1)静态测试.所谓静态测试指不实际运行软件,而是对软件代码、测试用例、设计审查以及需求分析等进行分析、检查.其中认证、验证以及确认是利用静态方法测试软件质量利用率较高的方法.通过静态测试可找出30%~70%的软件编码以及逻辑错误,为后期软件测试铺平道路.

2)动态测试.动态测试指通过设计测试用例模拟软件使用者的行为,对比软件实际运行效果与预期效果之间的差异,寻找软件存在的问题,其和静态测试的区别在于软件是否运行.动态测试较静态测试工作量大,包括系统、确认、集成、单元测试等,其中单元测试指检验与检查软件的最小单元模块,目前主要使用白盒测试技术进行测试且可同时对多个模块进行测试;集成测试指按照集成测试计划,检查软件单位之间的接口是否正确;确认测试的目的在于检查软件是否满足用户需求,因此,测试过程中需有用户参与,当前常使用黑盒测试方法;系统测试是软件测试的重要内容,是交付使用的最后一个环节,需要对软件运行的软硬件环境、性能及功能进行测试.软件开发过程中由黑盒测试工程师负责软件系统的测试.

1.2软件测试的方法

软件测试的方法包括白盒测试、黑盒测试以及综合策略,其中白盒测试通过认真检查软件的过程性细节,以发现软件存在的问题.白盒测试的方法很多,其中逻辑覆盖方法较为常见.利用该种方法测试时测试人员需比较熟悉软件的内部结构,以设计出合理的测试用例,实现分支、条件、执行语句、条件组合、分支-条件代码的覆盖.

黑盒测试的重点在于检测软件的功能,因此,不涉及软件代码的检测.利用该方法能检测出白盒测试无法发现的问题,是白盒测试方法的互补.利用黑盒测试可及时发现软件与数据库连接、初始化或终止、软件界面、性能等是否出现错误等.黑盒测试方法又分为错误推测法、等价类划分法以及边界值分析法,其中错误测试法适用于经验丰富的开发人员,即根据软件开发过程中错误频率较高的位置进行针对性的测试;对于穷尽的黑盒测试来讲,测试程序时需要输入所有无效与有效数据,工作量非常大,并不可取.实际测试时通常输入代表性较强的数据,以减少测试劳动量,最大限度的发现软件存在的问题.即将需要输入的数据分成多个等价类,每个等价类中选择代表性的数据进行测试;软件开发过程中循环、数据结构以及下标等容易出现问题,此时就需运用边界值分析法进行测试,通过采用针对性的测试用例完成测试;综合策略指联合多种测试方法进行测试,能弥补单一方法测试的缺陷,提高软件测试效率.

1.3软件测试过程

由上文可知软件测试过程由系统测试、、确认测试、集成测试以及单元测试之分.经过测试主要为了发现软件开发过程出现的系统及功能错误,具体包含以下内容:软件开发前期未进行充分的调研或未完全理解相关要求,导致开发的软件出现一些功能性错误;未将外部环境因素考虑在内,引发系统错误.例如,调用子程序出现错误、操作系统及数据库接口出现错误等;静态与动态数据定义混淆,数据结构、算术运算以及程序定义出现偏差;编写代码时全局与局部变量未做明确区分,一些变量名和系统保留关键字名相同,或粗心大意导致编写的语法错误等.

2软件测试在软件开发中的应用

软件测试贯穿软件开发的整个过程,为保证软件后期的正常运行奠定坚实的基础,因此,加强软件测试应用方面的研究,进而缩短软件开发周期,提高软件开发效率.

1)应用在软件需求分析环节.对软件进行需求分析,软件测试人员需对工作量、软件测试风险认真的评估,仔细考虑软件测试的可行性等,以确保软件的开发周期、花费费用以及软件功能满足用户需求.软件测试人员通过分析需求的不同内容,就出现的问题与用户进行协商,为后期的软件测试工作创造良好条件.

2)应用在软件设计环节.软件设计环节是软件开发工作得以顺利进行的重要保障,如软件系统设计缺乏合理性,容易引起软件开发时边界问题的出现,导致软件扩展性较弱,甚至软件开发工作的失败.

软件系统设计时测试人员不仅要掌握设计模型,对设计模型的风险进行评估,而且还要进行测试计划的编写.另外,为保证测试设计的合理性与稳定性,避免后期出现不必要的变更,测试人员工作时应保证系统结构质量.针对具有特殊要求的业务可通过创建技术边界实现,以提高软件系统的不可替代性及可持续性.

除此之外,测试人员还应熟悉和掌握软件产品的运行环境,积极参与到软件不同模块、数据库结构等讨论中,对软件设计过程中存在的问题进行评估,重点把握测试环节存在的重点、难点环节.同时,还需掌握软件产品设计的性能以及软件不同模块接口问题,为后期的测试工作奠定坚实的基础.

3)应用在软件编写环节.编写软件代码时测试人员需参与到冻结报告、编写测试用例以及单元测试工作之中,尤其应将测试用例的编写当作重要工作来抓.一般情况下,对软件单元功能的测试软件开发人员可以完成,但自动化测试脚本、测试用例等仍需要测试人员提供支持,因此,测试人员应按照软件开发要求,切实做好软件编写环节上的测试工作.4)应用在软件测试环节.对软件进行测试时,测试人员主要负责软件质量报告的发布、软件缺陷的发现及检查、测试用例的更新等工作,该环节是软件测试应用在软件开发工作积极重要的环节,涉及系统测试、确认测试以及集成测试等测试内容,因此,测试时应严格依据测试用例实施.通过上述测试后软件能实现基本的功能,不过针对一些特殊用例,还需根据实际情况进行自由测试,最大限度的发现软件存在的缺陷.另外,为保证软件正常运行,如没有测试用例覆盖新发现的缺陷时需及时更新测试用例.除此之外,还需跟踪软件缺陷,尤其对于开展的新项目而言,应按照新报、确认、重现、修复、验证、关闭缺陷等流程实施.


5)应用在软件运行维护环节.软件运行时测试人员主要负责测试用例的重新组合、解决客户提出的问题、帮助客户进行测试的验收等工作,尤其帮助客户验收测试是重要工作,而解决客户提出的问题为关键,因此测试人员对客户提出的问题应认真对待,即从客户的角度出发,了解其真正关心的问题.同时,认真分析前期测试未能检查出软件问题的原因.另外,软件运行维护阶段,应根据需要及时的更新、组织一些新的测试用例,以弥补未设计测试用例的出现的问题.

综上所述,软件测试是软件开发不可或缺的关键环节,软件测试人员应根据软件开发实际需要,切实做好不同环节的测试工作.例如,利用动态方法测试的同时,配合使用静态测试方法,尽量通过测试找出软件开发过程中存在的各种问题,在满足软件功能要求的基础上,保证软件工作的稳定性.

3总结

软件测试能及时发现软件自身存在的问题,对保证后期软件稳定的运行具有重要意义.为此,测试人员应根据软件的功能需求,不断总结软件测试经验,进而制定合理的软件测试计划,并采用高效的测试方法,提高软件测试效率,在满足客户需求的前提下,确保软件的最终质量.