测试基础-动态白盒测试
1.动态白盒测试
定义:也称结构化测试。利用查看代码功能(作什么)和实现方式(怎么做)得到的信息来确定哪些需要测试、哪些不需要测试、如何开展测试。
动态白盒测试包括以下4个部分:
- 直接测试底层函数、过程、子程序和库。
- 以完整程序的方式从顶层测试软件,但是根据对软件运行的了解调整测试用例。
- 从软件获得读取变量和状态信息的访问权,以便确定测试与预期结果是否相符,同时,强制软件以正常测试难以实现的方式运行。
- 估算执行测试时“命中”的代码量和具体代码,然后调整测试,去掉多余的测试用例,补充遗漏的用例。
2.动态白盒测试和调试的区别
动态白盒测试:寻找软件缺陷;
调试:修复缺陷。
3.分段测试
从测试的角度看,产生高额费用有如下两个原因:
- 难以有时甚至不可能找出导致问题的原因;
- 某些软件缺陷掩盖了其它软件缺陷。
3.1 单元测试和集成测试
在底层进行测试称为单元测试或模块测试;单元经过测试,底层软件缺陷被找出并修复之后,就集成在一起进行集成测试。
这种递增测试有两条途径:自底向上和自顶向下。
自底向上:编写测试驱动模块发送测试用例数据,接受返回结果,验证是否正确。如图所示:
自顶向下:测试一个温度显示模块,编写一小段称为桩的代码充当接口模块,把温度值直接提供给显示模块。如下图所示:测试完温度显示模块后,再去测试温度计接口模块。
3.2 单元测试示例
略
4.数据覆盖
4.1 数据流覆盖
数据流覆盖主要指在软件中完全跟踪一批数据。在单元测试级,数据仅仅通过了一个模块或者函数。同样的跟踪方式可以用于多个集成模块,甚至整个软件产品。
如果在底层测试函数,就会使用调试器观察变量在程序运行时的数据,可以检查变量的中间值。
4.2 次边界
次边界先前的内容讨论过,如果进行白盒测试,就需要仔细检查代码,找到次边界条件,并建立能测试它们的测试用例。
4.3 公式和等式
查看公式使用的变量,在程序正常输入和输出之外,为其建立测试用例和等价划分。
4.4 错误强制
如果执行在调试器中测试的程序,不仅能够观察到变量的值,还可以强制改变变量的值。于是软件不得不处理一些非常规数值或者报告处理不了。
5.代码覆盖
与黑盒测试一样,测试数据只是一半工作。为了全面地覆盖,还必须测试程序的状态以及程序流程。必须设法进入和退出每一个模块,执行每一行代码,进入软件的每一条逻辑和决策分支。这种类型的测试叫做代码覆盖。
专业工具:代码覆盖率分析器,可以获得指示软件哪些部分被执行,哪些部分未被执行的统计结果。
5.1 程序语句覆盖(代码行覆盖)
目标是保证程序中每一条语句最少运行一次。
5.2 分支覆盖
试图覆盖软件中所有的执行路径的方法。
5.3 条件覆盖
将分支语句的条件考虑在内,设计满足不同条件的测试用例。
测试基础-动态白盒测试相关推荐
- 项目测试基础:白盒测试相关知识笔记
1.白盒测试概念 白盒测试又称为结构测试,主要是根据程序的内部结构和逻辑来设计测试用例,然后对程序的路径和过程进行测试,检查是否满足设计的需要. 2.白盒测试常用的技术介绍 白盒测试常用的技术有逻辑覆 ...
- 测试基础-静态白盒测试(检查代码)
1.静态白盒测试:检查设计和代码 静态测试:测试非运行部分-检验和审查: 白盒测试:访问代码,能够查看和审查: 静态白盒测试:在不执行软件的条件下有条理地仔细审查软件设计.体系结构和代码,从而找出软件 ...
- 测试基础-动态黑盒测试
1.动态黑盒测试 不深入代码细节测试软件的方法称为动态黑盒测试. 动态:因为程序在运行: 黑盒:测试时不知道程序如何工作. 测试员输入数据.接受输出.检验结果. 2.通过性测试和失效性测试 通过性测试 ...
- 软件测试入门笔记(测试基础)by.肖洪福
第一章 测试基础 1. 什么是软件测试: 利用手工或自动化,按照测试方案对系统执行测试用例的过程 两个依据(需求.测试用例),两个方法(手工.自动),一个对比(预期结果和实际结果的对比) 软件缺陷(不 ...
- 测试岗位面试前复习之【测试基础知识篇】
测试基础知识篇 一.app测试相关 1.android与ios的app测试的区别: 2.app测试和web测试的重点: 3.性能测试考量的指标: 4.app的性能测试,需要重点关注哪些方面? 5.站在 ...
- JMeter-01-性能测试基础知识介绍
JMeter-01-性能测试基础知识介绍 开篇词 性能测试常见分类 Web服务的主要指标 前端页面的主要指标 数据库的主要指标 开篇词 参加工作这些年来,性能测试做过不少,主要用的LoadRunner ...
- 软件测试整理一:测试基础知识以及开发、测试模型、按照开发阶段进行测试
文章目录 一.基础概念 1.什么是软件测试 2.软件测试的目的 3.软件测试的原则 4.软件测试的分类 4.1 按照开发阶段分类 4.2 按照软件特性分类 4.3 按照测试技术分类 4.4 按照测试运 ...
- 软件测试面试题(一)——测试基础
1.软件的生命周期都有哪些阶段,常见的软件生命 周期模型? 软件生命周期:是指一个计算机软件从功能确定.设计,到开发成功投入使用,并在使用中不断地修改.增补和完善,直到停止该软件使用的全过程. 生命周 ...
- 最近面了12个人,发现这个测试基础题都答不上来...
一般面试我都会问一两道很基础的题目,来考察候选人的"地基"是否扎实,有些是操作系统层面的,有些是 python语言方面的,还有些- 深耕IT行业多年,我们发现,对于一个程序员而言, ...
最新文章
- IOS6.0 应用内直接下载程序 不需跳转AppStore
- [OpenCV]直线拟合
- 【组合数学】指数型母函数 应用 ( 多重集排列问题 | 不同球放在不同盒子里 | 奇/偶数序列的指数生成函数推导 )
- 使用DPM还原exchange 2013已删除邮箱数据
- 固定底部 布局_Google Flutter 布局(四)-Baseline IntrinsicWidth详解
- java web ssh启动运行程序_[javaweb开发SSH] myeclipse启动tomcat时的bug
- 收藏!目标检测优质综述论文总结!
- NSURLSession下载
- php paerser,GitHub - iSinser/sinser-php-sdk: 迅析PHP SDK
- LinuxC语言のUDP简易聊天室 sokcet
- WIFI篇(3.python破解wifi--pywifi的介绍)
- cad 2020安装失败,怎么完全彻底卸载删除清理干净cad 2020各种残留注册表和文件? 【转载】
- 如何用WPS在所需的页面设置奇偶数页眉
- php 字符显示不出来,ps文字显示不出来怎么办?
- 火狐书签栏 谷歌_适用于Firefox的Google工具栏等
- 3D语义场景图论文小记
- 深度学习AI美颜系列---图像自动亮度对比度与调色
- AF Haf tuning <4>
- 求职:遇到线上性格测评你会如实回答吗?
- 修改centos终端提示符背景色
热门文章
- 【数论】整除分块(数论分块)
- VUE element-ui之form表单自定义验证11位手机号码(封装验证规则)
- Python最简单的文字游戏——数字炸弹
- 传统管理软件走在“生死边缘”,突围SaaS向死而生?
- OrientedRepPoints_DOTA环境搭建训练流程及问题
- [AV1] DC Intra Prediction
- 深入浅出 - Android系统移植与平台开发(十)- Android编译系统与定制Android平台系统
- Octave简明教程
- fcm算法 java_使用FCM从服务器发送推送通知
- 24段魔尺,可以折出哪些精美图案(续)