通常情况下,代码级测试的工作都是由开发人员完成,但是测试框架选型、覆盖率统计工具选型、测试用例设计原则等都需要资深的测试工程师或者测试架构师参与。
代码级测试的测试方法一定是一套测试方法的集合,而不是一个测试方法。
常见代码错误类型
代码错误,可以分为“有特征”的错误和“无特征”的错误两大类。“有特征”的错误,可进一步分为语法特征错误、边界行为错误和经验特征错误;“无特征”的错误,主要包括算法错误和部分算法错误。
-
第一,语法特征错误
-
第二,边界行为特征错误
-
第三,经验特征错误
-
第四,算法错误
-
第五,部分算法错误
部分算法错误是指,在一些特定的条件或者输入情况下,算法不能准确完成业务要求实现的功能。
代码级测试常用方法
代码级测试方法主要分为两大类,分别是静态方法和动态方法。
静态方法,顾名思义就是在不实际执行代码的基础上发现代码缺陷的方法,又可以进一步细分为人工静态方法和自动静态方法;
动态方法是指,通过实际执行代码发现代码中潜在缺陷的方法,同样可以进一步细分为人工动态方法和自动动态方法。
第一,人工静态方法
人工静态方法是指,通过人工阅读代码查找代码中潜在错误的方法,通常采用的手段包括,开发人员代码走查、结对编程、同行评审等。
第二,自动静态方法
自动静态方法是指,在不运行代码的方式下,通过词法分析、语法分析、控制流分析等技术,并结合各种预定义和自定义的代码规则,对程序代码进行静态扫描发现语法错误、潜在语义错误,以及部分动态错误的一种代码分析技术。
第三,人工动态方法
人工动态方法是指,设计代码的输入和预期的正确输出的集合,然后执行代码,判断实际输出是否符合预期。
第四,自动动态方法
自动动态方法,又称自动边界测试方法,指的是基于代码自动生成边界测试用例并执行,以捕捉潜在的异常、崩溃和超时的方法。
总结
-
人工静态方法,本质上通过开发人员代码走查、结对编程、同行评审来完成的,理论上可以发现所有的代码错误,但也因为其对“测试人员”的过渡依赖,局限性非常大;
-
自动静态方法,主要的手段是代码静态扫描,可以发现语法特征错误、边界行为特征错误和经验特征错误这三类“有特征”的错误;
-
人工动态方法,就是传统意义上的单元测试,是发现算法错误和部分算法错误的最佳方式;
-
自动动态方法,其实就是自动化的边界测试,主要覆盖边界行为特征错误。
来源于 极客时间 茹炳晟 软件测试52讲