单元测试、黑盒测试、白盒测试

目录

 单元测试

黑盒测试

 白盒测试


 单元测试

  1.  概念:单元测试(Unit Testing)是对软件基本组成单元进行的测试,如函数或是一个类的方法。这里的单元,就是软件设计的最小单位。
  2. 单元测试的两个步骤:人工静态检查法与动态执行跟踪法。
  • 人工静态检查是测试的第一步,这个阶段工作主要是保证代码算法的逻辑正确性(尽量通过人工检查发现代码的逻辑错误)、清晰性、规范性、一致性、算法高效性,并尽可能的发现程序中没有发现的错误。
  • 第二步是通过设计测试用例,执行待测程序来跟踪比较实际结果与预期结果来发现错误。   

     3. 人工检查:

  • (1)、检查算法的逻辑正确性:确定所编写的代码算法、数据结构定义(如:队列、堆栈等)是否实现了模块或方法所要求的功能。
  • (2)、模块接口的正确性检查:确定形式参数个数、数据类型、顺序是否正确;确定返回值类型及返回值的正确性。
  • (3)、输入参数有没有作正确性检查:如果没有作正确性检查,确定该参数是否的确无需做参数正确性检查,否则请添加上参数的正确性检查。
  • (4)、调用其他方法接口的正确性:检查实参类型正确与否、传入的参数值正确与否、个数正确与否,特别是具有多态的方法。返回值正确与否,有没有误解返回值所表示的意思。最好对每个被调用的方法的返回值用显示代码作正确性检查,如果被调用方法出现异常或错误程序应该给予反馈,并添加适当的出错处理代码。

  4.   动态执行跟踪:动态执行测试通常分为黑盒测试与白盒测试。对于单元测试来说主要应该采用白盒测试法对每个模块的内部作跟踪检查测试。对于单元白盒测试,应该对程序模块进行如下检查:(1)、对模块内所有独立的执行路径至少测试一次;(2)、对所有的逻辑判定,取“真”与“假”的两种情况都至少执行一次;(3)、在循环的边界和运行界限内执行循环体;(4)、测试内部数据的有效性等等。

5.  单元测试的目的:在于发现各模块内部可能存在的各种错误,主要是基于白盒测试。

单元测试的目的主要有3方面:验证单元代码和详细设计文档的一致性;跟踪详细设计文档中设计的实现,发现详细设计文档中存在的错误;发现在编码过程中引入的错误。

6.  单元的常见错误:(1)、单元接口;(2)、局部数据结构;(3)、独立路径;(4)、出错处理;(5)、边界条件。

7.  单

元测试策略:有三种,独立的单元测试策略,自顶向下的单元测试策略和自底向上的单元测试策略。

  • 独立的测试策略:不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和驱动模块。每个模块进行独立的单元测试。
  • 自顶向下的测试策略:先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。其次对第二层进行测试,使用上面已测试的单元做驱动模块。如此类推直到测试完所有模块。
  • 自底向上测试:先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模块的模块做驱动模块。然后再对上面一层做单元测试,用下面已被测试过的模块做桩模块。依次类推,直到测试完所有模块。

8.  单元测试过程:计划(测什么)、设计(测试方案、策略)、实现(写测试用例、代码)、执行(测试报告)四个阶段。

9.  单元测试的原则:(1)、对全新的代码或修改过的代码进行单元测试;(2)、单元测试根据单元测试计划和方案进行,排除测试的随意性;(3)、必须保证单元测试计划、单元测试方案、单元测试用例等经过评审;(4)、当测试用例的测试结果与预期结果不一致时,单元测试的执行人员需如实记录实际的测试结果;(5)、只有当测试计划中的结束标准达到时,单元测试才能结束;(6)、对被测试单元需达到的一定的代码覆盖率要求。

黑盒测试

  • 黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试。
  • 黑盒测试又称为功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试。测试人员一般把被测程序当作一个黑盒子。
  • 黑盒测试主要测到的错误类型有:不正确或遗漏的功能;接口、界面错误;性能错误;数据结构或外部数据访问错误;初始化或终止条件错误等等。
  • 常用的黑盒测试方法有:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。 

 白盒测试

  • 白盒测试可以当盒子是透明的,里面的一切我们都看的清楚,从而我们可以通过去测内部结构来测试。 
  • 白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。
  • 白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,但即使每条路径都测试过了,但仍然有可能存在错误。因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷举路径测试不可能检查出程序因为遗漏路径而出错;穷举路径测试发现不了一些与数据相关的错误。
  • 白盒测试需要遵循的原则有: 1. 保证一个模块中的所有独立路径至少被测试一次;2. 所有逻辑值均需要测试真(true)和假(false);两种情况;3. 检查程序的内部数据结构,保证其结构的有效性;4. 在上下边界及可操作范围内运行所有循环。
  • 白盒测试方法有: 静态测试&动态测试

 

  • 1
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值