摘要:在分析软件单元测试问题的基础上,本文对基于LDRA Testbed的DSP软件单元测试方法展开了分析,介绍了相应的测试工具和测试过程,为关注这一话题的人们提供参考。
关键词:LDRA Testbed DSP软件单元测试
引言:
随着技术的发展,产品软件不再只是硬件的附属,逐渐形成了一个独立的系统。软件的可靠性直接影响整个系统的可靠,成为产品成败的关键条件。为提高软件质量,软件测试就变得非常重要。软件单元测试的目的是检查每个软件单元能否正确地实现需求、设计中的功能、性能、接口和其他设计约束等要求,发现单元内可能存在的各种错误。仅靠软件测试人员人工统计分析的测试方法已经不能有效满足对软件产品准确有效测试的要求,因而在软件的测试过程中有效利用测试工具显得尤为重要。LDRA Testbed是一个可有效应用于软件开发和测试阶段的软件测试工具,它同时具有静态测试和动态测试的功能,适用于软件测试的各个阶段。
1.软件单元测试概述
所谓的软件单元测试,就是对软件基本组成单元进行测试,测试对象为模块,即软件设计中的最小单位,拥有明确的功能和唯一标识,可以实现特定算法,获得局部数据,能与其他模块和外界相互获取数据,被其他模块调用。在单元测试方面,需要采用静态测试、动态测试、单元输入输出测试等测试,能够实现多个模块的同时测试,并完成错误定位。在实际测试时,需要制定测试计划和创建相应环境,完成最小运行调度系统的构造,以便对上一级模块进行模拟,同时对单元函数接口和生成测试数据的过程进行模拟。通过将数据传输给被测模块,按相关结果进行“主程序”打印,可以确定软件单元功能、接口是否符合设计要求,能否进行输入和运行中错误的正确处理。通过对测试中发现的问题进行修改,则能更好的完成软件单元设计。
2.单元测试的要求:
1)对软件需求设计文档规定的软件单元的功能、性能、接口等应逐项进行测试;
2)每个软件特性应至少被一个正常测试用例和一个被认可的异常测试用例覆盖;
3)测试用例的输入应至少包含有效数值、无效数值和边界数据值;
4)在对软件单元进行动态测试之前,一般应对软件单元的源代码进行静态测试;
5)语句覆盖率达到100%;
6)分支覆盖率要达到100%;
7)对输出数据及其格式进行测试等。
软件单元测试的测试方法有静态测试、白盒测试、黑盒测试、性能测试等等。单元测试应该从程序内部出发,一般采用白盒测试技术。由于黑盒测试技术关注的是单元的输入输出,可以辅助白盒测试,共同完成好单元测试。单元测试应尽早测试,它可以进行较为全面、细致的测试,有利于错误定位,便于纠错。单元测试提供了同时测试多个模块的机会,测试过程可以并行进行。
3.基于LDRA Testbed的DSP软件单元测试
3.1测试工具
在对DSP软件单元进行测试时,需要采用LDRA Testbed这种测试工具。相较于Logiscope、AsmTester等工具,LDRA Testbed不仅可用于实现软件单元静态测试,同时也能提供动态测试环境,满足单元测试在不同阶段的测试需求。在LDRA Testbed中,包含各种测试模块。
期刊文章分类查询,尽在期刊图书馆利用源代码的语法分析功能,LDRA Testbed可进行静态测试分析,如编码规则验证、程序质量评估等。利用其动态测试模块,可以对软件单元进行运行,并完成运行状态记录,得到测试覆盖率报告。而在该模块中,包含修正条件、语句覆盖等多种可度量覆盖标准,可以确保测试覆盖率达到规定要求。采用LDRA Testbed的单元测试模块,可以利用TBrun子程序对DSP软件单元进行测试,完成被测单元输入、输出数据流的分析,获得接口函数调用、参数、返回值等各种细节信息,实现单元测试结果的自动化分析。利用该模块,在命令行界面或图形界面上,可以完成测试序列的自动创建,通过黑盒、白盒等测试查找未被覆盖的单元,提出相应的改进方案。针对测试过程,采用该模块可以完成代码变更自动侦测,并对数据结果进行存储,完成代码回归测试和分析,因此可以使测试效率和有效性得到保证。
3.2测试过程
3.2.1静态测试
在DSP软件单元测试中,首先需要完成静态测试。具体来讲,就是先通过静态分析,利用LDRA Testbed生成静态函数调用结果,反映函数调用层次。在结果中,可以清楚观察到函数与函数间的调用关系,同时也能结合各函数扇入/扇出数对关系的复杂度进行反映。根据用户设定的编码规则集,可分析单元源代码,确定DSP软件中是否存在违反规则的单元。采用LDRA Testbed对代码清晰性、可测试性、复杂度等进行分析,可以得到相应的质量和度量报告。在实际测试过程中,为方便进行违反规则单元的辨识,可以自己规定报告编制规则,也可以采用国军标5369等行业认可标准,以便对DSP软件单元进行快速修正,促使软件开发时间得到节省。
3.2.2动态测试
针对DSP软件,在单元动态测试阶段需要完成相应动态测试环境配置。首先,需要对Testbed编译器进行修改,进行TiCode Composer编译器的选择。其次,需进行仿真模拟器的调用,进行CCStudio的正确使用。在DSP软件单元测试中采用LDRA Testbed无法提供直接的动态测试,所以需要采用CCStudio联协方式完成动态测试环境搭建,提供相应的目标机和操作系统。采用该方法,需要完成目标开发板的合理选择,利用编译得到的测试驱动程序进行运行过程仿真。再者,需要利用具体编译链接信息对Testbed动态测试命令进行修正,如针对F28xx系列的DSP软件,编译时需要采用cl2000.exe,链接时需要采用lnk2000.exe。完成环境配置后,需要进行测试用例设置,对动态测试模块进行运行。在测试过程中,各函数都能的得到代码覆盖,结合覆盖率信息,可以确定测试不完全的软件单元。
3.2.3单元测试
结合静态分析和动态测试结果,可以利用TBrun进行DSP软件单元测试。首先,需要像动态测试过程一样,进行相应测试环境的。而采用TBrun单元测试模块,需要进行隔离测试,确定单元是否独立。在测试过程中,需要先完成序列的创建,其中需包含被测集合内的全部文件。为此,还要对各文件包含的函数进行分析,并在界面上一一罗列,然后对各函数进行隔离测试。其次,需要进行黑盒、白盒测试。采用二者相结合的方式,可以完成DSP软件单元的充分测试。结合软件需求文档,并确认程序内部结构后,可以进行函数设置,即确定函数输入、输出变量,同时确定函数期望值。通过运行用例,可获得软件结构覆盖率信息,并得到测试结果。最后,通过将测试用例文件导出,可进行回归测试。而测试用例文件为tcf文件,其中包含用例执行信息,因此仅需要对保存测试用例的重新运行就能进行代码回归测试,并获得相应的分析报告。
结论
通过研究可以发现,在DSP软件单元测试方面,采用LDRA Testbed可以提供静态测试、动态测试和单元测试功能,设计人员仅需要完成测试用例编写即可完成整个测试,并且能够从测试报告中获得详细的信息,确定无法覆盖的单元,所以能够使DSP软件设计和测试效率得到提高。
参考文献:
[1]陈站华.软件单元测试[J].无线电通信技术,2003(05):50-51.
[2]丰励.单元测试技术研究与应用[D].华中师范大学,2008.
论文作者:霍恩广
论文发表刊物:《基层建设》2019年第9期
论文发表时间:2019/8/1
标签:测试论文; 软件论文; 单元论文; 单元测试论文; 模块论文; 函数论文; 静态论文; 《基层建设》2019年第9期论文;