为什么说单元测试如此重要?
有很多实施GJB5000的组织,认为小规模软件进行单元测试得不偿失,想要裁剪整个单元测试活动,仅仅保留配置项测试和系统测试。
这种做法是不可取的。
单元测试是白盒测试,是确保代码质量的,而配置项测试和系统测试是黑盒测试,是验证整体软件的功能是否正确。单元测试的作用不可能被配置项测试和系统测试所取代。
单元测试的重要性体现在以下几个方面:
进行单元测试可以节约很多时间
如果做好单元测试,去除了代码中潜在的设计错误,那么后续的测试级别(集成测试、配置项测试、系统测试等)就会节约很多时间。反之,如果没有做单元测试或者单元测试做的不好、敷衍了事,那么在进行后续的测试级别时,总会遇到那些本该在单元测试就能发现的问题,而且这些问题往往还是很难发现的。这会使后续的测试周期远超计划,不断延迟。
进行单元测试可以提升测试绩效
首先,单元测试是测试阶段的基础。只有做好单元测试,才会使得后续的集成测试、配置项测试、系统测试等更加容易。其次,单元测试是白盒测试,在单元测试过程中能够发现一些深层次的,在系统测试(黑盒测试)当中很难发现的问题。最好,单元测试不仅仅能够验证代码做了些什么,更重要的是了解代码是如何做的,以及是否做了它应该做的事情和没有做它不该做的事情。
进行单元测试可以降低测试成本
代码中的一些设计错误,在单元测试的时候很容易发现,纠正成本也比较低;但是,如果这些错误直到后期的系统测试的时候才发现,再要纠正这个问题,所需要的成本就成几何倍数的上升。
进行单元测试可以提升产品质量
进行单元测试可以去除代码中的设计错误,提升代码的质量。而如果不进行单元测试,后续的配置项测试、系统测试又很难发现这些错误,那么这些错误就被隐藏在交付的软件中,这样交付软件的质量就难以得到保证。
所以,我们不应以软件开发周期短为理由裁剪单元测试,特别是实施GJB5000的军用软件开发。我们更应该做的是通过应用单元测试工具和自动化测试、通过测试用例的重用等技术,提高单元测试的效率。
为了软件质量,让我们重视单元测试吧!
这正是:
单元测试不可裁,其他测试难取代
引进工具和技术,提高效率收益来
参考书目:现代软件测试技术与管理研究,作者:赵仕波 魏生斌 罗耀华,出版社:中国水利水电出版社