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

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

第二章 征服可测性难题
 
2.1 可测性问题详解(1)
 
    单元测试效益特别高,方法也很简单,但却尝试的企业很多,成功实施的企业很少,为什么呢?主要原因就是难于突破可测性问题。“可测”这个词,意思已经很明白了,如果不“可测”的话,那就是不能测,没法测,就是做不下去,或者困难太多,成本太重,热情被逐渐消磨,最后做不下去。所以可测性问题是单元测试的关键,是我们首先要解决的。
 
     
    
    可测性问题是指代码的可测性很差,导致测试很困难,这是单元测试的关键阻碍。为什么代码的可测性会很差呢?原因是什么?一般来说,这些原因导致了代码的可测性差:项目很复杂,开发流程不规范,耦合度很高。耦合是指代码之间的互相依赖,例如一个函数调用另一个函数,就是耦合。
 
    一般的建议是改进开发流程,提高代码可测性。但从实践来看,这是不现实的。可测性差在企业项目中普遍存在,有其客观原因,很难改变。首先,企业项目本身就多是很复杂的,这是需求决定的,改不了。其次,程序并不是虚无的,程序是客观事物的反映,客观事物本身是互相关联,互相纠缠的,必然形成代码间的耦合。第三,流程改进是一个长期的、渐进、困难的过程,不可能短期内实现飞跃,更不是引进几个工具或者规范就可以做到的。这方面我有过教训,几年前,我也认为可以通过流程改进来提高可测性,也给客户推荐过相关的解决方案,结果都差不多:劳民伤财。所以,可以说,可测性差有其必然性,这是客观现实。
 
    那么,如何解决可测性问题呢?只有从测试技术的角度来考虑,才有可能找到真正有效的途径。要解决问题,我们首先要对问题有充分的了解,现在来看看可测性问题具体包含什么。
 
   
 
    一个函数要“可测”,要做到两方面:第一是能够独立运行,第二是要能够覆盖输入分类。为什么要覆盖输入分类呢?因为单元测试的目标是覆盖代码单元的功能逻辑,要做到覆盖功能逻辑,就要覆盖输入的所有分类。如果代码可测性差,又没有办法解决的话,要么没法独立运行,要么做不到覆盖输入。这两点有一个做不到,就是不可测,或者达不到预期效果。
 
   
 
    我们先来看看独�


相关文档:

C/C++ 程序设计员应聘常见面试试题深入剖析之二

   3.内功题 
  试题1:分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var) 
  解答: 
   BOOL型变量:if(!var) 
   int型变量: if(var==0) 
   float型变量: 
   const float EPSINON = 0.00001; 
  � ......

GNU C __attribute__ 机制简介

摘要:
在学习linux内核代码及一些开源软件的源码(如:DirectFB),经常可以看到有关
__attribute__的相关使用。本文结合自己的学习经历,较为详细的介绍了__attribute__
相关语法及其使用。
---------------------------------------------------------
声明:
  此文为原创,欢迎转载,转载请保留如下信息
& ......

C bomb。。。。FML~~~

输出斐波那契数列前N个合数,四个一行,N由使用者输入,介于10到30之间。
#include<stdio.h>
#include<math.h>
int fab(int);
int judge(int);
int main()
{
int a[30]={0};
int i,n,t=0;
do
{
printf("Input the number\n");
scanf("%d",&n);
}
while(n>3 ......

C/C++中动态链接库的创建和调用

转自:http://dev.yesky.com/12/3067012.shtml
动态连接库的创建步骤:
  一、创建Non-MFC DLL动态链接库
  1、打开File —> New —> Project选项,选择Win32 Dynamic-Link Library —>sample project
  —>工程名:DllDemo
  2、新建一个.h文件DllDemo.h
以下是引用片段: ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号