【关键词】单元测试;软件测试;实践应用
软件测试有助于确保软件产品的质量,伴随当前应用于市场上各种软件的复杂程度加大,软件测试的环节也被越来越多人关注,而单元测试则是软件测试的第一项,对单元测试进行研究与探讨具有非常重要的意义。
1.单元测试简述
单元测试属于编码工作的重要组成内容,需要程序员执行和操作,而最终的受益者也是程序员。单元测试的应用对象为模块,即软件设计的最小单位,根据对文章的描述与设计,面向模块中所有重要控制路径进行测试,从而发现模块中存在的错误[1]。当前操作中程序员多采用白盒测试技术来进行单元测试,系统中则有多个模块能够并行展开测试工作。单元测试的作用是验证代码行为是否与程序员和市场所期望的一致,单元测试的存在,程序员才能借用其交付代码。选择单元测试的时机也非常重要,首先要对产品函数的框架进行编写,再对测试的函数进行编写,结合产品函数的功能再对测试用例和产品函数代码进行编写,任何一个功能的确定都要进行运行测试才能使用,这个过程中则要注意对试用例进行补充和完善。单元测试的特点主要包括验证行为的本质、设计行为、编写文档行为以及所具备的回归性。单元测试的任务主要为模块接口测试、局部数据结构的测试、模块边界条件的测试、模块独立执行通路的测试以及各条错误处理通路的测试[2]。
2.单元测试规程分析
在软件测试中应用单元测试,首先是进入条件,进入单元是必备的一个条件,而这些条件则为测试实施的基础,主要表现在以下几个层面:确保满足规定文档的要求,确保软件单元源程序正确通过汇编或编译,确保被测的软件单元被纳入到配置管理当中,提交版本为阶段最终确定的版本,确保满足要求的测试环境及测试工具[3]。其次是测试类型及对应的要求。比如代码审查,主要包括编制检查单,检查单应经过评审,对照检查单进行人工审查或在软件测试工具的辅助下完成审查。再如静态分析,主要包括:控制流程分析,通过软件测试工具,将程序的控制语句转化成相应的可视化控制图形,通过图形识别并检出程序中的缺陷和错误;数据流分析,通过软件测试工具,自动分析、识别并检出发生异常的数据;表达式分析,通过软件测试工具,自动分析被测软件的表达式,确定表达式是否满足其技术要求。最后是通过准则,单元测试的通过与否可以参考如下准则:功能与设计说明一致;性能达到软件设计指标;命名和编码符合规则;逻辑测试达到规定的覆盖率,若达不到规定指标,应在测试报告中给出合理解释;对发现的问题已进行修改并通过回归测试。
3.软件测试中应用单元测试的策略研究
软件测试策略和软件测试方法不同,软件测试方法指的是一种具体的对软件进行检验的手段,而测试策略则是针对不同的阶段应该选择怎样的测试方法,或者应该如何合理配置不同测试方法而制定的方案。在掌握了不同测试方法之后应该如何应用到具体的测试项目中就
需要制定相关策略,比如在单元测试中应该选择技术评审法,在集成阶段应该选择三明治法,在系统测试阶段应该选择场景法,在针对功能进行测试的时候应选择合适的黑盒测试方法制定相应的测试用例,在开展单元测试和集成测试时则应该选用白盒测试方法制定相应测试用例,测试策略的任务或者功能是指导测试工作顺利完成[4]。
3.1软件测试的分类
结合软件测试的方法进行区分,可以分成黑盒测试和白盒测试。如果静态测试指的是不实际运行被测试软件,而只是对测试软件的程序代码、界面或者文档等进行检查,然后发现其中错误的过程。主要包括代码测试、界面测试和文档测试。
期刊文章分类查询,尽在期刊图书馆代码测试主要是通过对代码的检查判断其是否满足规定标准和要求,界面测试则是对被测试软件的实际界面和需求中对于
界面的要求进行比较,文档测试主要是对用户手册和需求说明等进行检查,检验这些是否满足用户的实际需求。动态测试指的是实际运行被测试软件,通过测试数据的输入来判断实际输出结果和预期输出结果之间的差别。此外,如果根据测试阶段来划分,软件测试又可以分成单元测试、集成测试、确认测试和系统测试几种[5]。
3.2软件测试策略
这种测试是在相关人员掌握各种类型的测试方法以后,结合不同时间、具体任务的情境下所采用的测试方法,也可以是根据不同的组合来制定具体的测试方案,目前通常应用的是针对不同测试阶段简要分析单元测试的软件测试策略。
首先是单元测试阶段,这是指对软件的基本组成单位,如过程、模块来进行测试的过程,是一种动态化的测试方法,也可以为动态测试下最为基础的组成部分。应用单元测试来完成测试工作,就是要确保单位的正确合理性,结合软件内部程序设计及编码的情况,通过对测试驱动模块进行开发,再由软件操作程序人员完成。在单元测试阶段主要采用的测试方法应该是白盒测试方法,先静态检查代码,然后动态运行代码,检查被测试软件实际的运行结果。其次是集成测试阶段,它指的是软件系统进行的测试过程就是要对软件单位各个接口的正确性加以检查,确保组成系统的各个部分都完整。集成测试阶段应用的主要策略为自顶向下测试与自底向上测试的两种方法,具体要用到哪一种测试的方式则要结合实际的检测项目来制定具体计划,再通过单元模块或软件单元的形式集成系统,同时确保检验运行系统的情况,对其是否与相关要求标准相符进行诊断和判断,直到确保正确性。再者是确认测试阶段,单元测试阶段通常是用以确保软件局部的正确程度,而针对各个单元模块接口的问题通常无法解决。集成测试则能将独立模块进行连接,确保形成完整的程序,进而满足客户的合格需求。测试的具体步骤如下:在进行检测前要确定测试的实施准则,即需要达到哪些要求才能合格,测试过程中必须注意哪些问题等等,另外审核评价开发软件的配置情况,对其是否满足合格的要求予以检验。最后是系统测试的阶段,这属于综合性的测试范畴,要再次检查软件系统组成部分的情况,确保以往的检测结果都能再次得到证实,每一个部分都能合理集成,并从功能、配置、结构中都符合相关的测试标准。
举例分析单元测试在软件测试的应用:测试Grow函数,单元测试阶段的测试用例为设定输入数据和运行被测试的函数,再看其实际的输出是否与预期相符。Grow函数代码如下:
Void CMyClass::Grow(int years)
{ mAge+=years;
if(mAge<=10)
mPhase=“儿童”
else if(mAge<=20)
mPhase=“少年”;
else if(mAge<=45)
mPhase=“青年”;
else if(mAge<=60)
mPhase=“中年”;
else
mPhase=“老年”;}
4.结束语
综上所述,无论是国外或是国内对软件测试的研究与发展,都逐渐向前推进,目前我国应用的软件测试技术发展非常快,作为软件测试第一项的单元测试更是软件测试工作的基础与前提,也受到越来越多人的关注与推崇,于是单元测试技术得到更好更快地发展。在研发的过程中,要求相关技术人员更好地学习和掌握相关测试信息与技术,严格管理和科学配置测试的流程,真正提高单元测试的质量,确保单元测试的应用价值得到最大程度体现。
【参考文献】
[1]侯艳芳,楚书来.软件单元测试应用研究及案例分析[J].计算机光盘软件与应用,2012,11(4):51-52.
[2]董威.单元测试及测试工具的研究与应用[J].微型电脑应用,2018,2(5):67-68.
[3]江云松,勾英杰.两种混合型软件单元的测试方法[J].空间控制技术与应用,2017,3(3):99-100.
[4]黄爱明.基于软件测试的策略与测试方法应用分析[J].电脑知识与技术,2015,11(2):64-65.
[5]吴少君.软件测试策略和测试方法的应用[J].硅谷,2013,2(15):63-64.
论文作者:韦仲林, 刘俊阳,,李家伟
论文发表刊物:《科学与技术》2019年第23期
论文发表时间:2020/5/8