• 单元测试


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

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

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

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

    单元测试的目标

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

    单元测试的任务

    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.评审
    
  • 相关阅读:
    mac OS 安装 Eclipse
    已有项目接入git远程仓库
    MutationObserver 监听 DOM 树变化
    MutationObserver 监听 DOM 树变化
    使用react脚手架create-react-app创建react应用
    Eclipse Mac OS版 卸载svn插件subclipse
    vuex
    Flutter仿网易云音乐:播放界面
    Flutter仿网易云音乐:播放界面
    C#完美读取CSV
  • 原文地址:https://www.cnblogs.com/hleisurely/p/12868967.html
Copyright © 2020-2023  润新知