单元测试(旧作)
EasyTDD
专注于单元测试技术的研究和实践。
展开
-
C/C++单元测试问答(摘要)
为什么要进行单元测试? 单元测试保证局部代码的质量单元测试改良项目代码的整体结构单元测试降低测试、维护升级的成本单元测试使开发过程适应频繁变化的需求单元测试有助于提升程序员的能力由谁进行测试?开发部门还是测试部门? 应该由开发部门进行单元测试!由测试部门进行单元测试的问题:代价高,人手不足,耽误了测试部门对其他测试的准备工作。由开发部门进行单元测试的问题:担心影响开发进度,程序员不习惯做单原创 2006-06-28 16:25:00 · 3058 阅读 · 0 评论 -
为什么要进行单元测试?
单元测试保证局部代码的质量单元测试在隔离的前提下,分别对各个代码单元进行测试,能够达到其他测试不可能达到的测试完整性,从而保证了局部代码的质量。只有局部代码的质量得到了保证,软件产品的质量才可能得到保证。单元测试改良项目代码的整体结构要对代码进行单元测试,最起码的前提是代码能够隔离,也就是说,要具有一定的可测性,因此,单元测试是一种有效的约束机制,这种机制将有效地改良代码的整体结构。例如,如果把业原创 2009-10-26 09:21:00 · 3674 阅读 · 1 评论 -
由测试部门进行单元测试为什么成本昂贵?
需多次重复理解程序测试人员进行单元测试时必须理解程序功能甚至代码逻辑;充分的单元测试通常会发现很多细小的错误,程序员修改代码时,又要再次理解程序。理解程序是很耗费时间的。反复沟通需要大量时间成本单元测试发现的错误一般是小Bug,但数量可能很多,修改错误一般由程序员进行,测试人员还要确认,这些反复沟通也需要很多的时间。不利于发挥单元测试对代码结构的约束机制如果等编码基本完成再由测试部门进行单元测试,原创 2009-10-27 09:14:00 · 1510 阅读 · 0 评论 -
由开发部门进行单元测试能保证测试效果吗?
程序员测试自己编写的代码,往往只考虑“正常状况”,这当然会影响测试效果。但如果所用的单元测试工具能够统计各种白盒覆盖率,就能检查测试效果。当然,只做到这一点还是不够的,因为白盒覆盖具有逾后逾难的特点,达到一定的覆盖率后,覆盖率的提升会很困难。如果测试工具功能足够强大,能提供工具帮助用户快速地设计测试用例,达到完整的白盒覆盖,那么测试效果就能得到完全的保证。实际上,如果没有充分的统计数据,没有达到原创 2009-10-27 09:17:00 · 1522 阅读 · 0 评论 -
单元测试用例概述
测试的目的是检查程序的行为是否符合设计规格,程序的行为就是某种输入时会产生什么输出,因此,一个典型的测试用例完成以下工作:设定输入数据、执行程序、验证输出是否符合预期。函数的输入数据一般包括:A、参数;B、成员变量,只考虑函数需要读取的成员变量;C、全局变量,只考虑函数需要读取的全局变量;以上三项,当涉及到复杂数据类型时,只考虑函数需要读取的域,例如,一个结构对象,有十个域,而函数只读取其中一个域原创 2009-10-28 09:27:00 · 2097 阅读 · 0 评论 -
什么叫好用例?
什么叫好用例?被奉为经典的标准是:发现错误可能性大的用例就是好用例,发现至今未被发现的错误的用例就是成功的用例。对此,有网友评论说:这个标准就像傻子吃烧饼,连吃五个不饱,吃完第六个终于饱了,于是说:早知道吃了第六个就会饱,何必吃前面五个?没错,设计用例时你怎么知道哪个用例发现错误的可能性大?要是代码中根本就没错误呢?好用例应该是一个集合,就像傻子吃的六个烧饼是一个整体,一起吃下去才会饱,而不原创 2009-10-29 09:45:00 · 1575 阅读 · 0 评论 -
全面介绍单元测试
本文写于05年,是我关于单元测试的第一篇文章。读者和转载都很多,不过经过更丰富的实践尤其是涉及了不同企业的众多项目的单元测试工作后,今天看来,文中的一些观点是不正确的, 例如关于桩代码的说法。近期我会多写一些基于企业应用的相关理论和方法介绍。这篇文章对于初学者理解单元测试还是不错的。 一 单元测试概述 工厂在组装一台电视机之前,会对每个元件都进行测试,这,就是单元测试。 其原创 2009-10-31 19:43:00 · 2082 阅读 · 1 评论 -
没有输入参数的接口函数如何设计测试用例?
对于函数测试来说,一个用例,就是设定输入,执行程序,判断输出是否符合预期。可能输入包括:参数、需读的成员变量、需读的全局变量、内部输入(调用子函数获得的输入);可能输出包括:返回值、输出参数、被写的成员变量、被写的全局变量,内部输出(在程序执行过程中判断的中间输出)、动作(例如需判断程序在某种输入下是否调用了某个函数)。简单来说,输入就是程序执行前或执行过程中读取的外部数据,输出就是程序所改写的数原创 2009-11-17 10:41:00 · 3955 阅读 · 1 评论