1软件工程中的软件测试
1.1软件测试的含义
软件测试根据用户的使用目的,将成功开发的软件进行相应的纠错动作,从而披露该软件的各种问题及缺失因素,促进研发人员进行相应的改进,从而达到完善软件的目的。
1.2软件测试的关键性阶段
主要有以下两个关键性的检测阶段。第一阶段是软件开发过程中各主要单元模块完成后进行测试。这一阶段测试可以将缺陷控制在最小单元模块内,给研发人员最快的测试反馈,促使其完善单元模块的功能,达到用户的使用要求;第二阶段测试是软件系统全部完成后,进行全方位的综合测试,查找系统在使用过程中可能存在的问题。此时,需要根据系统要实现的功能进行多种测试工具的应用,以其找到系统不符合要求的功能或性能瑕疵。
1.3软件工程中软件测试的方法
对软件工程进行软件测试时,不同软件可以运用不同的测试方法。现阶段,主要以软件测试在测试过程中是否需要将程序进行完全运行来判断测试方法,不需要系统程序运行就能完成测试的方法称为静态方法;需要系统时时传送相应数据,并通过相应程序检测系统是否达到用户的期望值,是否存在运行逻辑上的问题和算法上的缺陷等的测试方法称为动态方法。目前,静态测试方法应用较广的有静态排演法、软件检查法和软件审查法。随着软件测试方法的不断创新和完善,新兴的测试方法如静态自动分析、分析模型等方法不断得到应用;动态测试方法随着精细化测试进程的深入逐渐细分为单元测试方法、集成测试方法、系统测试方法。这些测试方法相较于静态测试方法,具有范围广、测试成功率高、内容覆盖面大、应用程度高等特点。如白盒测试、代码覆盖测试等。
2软件测试在软件工程中的作用分析
2.1软件工程项目需要软件测试进行全方位的辅助管理
所谓软件工程项目就是将用户的要求进行立项管理,通过建立项目组、研究用户的使用目标来确立项目目标,对目标现状进行系统研究与分析、总体目标细分阶段性目标以及规划项目总体方案等,将软件开发过程建立在项目管理过程中。在这一过程中,各阶段性成果都需要软件测试来校验其可行性,从而辅助软件工程项目步入更完善的项目管理中。首先,软件工程项目需要精细化项目管理和集中项目管理两者协调统一。因此,需要设立软件测试机构,能够对项目细分的各阶段、各模块进行软件测试。其次,项目组人员组成和责任落实要依照规章制度实施。要体现软件测试的重要性和实际意义,测试机构负责人为项目组组长的最佳人选。其组员为各项目负责人和其他测试人员组成。软件测试结果必须立即反馈到软件研发人员、程序员及系统分析人员等相关人员手中,以期促进其团结协作,将软件各部分呈现出的问题解决。最终满足用户的使用要求,实现软件设计的目标。可见,软件测试的辅助作用,对于软件工程项目的精细化管理、软件相关技术的综合管理等至关重要。
2.2软件工程项目实施反促软件测试发展
研发一个新的软件系统时,其核心内容包括目标确定、框架设计、分支设计和编码应用等,这些核心内容均需要软件测试来实现其统一性和兼容性。系统目标是软件测试的最终目的,软件测试需要围绕系统目标进行缺陷的发现和反馈,从而实现各阶段测试的统一性和完整性,从而促进系统的协调和完善。经过软件测试的系统,必须保证达到项目目标,且在长时间运行下无重大bug。从这一过程来看,软件测试是在软件工程项目实施中得以发展的。软件测试机构并不是真正意义上的独立,其“独立”仅是功能上的独立。实际上,在进行软件工程项目实施的整个过程中,无论是整体设计还是精细化管理,都需要软件测试参与其中,以测试角度对软件工程项目的设计和实施进行指导和辅助,从而纠正一些设计上的错误和细节上的缺陷。这种参与的直接性促进软件测试必须紧跟项目研发现状,才能提出及时有效的参考意见,促进项目顺利开发。软件编码规范是软件研发团队必须规范执行的,而这种规范的编码刚是软件测试机构的首要任务,制定规范要严肃,执行规范要严格,才能给用户呈现出高质量的软件产品。
2.3软件测试原则
软件测试的原则是在其测试的基本目的和要求下产生的,因此,在进行软件测试时,必须注意其原则性。(1)坚持用户使用目的,坚持项目总体目标和阶段性目标的实现原则;(2)测试“精细化”即细分分支、单元模块、阶段性成果、系统全面测试等随时进行;(3)测试时间要越早越好,频率越高越好;(4)测试中逻辑性检测和算法检测要注重;(5)测试要结合数据检测进行;(6)保证测试的严肃性;(7)测试坚持第三方进行原则;(8)不合理条件值都要进行测试;(9)测试过程、方法、用便、结果、完善等都要记录在案,便于故障定位和日常维护。
3自动化软件测试技术分析
随着智能化技术和自动化技术的不断深入应用,在软件测试中,自动化软件测试技术得到创新和发展,并在软件开发中应用得越来越广泛。所以,人们将各种自动测试的效果进行评估,将成功案例进行相似引用,来判断检测的可行性。最初的自动化测试具有较严格的针对性,运用特定的测试原则和测试方法,将统计指标运用其中,从而得到测试结果,并对其进行全面评估,从而得出自动化测试的严密性。随着自动化测试的不断深入推进和创新,其测试准则和自动测试技术越来越成熟,逐渐过渡到自动测试模型化阶段。逐渐形成自动测试的等级制度,使得自动软件测试技术成为测试控制能力高低优劣的一个重要判断依据。
4结语
总之,软件测试已经发展成为软件工程中一个必不可少的重要组成部分,软件测试不仅能够对软件的质量进行一个系统的评价,而且是目前确保软件质量的主要途径之一。并实现软件产品整体质量与企业经济效益的整体提高,进而提升软件企业的核心竞争力。。
作者:栾新亮 单位:鄂尔多斯市特种设备检验所