2013年06月27日 16:10供稿中心:兆隆教育
描述软件测试的方法的应用,阐释了软件测试方法的重要作用,以及软件测试的基本流程,并对软件测试分析的重要性进行研究。
现阶段,随着信息技术的迅速发展,软件的发展规模大幅提高。软件行业最为关心的主要问题是如何保证和提高软件的质量。软件的失效极大程度的带来相应的经济损失,甚至危及生命财产的安全。因此,软件测试的地位得到了前所未有的提高。进而,软件测试技术成为软件开发过程的重要部分,它可以确认一个程序的品质及性能是否符合开发前提出的某些需求。然而,软件测试的方法分析在整个测试过程中占据了很重要的位置。软件测试分析完成了,可以在测试前期就发现一些项目设计考虑不足的地方,降低了项目的风险,提高了测试效率,节约了测试成本。
1、软件测试
一般在软件投入使用前,应用合适的测试工具依据合理的测试方案和流程进行软件的功能和性能测试,根据具体需求编写不同功能的测试工具和方法,用来设计和维护测试系统,分析和评估测试方案中所有可能出现问题的过程,叫做软件测试。其目的是为了发现错误而进行的程序执行,依据软件开发各阶段的规格说明和程序的内部结构,设计出合理的测试用例,并利用这些测试用例运行程序,发现程序中的错误,进而跟踪故障,以确保所开发的软件适合用户需求。
2、软件测试的方法
软件测试是一项复杂的系统工程,从不同的角度考虑可以有不同的划分方法,这是为了明确软件测试的流程,进一步了解软件测试具体要完成哪些工作,尽可能做到全面测试。
2.1 按照关注软件结构与算法的角度
(1)黑盒测试。黑盒测试是建立在软件需求和功能性基础上的测试,又称为功能测试。用来检测软件中每个功能是否正常运行。在测试过程中,黑盒测试方法中,将程序假设为一个不能打开的黑盒子,完全不必考虑程序内部结构和内部特性,直接进行程序接口的测试,只检测程序功能能否在需求规格说明书的规定下正常运行,程序能否在接收正确输入信息后导出正确的输出信息,从而保证数据及文件等外部信息的完整性。黑盒测试方法侧重于程序外部结构,不是内部逻辑结构,它主要面向软件界面和功能方面的测试。
(2)白盒测试。白盒测试是基于软件整体代码、路径、分支及条件的测试,又称为结构测试,它是遵循程序内部结构的测试,主要用来检测产品内部操作是否依据设计规格说明书的规定正常进行,检验程序中的每条路径是否按预定进行正确工作。白盒测试方法中,将程序假设为一个打开的白盒子,依据程序内部逻辑结构中的相应信息,设计确定正确的测试用例,测试程序中的所有逻辑路径,随机检查程序的状态,检测实际的状态与预期状态一致性。白盒测试主要面向软件验证方面。
黑盒测试和白盒测试两者不能相互替代,而应相辅相成,互为补充,在测试的不同阶段根据发现不同类型的错误而灵活使用。
2.2 按照测试的不同阶段的角度
软件测试的整个流程通常划分为五个阶段,即单元测试、集成测试、系统测试、验收测试、回归测试。
(1)单元测试。单元测试是检测和验证软件中的最基本组成单位的过程,主要是对软件中最小可测试单位正确性的检测。在单元测试中,程序员首先要清楚内部程序设计和编码的基本细节,并且需要开发出相应的测试驱动模块和桩模块来辅助进行单元测试。单元测试是在软件开发过程中的最低级别的测试活动,它将独立的软件单元与程序的其他部分相隔离后进行测试。
(2)集成测试。集成测试以单元测试为基础进行测试,它依据软件设计的基本要求将所有的模块组装成为不同类别的子系统,之后集成进行测试。根据测试方案,各个模块被组装成更大的系统,并在运行系统的过程中,检测分析所组装的系统是否正确,各个组件之间是否合理。
(3)系统测试。系统测试是整合这些已被集合确认的软件、硬件、网络等元素,进行信息系统的各种组装测试,以及确认测试的过程,以此来验证软件系统的正确性和系统的性能能否满足软件的需求规格,并且找出与需求规格不符之处,从而提出更加完善的方案。系统测试的过程,主要是在发现问题后,通过系统调试找出错误原因和出错位置,然后进行改正的过程。
(4)验收测试。验收测试是系统开发生命周期中的一个阶段,主要测试该软件系统是否能够满足软件需求规格或用户所规定需求。这也是软件投入使用前的最后一步测试,并且它是一种管理性和防御性控制。
(5)回归测试。回归测试主要应用在软件维护阶段的测试,在软件运行后进行的修改测试,用来检验是否正确修改了软件,是否达到预期目的,是否不影响软件其它功能的正确性。自动回归测试能大大降低系统测试、维护升级等阶段的成本。
3、软件测试方法分析
软件测试分析设计,最主要的目的是提前软件测试工作的时间点,增强测试需求分析阶段的一系列活动。从软件分析设计阶段开始介入测试,这样便可尽早发现某些设计方面的不完整的方面,更早的修改设计,从而降低项目的成本。
一般来说,软件的测试成本会随着软件的逐步完善而相应提高。如果早期没有检查出软件的需求分析和设计阶段的某些错误,而是在编码阶段完成后,通过软件的测试检测出这些错位,而不得不通过更改软件设计来修复的话,那么软件的测试和开发的成本必然随之增大,软件如期交付的风险也相应提高。
现阶段,很多的软件测试工作是在编码期间或即将结束时才开始介入,实际上存在着前期投入不及时的问题。这样就没有足够的人力和精力做好软件测试的需求分析,多数会在连被测试对象都没有充分了解的情况下就开始进行测试,这种了解只能在测试过程中慢慢熟悉被测系统。这样,软件测试很可能无法在规定的时间内,测试的结果也会有些影响,软件就不能按时交付,成本随之增加。
综上所述,软件测试必须强调测试需求分析阶段的工作,只有搞清测试的初衷才能顺利的进行测试设计,清楚了解被测系统的运行环境,测试的设计才能更加真实的模拟被测对象运行的实际场景,营造出某些测试场景,会让软件测试工作实行的更加充分完备。
4、结束语
在计算机应用技术飞速发展的今天,软件质量的好坏直接影响着企业的发展进程,完整的测试不仅可以给软件质量进行一个正确的评价,而且是提高软件质量的重要方法之一。然而在软件测试过程中,所做的测试用例设计的合理性是由前期的测试分析所决定的,若前期准备的工作不足,后期的测试工作也就无法完全保证。因此,测试分析阶段是软件测试工作中必不可少关键环节。