第5章 单元测试


5.1 单元测试的目标和任务

  单元测试:对软件基本的组成单元进行独立的测试

  单元测试编码同步进行,但在“测试驱动开发”(Test Driven Development,TDD)强调测试在先,编码在后。单元测试一般由开发人员完成,QA人员辅助。

  单元测试原因:尽早发现错误 ; 检查代码是否符合设计和规范,有利于将来代码的维护
      目标:单元模块被正确编码
  任务:

  1. 任务一:模块独立执行路径测试
    检查每一条独立执行路径的测试,并保证每条语句被至少执行一次。
    检查内容:
        误解或用错了算符优先级
        混合类型运算
        变量初值错
        精度不够
        表达式符号错
        其它

  2. 任务二:局部数据结构测试
    检查局部数据结构完整性
    检查内容:
        不适合或不相容的类型说明
        变量无初值
        变量初始化或默认值有错
        不正确的变量名或从来未被使用过
        出现上溢或下溢和地址异常
        其它

  3. 任务三:模块接口测试
    检查模块接口是否正确
    检查内容:
        输入的实际参数与形式参数是否一致(个数、属性、量纲)
        调用其他模块的实际参数与被调模块的形参是否一致(个数、属性、量纲)。
        全程变量的定义在各模块是否一致。
        外部输入、输出
        文件、缓冲区、错误处理
        其它

  4. 任务四:单元边界条件测试
    检查临界数据处理的正确性
    检查内容:
        普通合法数据的处理。
        普通非法数据的处理。
        边界值内合法边界数据的处理。
        边界值外非法边界数据的处理。
         其它

  5. 任务五:单元容错测试
    预设的各种出错处理是否正确有效。
    检查内容:
        输出的出错信息难以理解
        记录的错误与实际不相符
        异常处理不当
        未提供足够的定位出错的信息
        其它

5.2 静态测试技术的运用

  静态测试技术: 不运行被测试程序,对代码通过检查、阅读进行分析
  共分为三步:互查(Peer Review);走查 (Walk Through);’评审 ( Inspection )

  实施代码规范的原因:可靠性、可读性、可维护性、可移植性。

  1. 互查
    技术人员互相检查代码

  2. 走查
    采用讲解、讨论和模拟运行的方式进行的查找错误的活动。
    注意:
      ①引导小组成员在走查前通读设计和编码。
      ②限时,避免跑题
      ③发现问题适当记录,避免现场修改
      ④检查要点是代码是否符合标准和规范,是否有逻辑错误

  3. 审查
    ①以会议形式,制定目标、流程和规则
    ②按缺陷检查表(不断完善)逐项检查
    ③发现问题适当记录,避免现场修改
    ④发现重大缺陷,改正后会议需要重开。
    在这里插入图片描述

走查与审查比较
在这里插入图片描述

5.3 动态测试

  动态测试:需要真正将程序运行起来,需要设计系列的测试用例保证测试的完整性和有效性(黑盒测试、白盒测试)。

  驱动程序桩程序:运行单元程序有时需要基于被测单元的接口,开发相应的驱动模块和桩模块。
  驱动模块(drive):对底层或子层模块进行测试所编写的调用这些模块的程序。eg;main()函数
  桩模块(stub):对顶层或上层模块进行测试时所编写的替代下层模块的程序。eg:方法在这里插入图片描述

  前置条件:类型承担某些职责的时候需要一定的资源,即:前置条件,如果不满足前置条件,则说明:调用代码有问题。

  后置条件:客户遵守了条件,类型必须兑现其承诺,即:后置条件,如果不满足后置条件·:则说明·:业务逻辑有问题。

对象交互性测试

  汇集类测试:可以使用测试原始类的方法来测试汇集类,创建一些实例,确保实例作为消息中的参数被传递给正在测试的集合:①存放这些对象的引用(对象之间一对多的关系)②创建、删除这些对象的实例
  协作类测试: 集中测试对象之间调用关系,包括对象在被使用过程中属性是否按定义的要求被正确使用、或被修改

5.4 单元测试常用工具简介

JUnit

Junit:一个开放源代码的Java测试框架(单元测试框架体系xUnit的一个实例),用在编写和运行可重复的的测试上,包括如下特性:

  • 提供了编写测试类的框架,使测试代码的编写更方便
  • 共享测试数据的测试工具
  • 方便地组织和运行测试的测试套件
  • 可以使测试代码与产品代码分开,这更有利于代码的打包发布和测试代码的管理
  • 易于集成到程序构建过程中,JUnit和Ant的结合还可以实施增量开发。
  • 具有很强的扩展性
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值