软件工程中软件测试的应用

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

【摘 要】软件测试是软件工程的一个重要阶段,也是保证软件质量的重要手段.在软件开发过程中,人们已经会使用多种保证软件质量的方法来开发软件,但是在工作中的错误是难免的,这样开发出来的产品或者系统或多或少的会隐藏着许多错误和缺陷,所以软件测试是软件开发中必不可少的一项任重道远的环节.本文通过介绍软件工程中的软件测试,提出了以软件测试推动软件工程项目实施的管理方法和过程,通过充分利用测试的相关手段,加强软件开发的质量保证,强调的是每个过程的每一个环节都要进行测试,保证系统在每个阶段可以控制.

【关 键 词】软件工程;软件测试;应用研究

一、引言

软件测试是对软件工程中对软件开发完成后最终质量的有力保障.它不仅体现在及时有效的发现软件系统中隐藏的错误,还进一步体现借助有效测试技术以及方法对软件产品进行测试后,可以大大提高软件产品质量,树立产品信心.另一方面,还能通过软件测试对软件系统出错的可能性以及错误可能导致后果的严重程度进行准确的估量,进而有效将存在错误的几率限制于可以接受的程度之内.特别是在涉及到高安全性、高可靠性的软件系统方面,有效增强了软件质量的可靠性,以及增大相关人员对开发软件产品的信心效力.

二、软件工程中的软件测试

1.软件工程中软件测试的介绍

由于开发的观点各异,因此对软件测试的理解也存在差异.但是软件测试所需达到的目的都强调对软件正确性的保障.

在软件工程中,软件测试的目的就是为了达到对软件的需求分许、系统设计和程序源代码进行最后的复查检测,发现软件执行程序错误的过程,以此保证软件正式投入行业使用前确保软件质量.软件测试在软件生存期中有两个主要的阶段:一个是在编写出每一个模块之后就对其进行测试,亦可称为单元测试或者模块测试.这一阶段主要是对某模块的程序段进行测试或者对其体现的单一功能进行测试.第二个阶段是对软件系统进行的各种综合测试.利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至可以根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估.执行测试用例后,需要跟踪故障,以确保开发的产品适合需求.

2.软件工程中软件测试的目标和方法


软件测试在软件工程中占有决定性作用,其测试的主要目标包括两个内容:一是有效增强软件的总体质量;二是进一步验证和确认软件正确运行.除此之外,测试主要目标还包括:软件的性能测试、可靠性测试以及安全测试.

软件测试方法根据是否要运行程序可划分为两大类,即静态方法和动态方法.

静态方法不执行程序,只通过分析源程序代码发现和修正程序结构上的错误或数据存取中的差错.静态分析方法中,主要有下述几种:软件审查、静态排演和检查.近来的研究中,还有一些较新的静态分析方法,例如基于数据流的程序静态自动分析,基于有限状态机的验证和分析模型等.

动态方法使用测试数据和追踪程序执行过程的测试工具,通过执行程序检查程序的运行状态与结果是否正确,来发现程序中存在的逻辑错误和算法错误.动态解析进一步分为单元测试,集成测试,系统测试.相比静态分析方法,动态软件测试方法的内容更加广泛,几乎所有广为人知的传统测试方法都是动态的软件测试方法.例如代码覆盖测试、白盒测试、黑盒测试等.

3.软件测试中把握的角度

立场不同,测试目的各异,一般分为两大方面:一个为用户角度,一个是软件开发者角度.

从用户角度来说,对于是否接受该软件的度量,用户总是希望通过软件的测试尽可能的发现软件中的隐蔽错误和缺陷.

从软件开发者角度来说,为了增强用户对软件质量的认可,验证该软件已正确地实现了用户的要求,他们则希望测试那些成为在软件产品中没有错误的过程.

软件测试时通常以用户的角度思考,以揭露程序中存在的错误为确定目标.以此找出软件中隐藏的各种错误和缺陷就是通过最优化的时间和人力来进行.

三、软件工程化实施中软件测试的推动

1.软件测试推动软件工程化实施的步骤

通过建立工程化项目组、组织基本目标的确定、调研现状、确定阶段性目标和总体方案来实施控制软件工程化,这里的每一过程都需要借助软件测试工作来进行辅助.

首先,为了最好的进行集中管理项目,更好的把单位内部各个部门的软件项目在软件测试机构进行测试.其次,作为单位内部的第三方机构,可以严格实施相关制度.因此软件测试机构的负责人来担任软件工程化项目组的组长,项目组织中主要负责软件工程具体实施的成员为其他测试人员和各分项目的负责人.

通过找出软件产品或软件系统中存在的问题以及促进系统分析人员、设计人员和程序员迅速的把问题解决,满足软件产品在每个方面事先设计或定义的要求,最终使软件系统满足用户和软件企业自身的需求,进而达到软件测试的基本目标.其中,软件工程化组织近期目标同软件测试的基本目标是协同的.软件工程化组织的远期目标则是开展本单位软件研制相关的能力认证工作和相关技术的跟踪和交流,全面推动单位的软件工程化.

由于测试过程贯穿于软件过程的整个生命周期,承担着对开发过程中阶段性成果和最终产品进行验证的任务,因此,项目伊始,就设定测试目标、制定测试计划等进程,进程是和总体方案和阶段性目标的制定紧密联系在一起的.

对于试点项目进度的跟踪,项目开发过程中数据的采集,要不断的跟踪指导及纠正,以此来保证项目严格按照详细设计文档的过程进行开发,来进行有效的实施控制.

2.软件工程化的实施对软件测试的推动

在进行需求分析、概要设计、详细设计和编码时,都可以依次借助严格的系统测试、部件测试、单元测试以及制定严格的编码规则来推进这一系列的测试活动,这些也是软件工程化实施的核心过程.系统需求分析是系统测试的测试依据,要求测试机构对软件需求文档提出明确的要求,从而保证需求阶段工作的完备性.其目的是检查系统作为一个整体在一定的软件、硬件、网络等环境下是否可以正常的运行,并且检验需求分析中规定的功能和性能要求是否达到了预定目标.

为了顺利开展软件的部件测试和单元测试,要求测试机构充分掌握软件的概要设计和详细设计的同时,参与设计,并对设计进行评审,找出设计的缺陷且加以完善,在设计过程中发挥积极的推动作用.所以,概要设计是测试部门开展部件测试的依据,详细设计是开展单元测试的基础.

软件开发人员必须严格按照规范进行编码,因此,制定软件编码规范是软件测试机构要完成的最基本的工作,只有这样才能开发出高质量的产品.

3.软件测试应把握的原则

根据软件测试目的,在软件工程中软件测试要把握以下几个原则:

1.谨记“尽早和不断的进行软件测试”贯穿于整个开发过程;

2.测试中的群集现象要特别注意;

3.测试用例要包含输入数据和与输入数据相对应的预期输出结果;

4.认真执行测试,测试随意性要完全禁止;

5.程序员不要进行测试自己设计的程序;

6.设计测试用例时也要着重不合理的输入条件;

7.妥善的保管测试计划、测试用例、出错统计和分析报告等,为日后的软件维护提供便捷的怎么写作.

四、自动化软件测试技术介绍

在各种测试活动中越来越多的应用自动测试方法和技术,因此,人们逐渐引入了自动测试后的测试效果.自动化测试研究中,针对性地引入了不同的测试准则和测试策略,它们被应用于指导测试的自动化过程以及对测试的结果进行评估.最初的测试标准主要采用了传统测试方法中的统计指标,例如自动测试对测试需求的覆盖,程序指令执行、分支执行和路径执行等的覆盖率情况.有了完整的测试标准和评估准则,此时的自动测试才是严密的.软件工程在引入了能力成熟度模型后,测试业界随之而指定了对应的测试成熟度模型.而随着自动测试技术的研究和发展,也被对应到了不同的自动测试等级,成为测试控制能力好坏的一个衡量依据.

五、结语

伴随着软件工程的发展,对系统化的软件测试技术和方法的研究也随之不断地发展.软件测试从最初的静态分析,动态调试等简单的个体查错行为逐渐发展成为形式化、系统化的工程行为.随着软件系统规模的日益扩大,以及应用领域的不断拓展,对软件系统的测试也变得更加困难和复杂.软件测试技术的研究需要有革新性的发展.自动化软件测试技术正是在这样的背景下受到了密切的关注,成为近年来软件测试的重要研究方向.