软件测试与维护(七)Unit Test

软件测试与维护(七):Unit Test

单元测试基本概念

单元测试的定义

  • 定义:单元测试是对软件基本组成单元进行的测试。
  • 时机:一般是在代码完成后由开发人员完成,QA人员辅助。
  • 概念
    • 单元:有明确的功能、性能定义、接口定义的软件设计最小单元–模块。
    • 不是函数或类中的方法!而是模块或者类。

单元测试的内容

  • 单元模块:局部数据结构、模块接口、出错处理、独立路径、边界条件

辅助模块

  • 单元测试示意图

07-01 单元测试模型示意图

  • 驱动模块(driver):用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启用被测模块,并打印出相应的结果。

  • 桩模块(Stub):模拟被测试的模块所调用的模块,而不是软件产品的组成的部分。主模块作为驱动模块,与之直接相连的模块用桩模块代替。

单元测试策略

  • 白盒测试与黑盒测试
    • 静态白盒测试在现实中较少使用
  • 正式代码审查的基本要素 Essential elements of a formal code review
    • 识别问题 Idetify problems
    • 遵循规则 Follow rules
    • 准备 Prepare
    • 书写报告 Write a report
  • 非正式代码检查 Informal code inspections
    • 同级审查 Peer Reviews
      • 采用讲解、提问方式进行,一般有正式的计划、流程和结果。主要方法采用缺陷检查表。
      • 会议形式、报告、缺陷检查表
    • 走查 Walk throughs
      • 采用讲解、讨论和模拟运行的方式进行的查找错误的活动
  • 正式的代码检查
    • 正式的代码检查有利于发现代码和设计中的问题
  • TDD 测试驱动开发 Test-Driven Development
    • 先编写测试用例,再进行开发

07-02 TDD流程

单元测试工具

  • xUnit框架
    • JUnit, CppUnit
    • 针对自动化单元测试框架的实际标准
    • 测试、测试装置、测试套件、测试运行器
  • JUnit
    • 开发源代码的Java测试框架,用于编写和运行可重复的测试。一般用来进行单元测试。
    • 测试类(TestCase)、测试套件(TestSuite)、测试方法、测试运行器
  • Parasoft JtestParasoft C++ Test

单元测试的过程和文档管理

  • 过程
    • 在详细设计阶段完成单元测试计划
    • 建立单元测试环境,完成测试设计和开发
    • 执行单元测试用例,并且详细记录测试结果
    • 判定测试用例是否通过
    • 提交《单元测试报告》
  • 文档
    • 软件需求规格说明书、软件详细说明书 –> 单元测试计划
    • 单元测试计划、软件详细设计说明书 –> 单元测试用例
    • 单元测试用例、软件需求规格说明书、软件详细设计说明书 –> 缺陷跟踪报告/缺陷检查表
    • 单元测试用例、缺陷跟踪报告、缺陷检查表 –> 评估 –> 单元测试报告

  Reprint please specify: Yi勒 软件测试与维护(七)Unit Test

 Previous
软件测试与维护(八)Integration Test & System Test 软件测试与维护(八)Integration Test & System Test
软件测试与维护(八):Integration Test & System Test测试环境的建立测试环境的五要素 基本要素:软件、硬件 派生要素:网络环境、数据准备、测试工具 测试部门建设模式 独立运作、与第三方测试机构合作、与相
Next 
软件测试与维护(六)White Box Text 软件测试与维护(六)White Box Text
软件测试与维护(六):White Box Test白盒测试(White-Box Testing) 基本原理:基于过程设计的控制结构导出测试用例。 白盒测试分类 Control Flow-Testing 逻辑分支覆盖法 语句覆盖、判定覆盖、条
  TOC