【文章摘要】
在软件的开发阶段,单元测试是确保代码质量的重要方法。因此,掌握基本的单元测试方法是对一个软件开发人员的基本要求。
本文基于作者的实际项目经历,介绍了一种采用得比较多的单元测试方法。
一、软件模块概述
在实际的软件系统中,各个模块之间的关系可以用错综复杂来形容。根据模块之间有无消息交互,可以将软件模块划分为以下四类。
第一类:独立模块。即该模块不接收其它模块发过来的消息,同时也不向其它模块发消息。
第二类:被动的单向消息模块。即该模块只接收其它模块发过来的消息,而不向其它模块发消息。
第三类:主动的单向消息模块。即该模块只向其它模块发消息,而不接收其它模块发过来的消息。
第四类:双向消息模块。即该模块既要接收其它模块发过来的消息,又要向其它模块发消息。
根据软件模块的不同种类,要“因地制宜”地采用不同的单元测试方法。本文介绍第四类软件模块的单元测试方法。
二、双向消息模块特点
一般而言,第四类(双向消息模块)的主要特点有如下几个:
第一,严格按照约定的协议与其它模块进行消息交互。程序执行成功与否,通过相关的协议字段就能够看得出来。
第二,要约定好消息事件号和消息序列号。这样做的目的是让该模块能够有条不紊地进行消息处理。
第三,对模块的程序执行效率的要求较高。如果接收一条消息之后,半天才给予回复,那么几乎没有哪个模块能够接受这样的“低效率”。
三、对双向消息模块进行单元测试
根据双向消息模块的特点,我们专门开发一个软件模块(简称测试程序)用于向该模块发消息。为了确保发送的消息的条数可控,我们将测试用例放到配置文件中,由测试程序负责读取、解析并发送。对双向消息模块进行单元测试的详细过程如图1所示:
图1对双向消息模块进行单元测试的详细过程
说明如下:
第一,在设置测试用例的时候,要尽量覆盖欲测试代码的所有流程。也就是说,要让所有的程序分支都会跑一遍。此外,正常和异常的测试用例都要设置。
第二,遇到发不通消息或程序的日志有异常,要马上修改有问题的代码或配置,然后重新运行程序。在刚开始测试的时候,可以每次只发送一条消息,看一下整个流程是否正确。之后可以考虑每次发多条消息(定义好消息事件号和消息序列号),并对被测模块的处理性能进行测试。
第三,在软件需求较多的时候,可以每完成一个或几个需求便进行单元测试,等已开发的功能确认无误之后再继续完成新的需求。
四、总结
在提交软件版本之前,对所开发模块进行单元测试和集成测试是每个开发人员必须要做的工作。只有自测充分了,软件版本的质量才能够有所提高。如果将程序的问题遗留到现场商用之后,那么此时修改所带来的费用或损失会大幅度地提高。因此,每个开发人员都应该养成对程序进行单元测试的好习惯。
本文介绍了对双向消息模块进行单元测试的具体流程,为相关软件开发工作的顺利开展提供了有益的参考。
(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)