之前一直在做黑盒测试,最近公司需要做白盒测试,在网上查阅了一些资料,做白盒测试代码应该怎么测试?现总结如下:

1、白盒测试一种测试方法,单元测试是一种测试类型。

白盒测试一般是使用工具进行各个指标测试,如语句覆盖、分支覆盖、条件覆盖等等。

白盒测试又分静态和动态,静态就是代码的规则规范检测等,动态就是单元测试、覆盖率测试、内存检测,运行时错误检测等。

2、进行白盒测试,首先你要会编程比如Java、python等。

测试的时候你可能需要写一点简单的代码来调用这个函数,这就是所谓的驱动函数,你也可能需要写一些代码来接收或者验证被测单元的输出是否正确,这就是所谓的桩函数;白盒测试方法就是你通过分析被测单元的实现代码,根据不同的测试策略(如分支覆盖或者逻辑覆盖等)来设计测试用例并作相应的测试。

白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等;动态测试工具与静态测试工具不同,动态测试工具的一般采用“插桩”的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是动态测试工具要求被测系统实际运行。

白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等;动态测试工具与静态测试工具不同,动态测试工具的一般采用“插桩”的方式,向代码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的不同就是动态测试工具要求被测系统实际运行。

提到白盒测试的用例,首先想到的是接口测试用例和逻辑覆盖用例,但小白最近遇到了这样的一个问题:

问题:黑盒白盒同时进入测试,黑盒测平台,白盒测核心,项目上线时间为平台测试结束时间,开始迫于压力将核心的测试完成时间压缩到上线前,但后期时间紧张,测试混乱、不全面,上线问题较多,压力山大。

面对这样的问题大家怎么考虑的呢,我认为这个问题的直接原因有两个:

白盒测试效率较低,前期需要铺垫的东西较为复杂(代码了解、用例编写、用例调试等),等白盒测试这边铺垫完成,黑盒这边功能都测完了;

白盒测试人员考虑问题简单,认为所有待测的核心功能都需要白盒测试,没有针对不同的功能选择测试的方法,导致将大量的时间耗费在一些没有必要做白盒测试的功能上;

怎样解决这样的问题呢,首先要先清楚各种测试手段的优势和劣势:

随机测试的时间消耗最少但覆盖面也最小,适合做回归测试;

黑盒测试的时间消耗中等覆盖面较全面,适合做直观功能的测试;

白盒测试的时间消耗较高但覆盖面十分全面,适合做核心逻辑的验证;

自动化测试的时间消耗极高可覆盖规模性的数据,适合做策略性的验证;

根据上面所述测试手段的优势和劣势,我们尝试用下面的办法解决上述的问题:

白盒测试排期前,需要针对测试的功能和测试的时间判断测试的手段,根据测试手段的不同和时间消耗给出准确的排期;

对于项目进行中插入进来的任务要考虑当前测试时间是否宽裕、插入任务是否复杂,考虑后再判断是否要接插入任务;

软件测试过程中遇到白盒用例设计较为复杂的情况时,应考虑是否可以采用其他方式(如黑盒测试)的方式来解决,不应钻牛角尖,将大量时间花费在写用例代码上。

python三角形判断白盒测试的代码_白盒测试代码应该怎么测试相关推荐

  1. java白盒测试代码_白盒测试之代码审查

    白盒测试之代码审查 代码审查 单元测试 单元测试用例设计 白盒测试方法之逻辑覆盖法 语句覆盖(最早出现的逻辑覆盖方法) 判定覆盖 条件覆盖 判定-条件覆盖 条件组合覆盖 是看着课程听的,做的课程的随堂 ...

  2. python多个条件组合覆盖_白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖...

    ·昂贵 ·无法检测代码中遗漏的路径和数据敏感性错误 ·不验证规格的正确性 六种覆盖方法 首先为了下文的举例描述方便,这里先给出一张程序流程图.(本文以1995年软件设计师考试的一道考试题目为例,图中红 ...

  3. python三角形判断_python三角形判定怎么做

    python三角形判定怎么做?下面给大家带来具体的例子: 相关推荐:<Python视频教程> 例子:a = int(input("The length of the side a ...

  4. 管理员所有权代码_为什么代码所有权糟透了,您永远不应该在有实践的地方工作...

    管理员所有权代码 Code ownership sucks. 代码所有权糟透了. It limits code and stunts your growth as a developer. 它限制了代 ...

  5. 网页漂浮物代码_无代码VS低代码。 有什么不同? 它。 不。 物。

    网页漂浮物代码 You may hear the terms "No Code" and "Low Code" thrown around by develop ...

  6. python三角形判断白盒测试的代码_进化的测试 软件测试,自动化测试,白盒测试,Python...

    用Selenium实现自动化测试的过程中,如果选择页面上的元素并且对之进行各种操作,是一个常见的任务.Selenium提供了多种定位方法: id:最有效.最方便的方法 name:跟id类似的 clas ...

  7. python如何判断tcp异常断开_如何判断TCP连接已经中断?

    用Python写网络应用是很常见的,因此一个常见的问题就是,如何在Python代码中判断TCP链接已经中断? TCP有连接,如果通讯的某一方中断的连接,另外一方在socket层面如何感知?这个问题我也 ...

  8. python原理及代码_原理+代码|详解层次聚类及Python实现

    前言 聚类分析是研究分类问题的分析方法,是洞察用户偏好和做用户画像的利器之一.聚类分析的方法非常多,能够理解经典又最基础的聚类方法 -- 层次聚类法(系统聚类) 的基本原理并将代码用于实际的业务案例是 ...

  9. python 代码_实战代码 | 30 个Python小代码,收藏。

    本模板旨在分享和解读完整代码,只要你有安装配置好python环境,在pycharm里安装相应的第三方文件库,黏贴代码即可运行,我会尽量在代码后面都进行标注解读.我们以实用型为目的学习.编程类学习,从模 ...

最新文章

  1. Loadrunner脚本学习总结
  2. HTML5语言教程:渐进使用HTML5语言识别
  3. 主成分分析法(PCA)原理漫谈
  4. 桌面快捷键和桌面livefolder
  5. python可以写安卓应用吗_python可以编写android程序吗?
  6. 【AtCoder】ARC078
  7. 10.31T4 HAOI2010最长公共子序列 计数+容斥原理
  8. ckeditor回显带标签_Spring Boot中带有CKEditor的AJAX
  9. 网页版四则运算(未全部完成)
  10. jsonp的简单学习
  11. Missing iOS Distribution signing identity问题解决
  12. 02-body标签中相关标签
  13. string和string.h以及cstring的区别
  14. 几款web富文本编辑器汇总整理
  15. mysql计算相关系数_用sql实现相关系数的计算
  16. java太阳系论文摘要_毕业论文摘要
  17. 云打码实现验证码识别
  18. [题目解析]乐乐的数字
  19. APM的3DR无线数传的安装
  20. Mapped Statements collection does not contain value for 解决方法之一

热门文章

  1. ubuntu2-ubuntu更换源
  2. 【微信授权】极其简单的实现方法
  3. unc 目录不受支持_不支持UNC路径(\\ machine \ share)
  4. Android代码覆盖工具,又是一波骚操作
  5. 18_独立开门狗试验
  6. 【lrzsz】Linux上lrzsz的安装和使用
  7. IDEA 插件:效率神器 IdeaVim,vim 党福音!
  8. 三星S5368 ZMKL1官方ROM包下载+刷机教程
  9. Linux高效使用的七个好习惯
  10. 邮储银行面试—山东分行真题解答!