白盒测试落地实践分为两个大方向,一个是静态分析,一个是动态分析,当然啦,也可以叫做静态测试和动态测试。那我们如何高质量保效率的做好白盒测试呢?Parasoft已经为您准备好了成熟的整体解决方案啦。
1. 高质量
从质量上讲,Parasoft的白盒级测试工具C/C++test,Jtest,dotTEST分别可以针对不同编程语言做完备的白盒测试,这期我们以C/C++test为例,我们来聊聊,C/C++test如何保证白盒测试的质量呢
① 静态测试
从静态测试讲,C/C++test支持静态测试的三大维度,分别是:模式匹配、流分析、度量分析。我们先来解释一下这三个维度:
模式匹配:模式匹配就是可以帮助我们的开发人员去扫描代码,找到代码字面上的缺陷,比如说变量命名规则、代码格式等缺陷,在开发早期就保证了代码的开发质量。
流分析:C/C++test的强大流分析技术,可以在不运行代码的前提下,找到代码的隐患缺陷,并且报告出回溯路径,帮助用户快速定位代码,快速修复代码。
度量分析:C/C++test可以支持用户选择几十种指标,去扫描代码,最后报告出对应指标的值,来帮助团队评估代码。
乍一看,好像这三个维度没什么太大的关联,其实不然,这三个维度是依次递进的关系,一环一环地来保障软件质量。举个简单的例子,开发人员A在今天写了代码,通过模式匹配就可以扫描出今天代码中编码不合规的地方,再使用流分析的规则来扫描代码,来找到代码中实实在在的“问题”,到这里,其实已经很大程度保证了代码的编程上面没有什么问题,但是开发好的代码之后,如何保障一个模块的质量了?这个时候就需要利用度量分析,来整体评估了。比如说,使用度量分析来分析模块的”调用深度“这项指标值,分析完成后,就可以看到具体函数的调用深度值了,团队可以评估结果有没有超过团队的预期,如果超过了,证明需要及时调整代码,来符合预期,如果没超过,就证明模块基本初步符合团队预期。
这三个维度的分析就可以帮助我们高质量地做好静态分析工作。
② 动态测试
动态测试方面,其实C/C++test也非常强大,C/C++test不仅可以做高质量的静态测试,而且C/C++test也能做强大的动态测试。
C/C++test可以帮助用户对各大嵌入式环境做仿真环境单元测试,也能做上板测试,以嵌入式keil for arm为例,C/C++test可以测试对Keil项目做各种覆盖率的仿真环境单元测试,也能支持上板测试,同时,C/C++test支持高达9种覆盖率搜集。
在工具操作上,C/C++test支持为用户自动生成健壮性单元测试用例,支持界面化操作测试用例,支持开放测试用例源码,支持桩函数视图,等等。C/C++test的一系列功能,都可以保障客户将单元测试落到实处,保质保量地快速完成工作。
2. 高效率
如何既保证白盒测试的质量,又保障测试的效率的呢?Parasoft有办法!C/C++test的工作流可以嵌入到DevOps工作流中!