单元测试涉及到函数或者说类方法中的语句、判定、条件、路径等细节。对单元测试作为软件测试第一个环节重要性很高,测试的好坏直接影响到后期的IT与ST的测试工作。我们知道测试是由测试文档和测试代码组成的,单元测试检测的目的是:

  1、检测被测单元代码与详细设计文档的一致性;

  2、跟踪详细设计文档的实现,发现详细设计文档不合理处。一个好的测试组织内部要有一个好的管理流程,单元测试被分为4个阶段,每个阶段又有相应的测试标准:

  1)、测试计划:主要是安排测试时间,根据测试资源安排测试工作的划分,制定测试标准和测试中要用到的测试工具和测试方法,同时应该考虑到可能存在的风险,面对风险可以采用的解决方法;

  2)、测试设计:设计测试方案,根据详细设计文档制定测试用例的分析、解决,决定测试策略;

  3)、测试实现;编写测试驱动单元、桩单元、测试用例,测试输入数据的管理;

  4)、测试执行:测试环境的搭建,测试用例的实施,统计测试执行结果,提交错误给开发人员进行修改,同时进行回归测试;

  这四个阶段每个阶段都有测试出/入口准则、输入输出、职责和角色等。单元测试有五大基本点要测试到:

  1)、单元接口(interface):单元接口的准确与否,事关单元的测试大局,应该尽量做到单元接口的简洁与准确还有低耦合,所谓耦合是单元之间的一种连带关系;

  2)、局部数据结构(local data structure):这部分指的是局部代码中的语法和语句上的的错误,有些是因为与需求不符合,有些是因为代码执行上的不正确;

  3)、边界条件(boundary condition):凡是遇到< > =或者循环之类的语句时,要检查是否有内存越界的情况出现;

  4)、独立路径(independent path):覆盖率测试的一点,循环和运算符方面的错误多一些,有些错误会导致程序的错误结果或者死循环;

  5)、错误处理(error handling path):测试人员要对出错概率较高的情况有个估计,并对将要出现的错误向使用者做出相应的提示,并给出解决办法;高质量的测试要有正确的测试策略和好的测试工具,有人说单元测试阶段应该由开发人员完成,应为单元测试涉及到很多代码的内容,需要编写脚本完成测试,开发人员对这些来说比较应手,我觉得测试人员也应该具备语言开发方面的知识,在这的阶段也参与进去,对代码层面有一定了解之后,可以更好的做后期的工作,也可以向开发人员提出好的意见,因为测试人员比开发人员更具备质量意识;

  测试工具有很多种,比如覆盖率方面的有logiscope purecoverage truecoverage;代码静态分析工具:logiscope mccabeQa Codetest;代码检查工具:pc-lint codechk logiscope;测试脚本工具:TCL(Tool command language) pythonperl;内存检测工具:purify boundscheck 专为单元测试开发的工具:nunit dunit junit cppunit RTRT  cantata adatest

  补充一条:静态测试流程:代码的编译-代码的准则检查--代码注释率率--走读