软件研发效能提升之美
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1.2 研发效能提升案例2:临界参数下的API测试

我们经常会遇到API输入参数的临界值没有被程序妥善处理的情况,比如某个API的输入参数是String类型,但是代码实现中没有考虑String变量取值为NULL的情况,那么一旦程序执行时对该API的调用传入了NULL值,程序就会出现异常甚至崩溃的情况。这类问题通常在API集成测试或者联调阶段才会被发现,此时再去优化处理逻辑的成本通常都会比较高,而且优化后还要考虑回归测试的成本。

因此,我们考虑引入一种机制,通过工具或脚本去主动检测API输入参数的类型,然后根据不同的类型生成相应的容易出错的临界值,我们用这些临界值作为测试数据去自动调用API。如果API返回预期外的异常或错误(如HTTP-500错误),那就说明这个API没有妥善处理我们传入的临界值。

例如,当工具或脚本识别到某API的输入参数是String类型的时候,就可以生成NULL、超长的字符串、包含非英语字符的字符串、SQL注入字符串等一系列临界值,将其作为测试数据去检测程序潜在的问题。

进一步的,我们可以将这个机制与CI流水线集成,在CI执行过程中主动执行临界参数下的API测试,以求问题更早地被暴露,如图1.1所示。

图1.1 临界参数下的API测试与流水线集成