单元测试的认识

简单来说,我将软件分为设备软件和非设备软件。设备软件有其明显的特点:那就是软件和设备是紧密相关的。相关到可以是一对一的程度。类似于嵌入式软件和芯片的关系。

设备软件的单元测试。

软件上的好多概念往往都是先从互联网软件兴起,再逐渐扩展到其它行业软件。比如架构设计,单元测试等。.Net平台的单元测试平台有MSTest,NUnit,XUnit。我详细了解了下MSTest。通过MSTest基本知道了单元测试的目的和实现方法。简单来说,就通过测试框架生成必要的测试代码,然后对你写的每个单元(一般为单个函数)进行不同输入和输出检查。但这个测试是系统性的,可以重复执行的。

现行的公司做法

设备分为多个子部件,每一个子部件对应有相应的控制库函数,这些函数一般是原始的供应商给的。我们对每一个子部件生成一个应用窗口,调用供应商的库函数,检查子部件的功能完整性。

再将零散的子部件集合起来,形成一个功能窗口,调用功能窗口里的函数,完成单一的设备功能。最后将每一个单一的功能再集合起来,形成整个设备功能软件。而整个设备功能软件,公司称之为工具软件。工具软件可以嵌入到设备软件中,也可以单独拆开使用。在工具软件开发完成之后,再重新设计一套设备UI,加上对应的控制流程,使用和工具软件同样的控制库,完成整个设备软件的开发。

做一个工具软件有如下作用:

1.在设备没有组装起来,用于基本的子部件检查

2.在设备组装完成后,用于检查最后支行的设备软件是否具有运行软件的环境要求。

我比较了MSTest执行的单元测试和公司现行的工具软件做如下总结:

编写MTest测试单元的好处:
1.不用编写额外的测试工具代码
2.代码覆盖率较高
3.更适合纯软件类的软件测试
4.测试流程相对固定
5.测试结果有统计信息,一目了然
缺点
1.需要编写相关的测试用例(内容庞大)
2.单元划分不容易按功能块划分,一般按函数划分,粒度小
3.测试人员对测试结果不敏感,不易对错误的结果产生明确的反应
4.测试用例只能用于软件测试,不能用于设备生产调试过程

5.测试人员必须是程序员。

而上述单元测试的优缺点,和工具软件的测试恰好是相对的。

无论是通过单元测试还是工具软件哪条路径,最终都能保证最终的用户的系统需求。但是相对来说,我认为有工具软件的做法更适合设备软件的开发。因为工具软件不仅承担了单元测试的责任,还可能用于后结的生产调试过程。

你可能感兴趣的:(其它,单元测试)