易截截图软件、单文件、免安装、纯绿色、仅160KB

C/C++单元测试理论精要(十二,完)

4.2 多角度保证测试效果
    对于代码质量要求很高的项目来说,仅有白盒覆盖是远远不够的。白盒覆盖不能发现代码缺失,白盒覆盖基于现有代码,如果代码不存在,当然不能发现。为了检测代码缺失,需要人工对测试数据进行检查。白盒覆盖也不能发现用例未反映功能。如果设计用例时,测试员不了解代码的功能,通过阅读代码来设计用例,这叫跟着代码走,这样测试的话,再高的覆盖率也没有意义。这也从另一个角度说明了自动用例的局限性,完全由工具自动生成的用例,效果显然还比不上跟着代码走。
    开发当中还有一个特点,也是我们要注意的,就是程序员和测试员都容易遗漏边界和非法输入。程序员未考虑某些输入,就会造成代码缺失,白盒覆盖不能发现,如果测试员也漏掉,这种错误就发现不了。不过幸运的是,边界和非法输入容易产生的是极端错误,如崩溃、超时,自动生成的边界测试用例正好可以捕捉这类错误。
   
    通过前面的分析,我们可以知道应该从哪些角度保证测试效果。黑盒、白盒、自动应该相结合。
   
    黑盒角度,应该将测试数据分类集中起来,这样便于人工检查。如上图,每个参数或者其他输入取了什么值,哪些组合已经覆盖,都会自动集中起来,这样人工检查就很方便了。
    白盒方面,应该统计覆盖率,并且找出遗漏用例实现高覆盖。这在前文已经讲过了,这里不再重复。
   
    自动方面,由工具自动生成用例来捕捉边界和非法输入产生的极端错误。根据预设值自动生成用例是简单技术,预设值一般是可以修改的,如上图。不要指望主要依靠自动生成的用例来完成测试,自动用例的合理用途是作为人工用例的补充,检测极端错误。
结束语
    本文根据《单元测试与VU2.6应用》视频讲座的理论部分整理而成,介绍的是单元测试理论的摘要部分。本文也是《C/C++单元测试实用教程》(暂定名)理论部分的浓缩版,该书约29章,将于近期完稿,目前正在与出版社讨论出版事宜。
    PPT和视频可在以下地址下载:
    PPT下载:http://download.csdn.net/source/2246006
    视频part1: http://download.csdn.net/source/2246273
    视频part2: http://download.csdn.net/source/2246345
    视频


相关文档:

C Language: A Example of Print Snake Matrix


// SnakeMatrix.cpp : Defines the entry point for the console application.
// Create by Xianyi.Ye, May 4,2010
#include "stdafx.h"
#include <iostream.h>
/*
Question: Print a Sanke Matrix as following
i\j 1 2 3 4 5 6
1 1 2 9 10 25 26
2 4 3 8 11 24 27
3 5 6 7 12 23 28
4 16 15 14 ......

C/C++语言void及void指针深层探索

今天有个刚刚毕业的小朋友问我关于void*的一些问题,刚好在网上找到了一篇比较详细说明的文章,转载之......
1.概述
  
  许多初学者对C/C++语言中的void及void指针类型不甚理解,因此在使用上出现了一些错误。本文将对void关键字的深刻含义进行解说,并详述void及void指针类型的使用方法与技巧。
  2.void的含 ......

C运行时库(解析mainCRTStartup)

1.概论
  运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所以这个j时期的C运行时库都是单线程的。
  随着操作系统多线程技术的发展,最初的C运行时库无法满足程序 ......

51单片机 Keil C 延时程序的简单研究

51单片机   Keil   C   延时程序的简单研究  
   
  by:   InfiniteSpace   Studio/isjfk,   1.21.2004  
   
  任何人都可以在注明原作者和出处的前提下随意转载这篇文章,但不得用于商业目的。  
   
    ......

浅谈C/C++内存泄漏及其检测工具

对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题。已经有许多技术被研究出来以应对这个问题,比如Smart Pointer,Garbage Collection等。Smart Pointer技术比较成熟,STL中已经包含支持Smart Pointer的class,但是它的使用似乎并不广泛,而且它也不能解决所有的问题;Garbage Collection技术在Java中已经 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号