带你轻松解密白盒测试及(Demo详解)"/>
带你轻松解密白盒测试及(Demo详解)
白盒测试”可以理解为一种专门用于评估代码及程序内部结构的测试技术,也有结构测试这么一说,因为白盒测试会涉及查看代码的结构。对于测试工程师而言,如果你知道软件产品/系统或应用程序的内部结构,就尽早展开针对性的测试以确保程序内部操作是按照规范运行的,并且所有内部结构都能得到充分的测试执行。
随着互联网大数据AI时代的接踵而至,测试人员从原始的手工功能测试,进化到面向不同方向的自动化测试,与此同时职能岗位也从测试升级为测试开发。对于测试工程师而言,总有需要持续学习的东西,无论是领域、过程还是技术。今天我们就来聊一聊测试人员的技术“阴暗面”,为什么说这是一个“阴暗面”,因为大家不擅长嘛,无论是立志于从事测试行业的学生,还是在职测试工程师,都会有意无意避免这种被认为非常复杂、而对开发人员来说却又轻而易举的测试技术。没错,就是“白盒测试”!
1. 白盒测试覆盖率(Coverage)
白盒测试中约定的代码覆盖率包含以下几个核心准则:
(1) 代码片段覆盖—— 确保指定代码块中的每个代码语句都能被执行一次;
(2) 分支覆盖或节点测试—— 覆盖每个代码分支中的所有可能;
(3) 复合条件覆盖—— 对于多个条件,采用多个路径不同组合的情况下,确保每个条件都被触发执行对应的代码片段;
(4) 基础路径测试—— 针对代码中每个独立路径进行测试;
(5) 数据流测试(DFT) —— DFT看似是个新名词,实则指的是特定变量的追踪,在测试中我们往往需要追踪一个变量值的变化(这似乎有点像你在pycharm中针对一个循环变量做断点调试,观察每次循环中变量值的变化),在白盒测试中,我们需要在代码中定义一组中间路径,用于跟踪我们关心的变量经过每一次代码“计算”后该值的变化。简而言之,跟踪每个数据变量并验证其是否被正确使用。这种方法往往会发现一些隐藏的bug,比如使用了未经初始化的变量,或者虽然声明了但却一直没有被使用的变量,等等;
(6) 路径测试—— 即覆盖代码中所有可能的路径,这项任务也是相当耗时的;
(7) 循环测试—— 这种测试策略分别针对于单个循环、串联循环(即循环中调用了包含循环的代码块)和嵌套循环有关。使用这种方法用于测试独立循环和依赖循环中涉及的代码及所关注的变量;
2. 为什么需要白盒测试?
我们从
更多推荐
带你轻松解密白盒测试及(Demo详解)
发布评论