单元测试、黑盒测试、白盒测试
目录
单元测试
黑盒测试
白盒测试
单元测试
- 概念:单元测试(Unit Testing)是对软件基本组成单元进行的测试,如函数或是一个类的方法。这里的单元,就是软件设计的最小单位。
- 单元测试的两个步骤:人工静态检查法与动态执行跟踪法。
- 人工静态检查是测试的第一步,这个阶段工作主要是保证代码算法的逻辑正确性(尽量通过人工检查发现代码的逻辑错误)、清晰性、规范性、一致性、算法高效性,并尽可能的发现程序中没有发现的错误。
- 第二步是通过设计测试用例,执行待测程序来跟踪比较实际结果与预期结果来发现错误。
3. 人工检查:
- (1)、检查算法的逻辑正确性:确定所编写的代码算法、数据结构定义(如:队列、堆栈等)是否实现了模块或方法所要求的功能。
- (2)、模块接口的正确性检查:确定形式参数个数、数据类型、顺序是否正确;确定返回值类型及返回值的正确性。
- (3)、输入参数有没有作正确性检查:如果没有作正确性检查,确定该参数是否的确无需做参数正确性检查,否则请添加上参数的正确性检查。
- (4)、调用其他方法接口的正确性:检查实参类型正确与否、传入的参数值正确与否、个数正确与否,特别是具有多态的方法。返回值正确与否,有没有误解返回值所表示的意思。最好对每个被调用的方法的返回值用显示代码作正确性检查,如果被调用方法出现异常或错误程序应该给予反馈,并添加适当的出错处理代码。
4. 动态执行跟踪:动态执行测试通常分为黑盒测试与白盒测试。对于单元测试来说主要应该采用白盒测试法对每个模块的内部作跟踪检查测试。对于单元白盒测试,应该对程序模块进行如下检查:(1)、对模块内所有独立的执行路径至少测试一次;(2)、对所有的逻辑判定,取“真”与“假”的两种情况都至少执行一次;(3)、在循环的边界和运行界限内执行循环体;(4)、测试内部数据的有效性等等。
5. 单元测试的目的:在于发现各模块内部可能存在的各种错误,主要是基于白盒测试。
单元测试的目的主要有3方面:验证单元代码和详细设计文档的一致性;跟踪详细设计文档中设计的实现,发现详细设计文档中存在的错误;发现在编码过程中引入的错误。
6. 单元的常见错误:(1)、单元接口;(2)、局部数据结构;(3)、独立路径;(4)、出错处理;(5)、边界条件。
7. 单
元测试策略:有三种,独立的单元测试策略,自顶向下的单元测试策略和自底向上的单元测试策略。
- 独立的测试策略:不考虑每个模块与其他模块之间的关系,为每个模块设计桩模块和驱动模块。每个模块进行独立的单元测试。
- 自顶向下的测试策略:先对最顶层的单元进行测试,把顶层所调用的单元做成桩模块。其次对第二层进行测试,使用上面已测试的单元做驱动模块。如此类推直到测试完所有模块。
- 自底向上测试:先对模块调用层次图上最低层的模块进行单元测试,模拟调用该模块的模块做驱动模块。然后再对上面一层做单元测试,用下面已被测试过的模块做桩模块。依次类推,直到测试完所有模块。
8. 单元测试过程:计划(测什么)、设计(测试方案、策略)、实现(写测试用例、代码)、执行(测试报告)四个阶段。
黑盒测试
- 黑盒测试就当整个程序是个黑盒子,我们看不到它里面做了些什么事情,只能通过输入输出看是否能得到我们所需的来测试。
- 黑盒测试又称为功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试。测试人员一般把被测程序当作一个黑盒子。
- 黑盒测试主要测到的错误类型有:不正确或遗漏的功能;接口、界面错误;性能错误;数据结构或外部数据访问错误;初始化或终止条件错误等等。
- 常用的黑盒测试方法有:等价类划分法;边界值分析法;因果图法;场景法;正交实验设计法;判定表驱动分析法;错误推测法;功能图分析法。
白盒测试
- 白盒测试可以当盒子是透明的,里面的一切我们都看的清楚,从而我们可以通过去测内部结构来测试。
- 白盒测试也称为结构测试或逻辑驱动测试,是针对被测单元内部是如何进行工作的测试。它根据程序的控制结构设计测试用例,主要用于软件或程序验证。
- 白盒测试法检查程序内部逻辑结构,对所有的逻辑路径进行测试,是一种穷举路径的测试方法,但即使每条路径都测试过了,但仍然有可能存在错误。因为:穷举路径测试无法检查出程序本身是否违反了设计规范,即程序是否是一个错误的程序;穷举路径测试不可能检查出程序因为遗漏路径而出错;穷举路径测试发现不了一些与数据相关的错误。
- 白盒测试需要遵循的原则有: 1. 保证一个模块中的所有独立路径至少被测试一次;2. 所有逻辑值均需要测试真(true)和假(false);两种情况;3. 检查程序的内部数据结构,保证其结构的有效性;4. 在上下边界及可操作范围内运行所有循环。
- 白盒测试方法有: 静态测试&动态测试
单元测试、黑盒测试、白盒测试相关推荐
- 计算机二级白盒测试和黑盒测试,白盒测试和黑盒测试
白盒测试和黑盒测试 发表于:2009-06-19来源:作者:点击数: 标签:白盒 从哲学观点看,分析问题和解决问题的方法有两种:白盒子方法和黑盒子方法.所谓白盒子方法就是能够看清楚事物的内部,即了解事 ...
- 黑盒测试 白盒测试 题
习题1 为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖.判定覆盖.条件覆盖.判定/条件覆盖.组合覆盖和路径覆盖. 语句覆盖 原则覆盖程序中所有可执行的语句 设计的测试用例如下 编号 输 ...
- 黑盒测试 白盒测试 题 1
习题1 为以下流程图所示的程序段设计一组测试用例,要求分别满足语句覆盖.判定覆盖.条件覆盖.判定/条件覆盖.组合覆盖和路径覆盖. 语句覆盖 原则覆盖程序中所有可执行的语句 设计的测试用例如下 编号 输 ...
- WEB项目开发的一般流程
1 需求确定 通过各种方法确定系统的功能与性能. 功能:注册.登录.查询.搜索... 性能:可同时支持N个并发访问,并且响应时间不低于M毫秒... 方法: 会议 询问 头脑风暴 原型-界面原型.业务原 ...
- 黑盒测试与白盒测试区别
黑盒测试与白盒测试区别 黑盒测试 白盒测试 主要区别 黑盒测试 不考虑内部的逻辑结构和具体运作,依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明要求,检测输出结果是否符合 白盒测试 与黑盒 ...
- 白盒基本路径发测试实验报告_软件生命周期、白盒测试、黑盒测试
继上一讲: 隅巳毕月:达摩克里斯之--排序与查找技术zhuanlan.zhihu.com 我们今天来讲一下软件周期与两种软件测试方法 软件开发应遵循一个软件的生命周期,通常把软件产品从提出.实现.使 ...
- 软件测试-黑盒测试,白盒测试,灰盒测试
黑盒测试 概述 实际上就是功能测试,不关心程序的内部结构,只关心输入输出.基于产品需求和用户观点出发的测试,查看界面规划是否符合界面需求,查看是否有功能遗漏,是否有人机交互错误,数据库结构错误,检测行 ...
- 黑盒测试,白盒测试与灰盒测试的比较和区别
定义 黑盒测试 黑盒测试是一种软件测试技术,它可以检查软件的功能,而不会窥视其内部结构或编码.黑盒测试的主要来源是客户声明的要求规范. 在此方法中,测试人员选择一个函数并提供输入值以检查它的功能,并检 ...
- 【软件工程】软件测试目标定义 黑盒测试、白盒测试
记录 软件工程北大-软件测试技术课件 文章目录 著名的软件错误案例研究 1.迪斯尼的狮子王 2.美国航天局火星基地登陆,1999 3.爱国者导弹防御系统,1991 4.千年虫,大约1974 软件测试的 ...
- 【测试开发】掌握测试用例的设计以及什么是黑盒测试?什么是白盒测试?
目录 一.测试用例的概念 二.设计测试用例的方法 2.1 等价类 2.2 边界值 2.3 错误猜测法 2.4 场景设计法 2.5 因果图 2.6 正交排列(使用较少) 三.测试方法 黑盒测试 白盒测试 ...
最新文章
- ML基石_10_LogisticRegression
- 2021年春季学期-信号与系统-第三次作业参考答案-第四道题
- python三十二:os模块
- C++箴言:理解inline化的介入和排除
- spring ldap_Spring 3,Spring Web Services 2和LDAP安全
- java----DBUtils知识点补充
- 正月初二 | 2月13日 星期六 | 大年初一单日票房创新纪录;除夕当天外卖订单增七成;央视春晚直播受众达11.4亿人...
- android四大组件共性,Android四大组件及意图和意图过滤器
- java按顺序生成编号_Java生成有规则的编号
- HBuilderX快捷键大全
- 苹果邮箱怎么登录qq邮箱_qq邮箱app下载安装-手机QQ邮箱2020下载v6.1.0 官方安卓版...
- USB OVER Network的使用(共享usb端口)
- 微信小程序之js 字符串转换成数字的三种方法, 取float型小数点后两位数的方法
- 白话空间统计之:空间异质性
- 整理:对开发者有用的英文网站合集
- 邮件里面的图怎么复制出来_图文并茂的电子邮件制作,只要你想,你也能做到...
- 不用任何框架,Java 就能实现定时任务的 3 种方法
- 移动平均线SMA/EMA/SMMA/LWMA
- 关注 | 蛙色元宇宙,正式成为XRMA联盟成员单位
- 如何自动识别是NOR flash 启动还是NAND flash启动
热门文章
- window.open打开txt文件
- 【wpa_supplicant】 初始化
- vue点击网页全屏_vue实现浏览器全屏展示功能
- 解决:error: Microsoft Visual C++ 14.0 or greater is required. Get it with “Microsoft C++ Build Tools“
- Kotlin StandardKt
- Jdk8 中文 api(百度网盘免费下载)
- android sqlite多条件查询,sqlite 多条件查询
- 微信小程序-中英文文本换行的小问题
- 认知水平越低,人越固执
- 在财务中python能做什么_Python在财务会计工作中的应用【举例】