ITPub博客

首页 > IT基础架构 > 数据安全 > 白盒测试代码应该怎么测试

白盒测试代码应该怎么测试

数据安全 作者:icexu2 时间:2020-06-09 15:32:30 0 删除 编辑

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29297389/viewspace-2697179/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2020-05-23

  • 博文量
    14
  • 访问量
    7299