自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

单元测试

以C/C++单元测试为主

  • 博客(70)
  • 资源 (10)
  • 收藏
  • 关注

原创 C/C++单元测试理论精要(六)

2.1 可测性问题详解(2)           接下来我们讨论重点问题:覆盖输入。一个函数,输入会有哪些呢?输入包括两方面:外部输入,内部输入。外部输入容易理解,就是函数外部可以设定的输入,包括参数,全局变量,成员变量。              关键是内部输入。因为很少有文献讨论内部输入,对很多人来说,内部输入可能是一个陌生的词,我们首先来看看内部输入是什么

2010-04-22 08:16:00 5855 9

原创 C/C++单元测试理论精要(五)

第二章 征服可测性难题 2.1 可测性问题详解(1)     单元测试效益特别高,方法也很简单,但却尝试的企业很多,成功实施的企业很少,为什么呢?主要原因就是难于突破可测性问题。“可测”这个词,意思已经很明白了,如果不“可测”的话,那就是不能测,没法测,就是做不下去,或者困难太多,成本太重,热情被逐渐消磨,最后做不下去。所以可测性问题是单元测试的关键,是我们首先要解决的。 

2010-04-20 15:01:00 4297 1

原创 C/C++单元测试理论精要(四)

题外篇:单元测试难于长期坚持的原因与解决探讨     上一篇《单元测试效益》,有网友评论说:“单元测试的好处基本人人知道,就是难坚持!”。这一评论严重提醒了我,不错,“难坚持”也是一个普遍现状。如果不能坚持,那一切都是白搭。因此,这里插入一个题外篇,探讨单元测试难于长期坚持的原因与解决,抛砖引玉,希望大家踊跃讨论,共同找出使单元测试易以坚持的途径。     我以前主要关注如何做得了

2010-04-19 18:40:00 4802 1

原创 C/C++单元测试理论精要(三)

1.3 单元测试能产生哪些效益?     单元测试的效益已经得到广泛的认同,现在的问题已经不是有没有必要做,值不值得做,而是如何多快好省地做好单元测试,所以,关于效益,这里只是简单的介绍一下。 效益一,保证代码质量        只有单元测试才能完整检测代码单元的功能逻辑,使代码单元的质量得到保证,只有代码单元的质量得到保证,软件的整体质量才有可能得到保证。 效益二

2010-04-16 12:14:00 10165 24

原创 C/C++单元测试理论精要(二)

1.2 单元测试的目标和方法     单元测试的目标是什么呢?就是完整检测代码单元的功能逻辑。找出代码单元本身的所有功能逻辑错误,具体来说,就是检测对数据的各种分类是否考虑全面,处理是否正确。单元测试并不是用来代替系统测试、性能测试的,它的目标相当明确,就是检测代码单元本身的功能逻辑错误。            如果时间紧张,应该优先测试哪些代码呢?代码的功能逻辑越复杂,也就是算法密集

2010-04-15 11:05:00 6760 6

原创 C/C++单元测试理论精要(一)

内容介绍     本系列文章根据《单元测试与VU2.6应用》视频讲座的理论部分整理而成,主要讨论四个问题:为什么需要单元测试?怎样征服可测性难题?怎样才能高效率测试?怎样保证测试效果?重点阐述单元测试的关键问题,不是一般概念,适合于对单元测试有一定了解的读者。    在选择工具和实施单元测试前,我们应该对相关理论有一个系统的了解,特别是将会遇到哪些难题,如何解决,要心里有数,否则的话,

2010-04-14 11:52:00 11394 11

原创 初尝单元测试(JAVA),如何制定切实可行的计划?

问:     测试新手,根据自己理解写的单元测试用例模板,但是开发人员(JAVA语言)反映难以实施,不知道到底应该如何改正,我原本的想法是以类为单位,为确保测试覆盖率,先画控制流图,依据独立路径确定输入输出,有了输入输出就算一个用例了,但大家反映,一类为单位画控制流图不好画,类中可能涉及很多函数,每个函数复杂度都不同都有独自的控制流图,无从下手。    迷茫啊,跪求高手指点,到底应该怎样计

2009-12-24 07:40:00 2199 3

原创 单元测试的三个独立

单元测试是针对代码单元的独立测试。“独立”是指将代码从原始项目及其依赖的环境中隔离出来,针对各个单元单独进行测试,包括三方面含义:形式独立、实质独立和意识独立。单元测试之所以困难,就在于技术上无法解决形式独立和实质独立,主观上没有达到意识独立。  形式独立 将测试任务从原始项目及其依赖环境中隔离出来,并能在易于测试的环境下运行。企业项目通常高耦合、可测性差、依赖于特定的软件

2009-12-23 07:52:00 2472 4

原创 单元测试的肥肉与骨头

    无处不在80-20规则,在软件开发中也同样存在,例如,80%的错误存在于20%的代码中,80%的项目时间消耗在20%的代码上,当然这只是粗略的估计,不同的项目,比例可能有所不同。 那么,这20%是哪些代码呢?是功能逻辑复杂的代码,也就是算法密集的代码。一个算法密集的函数,通常要对数据进行仔细的分类,一个判定就是一次分类,嵌套的判定就是分类的翻番,要做到分类正确完整且处理无误,是很困

2009-12-22 08:17:00 2433 5

原创 白盒方法在用例设计中的正确应用

问题:请帮我针对下面小段程序用三种白盒测试方法设计测试用例:int  IsLeap(int year){   if  (year % 4 == 0)   {      if (year % 100 == 0)      {         if (year % 400 ==0)           leap = 1;         else           leap = 0; 

2009-12-18 21:01:00 2383 1

原创 浅论静态测试的价值

    曾经看过一篇介绍某静态测试工具的文章,说该工具可以发现所有的代码错误,我觉得很好奇,问:如果我写了一个加法函数,把加号写成减号,如int add(int a, int b){return a-b;};,可以找出来吗?答:这是代码功能错误,当然不能找出来。愣了半天,没想明白:难道代码的功能错误不是代码错误?怪偶语文没学好,理解不了这种高深的文字游戏。静态测试方法到底可以发现哪些错误?极限

2009-11-27 10:34:00 2413 1

原创 通俗解释正条件判定覆盖

    修正条件判定覆盖(Modified Condition/Decision Coverage),简称MC/DC,定义为:    Condition —— a Boolean expression containing no Boolean operators:    Decision —— a Boolean expression composed of conditions and

2009-11-24 09:43:00 2258

原创 数据很多时,如何设计用例?

数据多时,例如有三个参数,A、B、X,每个可能有五六种输入,如何设计用例比较简单?最简单的方法是先用等价类法列出这三个数的可能输入(考虑正常输入有哪些?边界输入有哪些?非法输入有哪些?),然后列出需要组合的值,例如:A=1和B=1要组合起来测试,那么至少要有一个用例包含这种组合。组合不主张使用正交法,正交法第一比较复杂,第二会产生太多用例,第三仍然会有一些需要的组合遗漏。   

2009-11-20 07:58:00 2723 7

转载 从一个笑话看软件开发管理(转)

 1. 程序员写出自认为没有Bug的代码。2. 软件测试,发现了20个Bug。3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug。4. 测试组发现其中5个改动根本无法工作,同时又发现了15个新Bug。5. 重复3次步骤3和步骤4。6. 鉴于市场方面的压力,为了配合当初制定的过分乐观的发布时间表,产品终于上市了。7. 用户发现了137个新Bug。8. 已经领了项目奖金的程序员不知跑

2009-11-18 21:00:00 3245 3

原创 没有输入参数的接口函数如何设计测试用例?

对于函数测试来说,一个用例,就是设定输入,执行程序,判断输出是否符合预期。可能输入包括:参数、需读的成员变量、需读的全局变量、内部输入(调用子函数获得的输入);可能输出包括:返回值、输出参数、被写的成员变量、被写的全局变量,内部输出(在程序执行过程中判断的中间输出)、动作(例如需判断程序在某种输入下是否调用了某个函数)。简单来说,输入就是程序执行前或执行过程中读取的外部数据,输出就是程序所改写的数

2009-11-17 10:41:00 3942 1

原创 浅论单元测试的内部输入问题

内部输入是函数内部获得的输入,包括调用子函数获得的输入和局部静态变量。请看下面的两组功能完全一样代码(差异部分用粗体标出):代码一(代码清单4.1.cpp)://计算圆的外接正方形的面积int GetArea(int r){    return (r+r) * (r+r);}//判断指定的正方形是否可以容纳圆//参数int r:圆的半径//参数int x:指定正方形边长//返回值:不能容纳,返回-

2009-11-13 07:16:00 2999 5

原创 实现完整测试的思路和方法

 这里提出用“三步法”尽可能实现完整测试:第一步:基本功能测试程序的功能是人为的规定,工具不可能自动了解,因此,针对基本功能的测试用例需要人工来建立,这是无可躲避的。根据程序的设计要求,基本功能用例通常不难设计,把程序功能细化、明确化,列成“什么输入,应产生什么输出”的形式,就是测试用例。程序员准备编码时和编码过程中,是建立基本功能用例的最佳时机,为什么呢?因为程序员编码之前和编码过程中,一定要弄

2009-11-11 09:58:00 3576 2

原创 逻辑覆盖率到底怎么计算?

问题: 关于逻辑覆盖的知识有点迷惑,希望大家帮忙解答下!1.语句覆盖如:int example(int x,int y){        int result=0;        if(x>0&&y>0){              result=x+y+5;        }else{              result=x+y-5;        }        if(resul

2009-11-06 11:40:00 5147

原创 打造基于企业项目的单元测试实用课程(2):目前课程展示

下面是比较典型的比较有代表性的C/C++单元测试课程提纲: 软件详细设计评审 主要讲解软件详细设计评审方法,掌握详细设计文档写作规范、方法,详细设计文档评审流程和评审要点,保证详细设计文档能够有效的指导单元测试用例设计:1、详细设计文档的文档格式、规范 2、伪码写作注意事项 3、实践环节单元测试理论  介绍单元测试的基本理论,作为后续课程学习的先导课程:1、测试理论基础2、什么是单

2009-11-04 09:18:00 1428 1

原创 打造基于企业项目的单元测试实用课程(1):引子

    前段时间,和测试经理杨先生一块聊天,说到单元测试人才的招聘,杨先生提到最近某著名培训机构就业班毕业的一些学员来面试,情况基本一样:理论只了解一些概念,实践只是测试过三角形函数,离胜任实际工作还差很远。类似的抱怨我听过不少。我查看过一些培训机构的教学提纲,也了解过一些大学的相关课程,感觉无论大学、就业培训、公开课、企业内训,似乎都有一个特点:离应用距离太远。具体来说,这些课程并没有基于企业项

2009-11-02 13:35:00 1249

原创 中国航天之父钱学森逝世,悲痛

有的人死了,他还活着;有的人活着,他已经死了。

2009-10-31 21:52:00 1216

原创 全面介绍单元测试

    本文写于05年,是我关于单元测试的第一篇文章。读者和转载都很多,不过经过更丰富的实践尤其是涉及了不同企业的众多项目的单元测试工作后,今天看来,文中的一些观点是不正确的, 例如关于桩代码的说法。近期我会多写一些基于企业应用的相关理论和方法介绍。这篇文章对于初学者理解单元测试还是不错的。 一 单元测试概述   工厂在组装一台电视机之前,会对每个元件都进行测试,这,就是单元测试。   其

2009-10-31 19:43:00 2076 1

原创 Cppunit 可以测试内存泄漏吗?

问:Cppunit 可以测试内存泄漏吗? 答:内存泄漏适合于集成后进行,并且也有专门的工具。对于某个代码单元来说,内存泄漏是难于测试的,单元内的未释放内存不等于会有内存泄漏。内存泄漏不是单元测试的内容,把内存泄漏扯到单元测试中来是吃力不讨好的。所有集成后才易于发现的问题,都不应该是单元测试的内容。问:感谢,不过cppunit也可以集成测试的吧?答:广义来说,测试

2009-10-30 09:13:00 2656 6

原创 什么叫好用例?

 什么叫好用例?被奉为经典的标准是:发现错误可能性大的用例就是好用例,发现至今未被发现的错误的用例就是成功的用例。对此,有网友评论说:这个标准就像傻子吃烧饼,连吃五个不饱,吃完第六个终于饱了,于是说:早知道吃了第六个就会饱,何必吃前面五个?没错,设计用例时你怎么知道哪个用例发现错误的可能性大?要是代码中根本就没错误呢?好用例应该是一个集合,就像傻子吃的六个烧饼是一个整体,一起吃下去才会饱,而不

2009-10-29 09:45:00 1568

原创 单元测试用例概述

测试的目的是检查程序的行为是否符合设计规格,程序的行为就是某种输入时会产生什么输出,因此,一个典型的测试用例完成以下工作:设定输入数据、执行程序、验证输出是否符合预期。函数的输入数据一般包括:A、参数;B、成员变量,只考虑函数需要读取的成员变量;C、全局变量,只考虑函数需要读取的全局变量;以上三项,当涉及到复杂数据类型时,只考虑函数需要读取的域,例如,一个结构对象,有十个域,而函数只读取其中一个域

2009-10-28 09:27:00 2087

原创 由开发部门进行单元测试能保证测试效果吗?

 程序员测试自己编写的代码,往往只考虑“正常状况”,这当然会影响测试效果。但如果所用的单元测试工具能够统计各种白盒覆盖率,就能检查测试效果。当然,只做到这一点还是不够的,因为白盒覆盖具有逾后逾难的特点,达到一定的覆盖率后,覆盖率的提升会很困难。如果测试工具功能足够强大,能提供工具帮助用户快速地设计测试用例,达到完整的白盒覆盖,那么测试效果就能得到完全的保证。实际上,如果没有充分的统计数据,没有达到

2009-10-27 09:17:00 1517

原创 由测试部门进行单元测试为什么成本昂贵?

需多次重复理解程序测试人员进行单元测试时必须理解程序功能甚至代码逻辑;充分的单元测试通常会发现很多细小的错误,程序员修改代码时,又要再次理解程序。理解程序是很耗费时间的。反复沟通需要大量时间成本单元测试发现的错误一般是小Bug,但数量可能很多,修改错误一般由程序员进行,测试人员还要确认,这些反复沟通也需要很多的时间。不利于发挥单元测试对代码结构的约束机制如果等编码基本完成再由测试部门进行单元测试,

2009-10-27 09:14:00 1494

原创 由谁进行测试?开发部门还是测试部门?

应该由开发部门进行单元测试!由测试部门进行单元测试的问题代价高:反复的重新理解代码需要大量的时间,反复的沟通也需要大量的成本。人手不足:进行单元测试的人员需要具备编码能力,很多软件企业的测试部门都没有足够的人手。耽误了测试部门对其他测试的准备工作:编码阶段,测试部门要为集成测试、系统测试等做好准备,如果测试部门陷在单元测试的“泥潭”里,很可能影响这些准备工作。由开发部门进行单元测试的问题担心影响开

2009-10-26 09:23:00 3506

原创 为什么要进行单元测试?

单元测试保证局部代码的质量单元测试在隔离的前提下,分别对各个代码单元进行测试,能够达到其他测试不可能达到的测试完整性,从而保证了局部代码的质量。只有局部代码的质量得到了保证,软件产品的质量才可能得到保证。单元测试改良项目代码的整体结构要对代码进行单元测试,最起码的前提是代码能够隔离,也就是说,要具有一定的可测性,因此,单元测试是一种有效的约束机制,这种机制将有效地改良代码的整体结构。例如,如果把业

2009-10-26 09:21:00 3656 1

原创 C/C++单元测试问答(摘要)

为什么要进行单元测试?   单元测试保证局部代码的质量单元测试改良项目代码的整体结构单元测试降低测试、维护升级的成本单元测试使开发过程适应频繁变化的需求单元测试有助于提升程序员的能力由谁进行测试?开发部门还是测试部门? 应该由开发部门进行单元测试!由测试部门进行单元测试的问题:代价高,人手不足,耽误了测试部门对其他测试的准备工作。由开发部门进行单元测试的问题:担心影响开发进度,程序员不习惯做单

2006-06-28 16:25:00 3051

第四代单元测试工具

在简要介绍单元测试工具发展历史的基础上,重点介绍第四代单元测试工具(表格驱动的单元测试工具)的核心特性及优势。浏览此文档,可快速了解最新的单元测试技术,掌握评估和选择单元测工具的要领。

2019-01-04

C/C++单元测试/嵌入式测试/集成测试工具Viaul Unit 4.4

Viaul Unit是C/C++单元测试工具/嵌入式测试工具/集成测试工具。表格驱动,无须编写测试驱动和桩代码;支持快速完成航空标准(MC/DC);程序行为可视,支持快速编写复杂代码,提升开发效率。此版本安装后可测试自带的示例,用以学习单元测试技术;申请免费试用license后,可测试自己的代码。

2018-06-03

C&C++单元测试培训

C/C++单元测试培训PPT。本课程 适合于个人学习和企业内训。课程抛弃了宽泛空洞的理论,以落地为宗旨,直面企业项目的单元测试难题,深入浅出地讲授C/C++单元测试的问题、思路与方法。

2015-09-22

eTDD电子书:编程产能翻二番的奥秘

eTDD是easy TDD的简写,即易行版测试驱动开发。eTDD可以一性编写合格代码,在保证代码质量的同时,让编码产能翻二番。eTDD电子书内容包括:eTDD概念、过程、示例、关键技术、实验过程与结果、效益分析。您也可以依照电子书中的说明,亲自进行产能对比实验或实际任务实验。

2014-05-08

使用VU3测试linux内核的示例

使用VU3测试linux内核的示例,drivers下的一个小模块

2012-07-31

Visual Unit 3.beta19安装文件

Visual Unit 3.beta19安装文件,有些童鞋上不了官网,只能上CSDN,在这里上传一份,方便下载。

2012-07-30

Visual Unit 3.beta18安装文件

Visual Unit 3.beta18安装文件,有些童鞋上不了官网,只能上CSDN,在这里上传一份,方便下载。

2012-07-23

CppUnit的改进与使用

这个改进后的使用方法是我为一个企业培训时所准备的,由于学员以测试人员人主,编程基础较差,所以我采用了模板替换的方式,来建立测试文件和测试代码框架,可以减少工作量,也比较容易上手。另外,为CppUnit添加了一些代码,用于解决桩代码与用例的匹配问题。这个资源包含CppUnit已编译后的库和源代码,示例工程、示例测试工程、使用说明。

2010-05-26

C-C++企业项目单元测试ppt.rar

本PPT是《单元测试与VU2.6应用》视频讲座的PPT讲义,主要讨论四个问题:为什么需要单元测试?怎样征服可测性难题?怎样才能高效率测试?怎样保证测试效果?重点阐述单元测试的关键问题,不是一般概念,适合于对单元测试有一定了解的读者。 在选择工具和实施单元测试前,我们应该对相关理论有一个系统的了解,特别是将会遇到哪些难题,如何解决,要心里有数,否则的话,很可能劳民伤财,半途而废。如果只会测试加法函数或者三角形函数之类的独立小程序,就以为可以做单元测试了,那就像一个人刚学会走路,就去长途跋涉。 本PPT介绍的是针对企业项目的单元测试。企业项目具有两个特点:项目复杂,时间紧张。项目复杂,意味着测试时会遇到很多难题;时间紧张,要求我们不但要保证测试效果,还要尽可能高效率。本文不是泛泛而谈,而是针对企业项目的两个特点,努力揭示本质性的问题,并提出解决办法,对于常识性的问题,将比较简略的带过。使用的工具是Visual Unit 2.6,本PPT主要不是介绍工具,而是介绍问题所在和解决办法,涉及到工具,只是为了具体的展示解决办法,也为了说明,这些办法都是可行的,并非空谈。

2010-04-16

Visual Unit

对于软件企业,不增加人力投入,不改变开发流程,不延长项目时间,不提高管理成本,要想较大幅度地提高软件产品的质量、降低开发测试及后期维护的成本,那么,单元测试可能是最好的选择。   对于程序员,在这个软件质量越来越被重视的时代,要想短期内提升你的竞争力,那么,掌握单元测试技能,养成单元测试习惯可能是最好的选择。   单元测试难不难?单元测试烦不烦?关键在于工具好不好!   Visual Unit,简称VU,是新一代单元测试工具,功能强大,使用简单,目前版本适用于C++语言。   VU自动生成测试代码,不需花费时间、中断思路去编写测试代码;VU全方位地示出代码的行为:显示各种数据的输入输出值,显示不同输入时程序所执行的代码;画出逻辑结构图及不同输入时程序的执行路径,程序员可以随时“欣赏”自己的劳动成果;VU还帮助程序员快速地排除错误和高效地调试,尽可能减少程序员查找某种错误的时间,使程序员的思维始终集中在程序逻辑上。使用VU,测试工作费时极少,同时又提高了编程的效率,总体来说,边编码边用VU进行测试,在达到完整测试的同时,还能大幅度减少开发时间。   使用VU,能轻松完成100%语句、条件、分支、路径覆盖,提供详尽的测试报告和待测试文件列表,随时可以检验测试效果、找出遗漏代码或未完成覆盖的代码,保证测试的完整性。   安装包中包含了企业版和个人版,以及单元测试教程。个人版是完全免费的版本,企业版可通过网络验证的方式,经过简单的免费注册后免费试用一段时间。

2006-04-03

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除