浅谈软件测试技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅谈软件测试技术
作者:崔妍
来源:《数字技术与应用》2013年第10期
摘要:本文从分析软件测试的概述出发,描述了软件测试的方法:动态测试和静态测试。并详细的阐述了应该在何种情况和要求下合理的使用黑盒测试与白盒测试,概述了软件测试的层次性,测试的步骤分为:模块测试、综合测试、确认测试以及系统测试。
关键词:软件测试技术黑盒测试白盒测试测试步骤
中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2013)10-0223-01
1 引言
随着经济的发展和计算机技术的不断成熟,计算机已经升入到人们生活中的各个领域,为人们的生活带来极大的影响,推动了社会的发展,然而软件是计算机的灵魂,发挥着无可替代的作用,软件出现错误可能会带来很大的经济损失,甚至可以威胁到人们的生命安危。软件的开发周期包括问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试以及维护等八个阶段,每个阶段都有不同的任务,可以看出前五个阶段是为了编码做铺垫的,然而测试与编程是相辅相成的,是两个互不的阶段,软件的测试对软件是否能够投入使用起着决定性作用。
2 软件测试的概述
测试是为了找到程序中存在的错误而存在的,在表面看来,软件测试的目的与软件工程所有其他阶段的目的都相反。软件工程的其他阶段都是“建设性”的,然而在测试阶段,测试人员却努力设计出一系列测试方案,目的是为了“破坏”已经建造好的软件系统——竭力证明程序中存在错误,不能按照预定要求正确工作。当然,这只是表面现象,暴露问题并不是软件测试的最终目的,而是要完善、弥补和更改,软件中可能存在的不足、错误与漏洞,其根本目的是尽可能多的发现并排除软件中潜藏的错误,最终让用户得到一个可靠的、高质量、高性能的软件。软件测试提高了软件的质量和软件的可靠性。
3 软件测试的方法
目前,动态测试法和静态测试法成为软件测试的主要方法与手段。从整体上,软件测试的方法分为:动态测试方法与静态测试方法。通过人员讨论、分析或检查程序代码的结构、逻辑以及语法等方式,而不是运行待检测的程序的方式,进行的测试成为静态测试。因此,静态测试法是通过人工的对软件的需求说明书、概要设计文档以及程序源代码进行分析,找出软件中存在的不足,譬如,通过静态测试可以发现程序中的结构不合理、逻辑混乱、参数使用不合理、指针指向有误等等一系列问题,以提高软件的质量。通过在计算机上执行待测试的软件程
序来发现软件中存在错误的方法,成为动态测试方法,动态测试方法通过设计、选择合理的测试用例,再执行程序,查看其结果是否合理来对软件进行测试,同时还可以检测出程序的性能,譬如,通过运行程序可以得知程序的运行效率、精确度以及可靠性等性能。这种测试不但可以有效的提高软件的功能,而且还有利于提高软件的综合性能。因此,测试人员主要会采取动态测试方法对软件进行测试。动态测试又分为黑盒测试和白盒测试。
3.1 黑盒测试
黑盒测试主要是对软件的功能进行测试,可以选择合理的测试用例来对软件的每个功能模块是否能够达到要求进行测试,因此,黑盒测试不需要了解软件源程序的结构与逻辑控制,只需要按照需求规格说明书中的要求进行功能检验,查看是否有相应的信息输出,若有检验输出的结果是否与预期结果相符合。正因为黑盒测试仅仅对软件的功能模块进行测试,所以黑盒测试也称为功能测试。黑盒测试包括4种测试的方法,其中含有:等价分类法、边界值分析法、错误猜测法和因果图法。
3.2 白盒测试
白盒测试是针对于软件的内部结构和逻辑控制是否符合需求规格说明书中的要求而进行的测试手段。白盒测试的从业者需要掌握一定的编程技术,因为白盒测试不仅是要运行程序,而且要对程序中的结构与逻辑控制有一定的了解,这样才能保证白盒测试的正常实施,因此白盒测试又被称为软件结构测试。白盒测试是对程序中的数据流和逻辑控制按照需求规格说明书进行一步一步的测试,检测程序中的每一个逻辑控制都可以正常的工作。白盒测试的方法有:逻辑覆盖法、路径覆盖法以及循环覆盖法。
4 软件测试的层次性
与软件的开发类似,软件的测试也具有一定的层次性与条理性,后一个环节是在前一个环节完成基础上进行的,软件测试含有4个层次,分别为:模块测试、综合测试、确认测试和系统测试。
4.1 模块测试
模块测试,又称为单元测试,是指将软件中的各个功能模块进行拆分,分成多个独立的功能模块,然后,分别对这些功能模块进行独立的测试方法,以保证每个功能模块都能够正常运行。目前,大都选用白盒测试技术中的路径覆盖法来进行模块测试,以确保做到测试用例完全覆盖可能想到的数据范围,并最大限度的发现其中的错误,路径覆盖法设计测试用例的步骤为:第一,导出程序图;第二,计算环形复杂度;第三,确定基本路径;第四,生成测试用例等4个步骤。
4.2 综合测试
综合测试也称为集成测试,是在单元测试之后,要把模块集成在一起形成完整的软件包,将各个分散的功能模块整合在一起进行的测试。在综合测试过程中常常采用黑盒测试技术来进行软件测试。但是,为了最大范围的覆盖控制路径,也会需要采用白盒测试技术中的路径覆盖法来进行测试。综合测试的目的是对各个模块集成时所用接口是否存在问题进行的测试,譬如:一个模块对另一个模块可能由于疏忽而造成的有害影响,把子功能组合起来可能不产生预期的主功能,个别看来是可以接受的误差可能积累到不能接受的程度,全程数据结构可能存在问题等。
4.3 确认测试
确认测试分为Alpha测试和Beta测试,可能还包括第三方测试,确认测试的目的是向用户展示软件可以达到预定的要求并相应实现,经过单元测试和综合测试之后,已经解决了一定的问题,并把所有的功能模块集成一个整体的软件,进而需要进行验证软件的有效性,即测试软件是否符合需求规格说明书中的功能和性能标准。它的任务是验证软件的有效性,是在模拟环境下,使用黑盒测试技术,验证待测软件是否满足需求规格说明书所写的需求。
4.4 系统测试
系统测试是软件测试工作中最后的环节,经过单元测试、综合测试和系统测试之后,要将软件部署到相应的服务器与用户的机器上,进行真实环境的测试,系统测试主要针对于软件的可移植性、跨平台性以及兼容性进行综合的验证,确保软件在真实的运行环境中与需求规格说明书中的需求保持一致,不但要对软件程序进行更改,同时还要考虑到软件所依赖的硬件环境,对于存在的不足和错误,提出最佳的解决方案,最终达到让用户得到令自己满意的软件的目的。
参考文献
[1]张靖,贲可荣,罗云锋.软件测试研究综述[J].计算机与数字工程,2008(10):78-93.
[2]黄爱明.国内软件测试现状及对策研究[J].中国管理信息化,2007(02):42-44.
[3]张焕琪.软件测试策略和测试方法的应用[J].应用研究,2010(02):56-64.
[4]周煜,周国庆,奚文骏.软件测试技术概述[J].中国测试技术,2005(05):56-75.