单元测试这个东西很神奇,最早是从国外引入的,世面上也存在了很多开源的单元测试软件,那么它到底有什么优缺点呢?下面就列出来瞧瞧看看,并附上一些我自己的看法。
优点:
1.降低开发错误的反馈回路,减少重复工作,提升开发效率。例如服务器的重启啊之类的。
这个确实,大优点之一,我相信也是大多数程序要写单元测试的初衷。
2.提升代码质量,写出更模块化、结构化的代码,减少BUG.
所谓提升代码质量,这个也是TDD所一直鼓吹的东西。见仁见智吧,如果你写出更模块化,更结构化的代码非得通过单元测试的话,那么你就去干吧。
3.重构时保证功能的利器。
这个是单元测试最大的优点所在,但若你的系统并不存在什么大的重构的话,那也没什么存在的必要,还是那句话,什么事情要辨证的看。
4.让代码更容易维护,通过单元测试也可以摸索出整个系统的框架,单元测试相当于代码的规格书。
这点我是持怀疑态度的,单元测试只是保证了每个单元模块的功能点,是一个个孤立的点,看单元测试也只是管中窥豹,并不能完整的看清楚系统。若说是规格书,javac干嘛去了,别把什么事都扯上。
缺点:
1.学习陈本:随着软件构建越来越复杂,单元测试的工具也随着增多,学习是一个很大陈本。
2.开发陈本:写单元测试会增加程序员的工作量,不是一点点的工作量,可能是原本功能开发两倍甚至三倍的工作量。
3.推广和运用单元测试需要比较大的投入,而且收效周期较长,只有编写足够过,足够好的单元测试之后,才能得到以上几个优点提到的收益。
那么怎样才能写出好的单元测试呢?
较高的代码重构能力,自身的代码功底要有一定要求,若是无这点保证,单元测试只会沦为一个KPI工具,毫无实际意义,而一个有较高代码功底的人不需要一整套的单元测试。根据自己需要选择性的写单元测试。
那么还有必要写单元测试吗?
个人看法是,这个东西不是二元的,非此即披,对于这个世界上这么多的技术,这么多的概念,特别是国外传进来的很多东西,大家只需要根据自己的情况,选择性的吸收,能提升自己工作技能上的都可以接受,不要人云亦云,从中抓取核心的东西,自己再总结总结就圆满了。我还是一直秉承自己的看法,一切概念,术语都是纸老虎,特别是一些国外的忽悠。这次参加杭州的qcon,特别有深的感受,国外的大师们都在鼓吹概念,国内的大牛们在批判那些国外大师的方法论、术语,很有意思!
对于组织上强推广单元测试的看法?
让工程师自己用脚去选择,程序员是工作在一线的人员,只有他们最了解实际的业务场景,代码复杂程度,若是他们觉得好的东西,他们自己回去吸收,并不需要强推。让工程师去做选择,这个才是工程师文化的核心。
分享到:
相关推荐
单元测试实施规程是软件开发过程中一个关键的质量保证环节,它旨在确保软件的每个独立模块都能按照预期的功能正确运行。以下是对这一规程的详细说明: 1. **目的**:单元测试的主要目的是验证软件的各个模块(任务...
软件单元测试报告 软件单元测试报告是软件开发过程中的一种重要文档,它记录了软件单元测试的结果和过程。下面是该报告的知识点总结: 一、软件单元测试报告的组成部分 软件单元测试报告通常由以下几个部分组成:...
"Tessy单元测试提高软件质量" 单元测试是软件测试中的一种重要方法,旨在确保软件的质量和可靠性。在本White Paper中,我们将讨论单元测试的重要性、方法论和实践应用。 单元测试的定义和重要性 单元测试是指对...
单元测试说明模板 单元测试是一种软件测试方法,它通过在单元层面上对软件的每个组件进行测试,以确保每个组件都能正确地执行其功能。单元测试是软件测试的基础,是软件开发过程中不可或缺的一部分。 单元测试的...
在软件开发过程中,单元测试是一项至关重要的质量保证活动,它能帮助开发者确保代码的正确性和稳定性。本资源“软件单元测试入门与实践”由周立功撰写,专注于C和C++编程语言,提供了对单元测试的基本理解及实际操作...
在.NET开发过程中,单元测试是一项至关重要的任务,它有助于确保代码的质量、可维护性和稳定性。单元测试允许开发者独立地测试代码的各个部分,确保每个功能模块都能按预期工作。本案例将深入探讨如何在.NET环境中...
### 单元测试理论与实践 #### 一、单元测试的概念与目的 单元测试是对软件基本组成单元进行的测试,其主要目标在于发现各模块内部可能存在的各种错误。这些错误通常包括但不限于设计缺陷、需求理解偏差以及编码...
单元测试是一种软件开发过程中的重要环节,主要用于验证代码的各个最小可测试单元,如函数、方法或类,是否能够按照预期工作。通过编写自动化测试用例,开发者可以在修改代码后快速检查新变更是否引入了错误,确保...
//qt单元测试用法,qt测试例子,qt单元测试demo,qt单元测试简单例子,qt单元测试例程,qt单元测试简单例子, qt5单元测试例子,qt5单元测试代码,qt5单元测试工程例子,测试运行ok //首先,用标准的qt测试单元导向,...
(C#语言版)单元测试实例,主要功能包括:(1)输入数据到textbox,以逗号间隔,然后求数组最大值、求和,并将结果显示出来,并针对于数组求最大值函数和求和函数写单元测试代码;(2)连接数据库,写出单元测试代码来测试求...
《×××单元测试报告》是对软件开发过程中某一模块或组件进行独立验证的文档,它详细记录了单元测试的过程、结果以及可能遇到的问题。单元测试是软件开发中的关键环节,旨在确保代码的各个部分按预期工作,从而提高...
一大早,一个年轻的程序员问大师:“我准备写一些单元测试用例。代码覆盖率应该达到多少为好?”大师回答道:“不要考虑代码覆盖率,只要写出一些好的测试用例即可。” 一大早,一个年轻的程序员问大师: “我准备...
### 软件测试基础之单元测试详解 #### 核心知识点概览 - **单元与单元测试概念解析** - **单元测试的主要任务** - **单元测试执行过程** - **单元测试工具应用** - **常见单元测试误区** #### 深入理解单元与单元...
在软件开发过程中,单元测试是一种重要的质量保证手段,它针对代码的最小可测试单元——函数、方法或类,进行独立验证。本示例主要聚焦于C++编程语言中的单元测试,我们将探讨如何进行白盒测试的基本实现方法和结构...
《软件单元测试讲义》是一份深入探讨软件开发中单元测试技术的重要资料,它由知名IT博主linkyou在CSDN上分享。这份PPT详细阐述了单元测试的基础概念、重要性以及实施方法,旨在帮助开发者提升代码质量,确保软件功能...
"软件单元测试——JUnit使用" 软件单元测试是软件开发过程中的一种测试方法,它是指对软件中的最小单元进行测试,以确保软件的可靠性和正确性。JUnit是一个流行的Java测试框架,广泛应用于软件单元测试中。 在本...