zoukankan      html  css  js  c++  java
  • 单元测试

    单元测试中,所谓单元是如何划分

    单元测试的对象通常是软件设计的最小逻辑单元,单元的划分在面向过程的结构化程序中一般是函数或子过程,在面向对象的程序中可以是类或类的成员函数。

    软件开发中,为何要进行单元测试

    进行单元测试,主要是为了在开发的过程中发现错误,发现错误越早,成本就越低,同样值得考虑的是,在单元测试中发现问题也比较容易,修正问题更容易,将软件开发的过程中,发现越晚,修复成本越高;检查代码是否符合设计和规范,这有利于将来代码的维护

    单元测试的目标

    目标:单元模块被正确编码
    信息能否正确地流入和流出单元
    在单元工作过程中,其内部数据能否保持其完整性,包括内部数据的形式,内容及相互关系不发生错误,全局变量在单元中的处理和影响
    为限制数据加工而设置的边界处,能否正确工作
    单元的运行能否做到满足特定的逻辑覆盖

    单元测试的任务

    1).检查每一条独立执行路径的测试,并保证每条语句被至少执行一次:
    路经测试也称为覆盖测试。在单元测试中,最主要的测试是针对路径的测试。测试用例必须能够发现由于计算错误、不正确的判定或不正常的控制流而产生的错误

    1.误解或用错了算符优先级
    2.混合类型运算
    3.变量初值错误
    4.精度不够
    5.表达式符号错误
    6.其它
    

    2).检查局部数据结构完整性:
    必须测试其内部的数据能否保持完整性,包括内部数据的内容、形式及相互关系不发生错误

    1.不适合或不相容的类型说明
    2.变量无初值
    3.变量初始化或默认值有错
    4.不正确的变量名或从来未被使用过
    5.出现上溢或下溢和地址异常
    6.其它
    

    3).检查模块接口是否正确:
    检查进出程序单元的数据流是否正确。对模块接口数据流的测试必须在任何其他测试之前进行,因为如果不能确保数据正确的输入和输出的话,所有的测试都是没有意义的

    1.输入的实际参数与形式参数是否一致(个数、属性、量纲)
    2.调用其他模块的实际参数与被调模块的形参是否一致(个数、属性、量纲)
    3.全程变量的定义在各模块是否一致
    4.外部输入、输出
    5.文件、缓冲区、错误处理
    6.其它
    

    4).检查临界数据处理的正确性:
    目的是检测在数据边界处模块能否正常工作,边界测试是单元测试的一个关键任务

    1.普通合法数据的处理
    2.普通非法数据的处理
    3.边界值内合法边界数据的处理
    4.边界值外非法边界数据的处理
    5.其它
    

    5).预设的各种出错处理是否正确有效:
    良好的设计应该预先估计到投入运行后可能发生的错误,并给出相应的处理措施,使得用户不至于束手无策

    1.输出的出错信息难以理解
    2.记录的错误与实际不相符
    3.异常处理不当
    4.未提供足够的定位出错的信息
    5.其它
    

    6).内存分析(内存泄漏也会导致系统崩溃)

    单元的静态测试

    三步曲

    1.互查
    2.走查
    3.评审
    
  • 相关阅读:
    WRF WPS预处理
    CVS安装
    Linux窗口最小化消失,任务栏上无法找到的解决方法
    NCARG安装配置出现error while loading shared libraries: libg2c.so.0问题额解决办法
    Netcdf安装
    Embedding R-generated Interactive HTML pages in MS PowerPoint(转)
    The leaflet package for online mapping in R(转)
    Some 3D Graphics (rgl) for Classification with Splines and Logistic Regression (from The Elements of Statistical Learning)(转)
    What does a Bayes factor feel like?(转)
    Weka算法介绍
  • 原文地址:https://www.cnblogs.com/hleisurely/p/12868967.html
Copyright © 2011-2022 走看看