用于自动化测试软件的方法及设备的制造方法
【技术领域】
[0001]本公开的各实施方式总体上涉及一种用于自动化测试软件的方法及设备。
【背景技术】
[0002]智能设备的普及和移动互联网的发展,给人们的出行带来了极大便利。当前基于智能设备应用的车辆呼叫业务已经为社会各阶层人士乘坐车辆出行提供了便捷高效的服务。各类打车软件基本解决了司机和乘客之间的信息不对称问题,提高了车辆的运力,也方便了乘客的出行。
[0003]随着使用打车软件的用户越来越多,达到亿万级别,用户在出行领域的需求也越来越多。为了满足业务场景日益增长的需求,打车软件系统中的订单分配的数据接口所携带的信息量也快速增加,并且随着打车系统中的订单分配系统的升级,业务功能升级后跟上一个版本对比可能会存在较大的差异,缺少一种自动化的测试手段来覆盖订单分配的所有业务场景。
[0004]订单分配系统业务场景复杂,传统的测试方法依赖于手工方式验证,仅进行常规的功能验证,经常出现的问题包括:效率低下;新增的业务可能会影响老功能的正常运行,而传统验证方式无法全面覆盖到所有功能;能够处理的数据量小,无法做到业务场景全覆盖;无法估量新增业务功能对性能、资源造成的影响;无法覆盖异常类测试数据等;容易导致漏测。以上各种问题,均可能带来重大损失。需要一种自动化的验证方法,准确高效地完成业务场景的验证工作。不仅是打车系统,针对其他领域的软件也需要一种自动化的测试方法及设备,能够适应不断的系统更新以及完成相应的测试任务。
[0005]需要一种能够进行批量数据测试、覆盖所有业务场景并能够评估业务升级带来的功能差异和影响的软件测试方法。
【发明内容】
[0006]有鉴于此,本公开的各实施方式提出了一种用于自动化测试软件的方法及设备,并且更具体地,涉及一种用于自动化测试打车系统订单分配软件的方法及设备,使得能够进行批量数据测试、覆盖所有业务场景并能够评估业务升级带来的功能差异和影响。
[0007]根据本公开的第一方面,提供了一种测试软件的方法,包括:监视软件的代码,当所述代码改变时,生成与所述代码相关的版本标识,以及对所述代码进行测试。
[0008]根据本公开的一个实施例,其中对所述代码进行测试包括:将与所述版本标识相关的代码和与先前版本标识相关的代码进行比较。
[0009]根据本公开的一个实施例,其中对所述代码进行测试还包括:生成与所述版本标识相关的代码和与先前版本标识相关的代码之间的差异。
[0010]根据本公开的一个实施例,其中对所述代码进行测试包括:对所述代码部署测试环境。
[0011]根据本公开的一个实施例,其中对所述代码部署测试环境包括:输入数据源,以及部署与所述版本标识相关的测试环境。
[0012]根据本公开的一个实施例,其中对所述代码部署测试环境还包括:当部署所述测试环境成功时,生成成功信息,和/或当部署所述测试环境失败时,生成失败信息。
[0013]根据本公开的一个实施例,其中对所述代码进行测试还包括:对所述代码进行功能对比测试。
[0014]根据本公开的一个实施例,其中对所述代码进行功能对比测试包括:执行与所述版本标识相关的代码,以及生成与所述版本标识相关的代码执行结果。
[0015]根据本公开的一个实施例,其中对所述代码进行功能对比测试还包括:将与所述版本标识相关的代码执行结果和与先前版本标识相关的代码执行结果进行比较,以及生成与所述版本标识相关的代码执行结果和与先前版本标识相关的代码执行结果之间的差异。
[0016]根据本公开的一个实施例,其中对所述代码进行功能对比测试还包括:将所述差异与预定的执行结果阈值进行比较,以及当所述差异超出所述执行结果阈值时,生成报警消息。
[0017]根据本公开的一个实施例,其中对所述代码进行测试包括:对所述代码进行性能对比测试。
[0018]根据本公开的一个实施例,其中对所述代码进行性能对比测试包括:输入性能测试数据,以及在预定的第一时间内,执行与所述版本标识相关的代码,并且生成与所述版本标识相关的性能评价数据。
[0019]根据本公开的一个实施例,其中对所述代码进行性能对比测试还包括:将与所述版本标识相关的所述性能评价数据和与先前版本标识相关的性能评价数据进行比较,以及生成与所述版本标识相关的性能评价数据和与先前版本标识相关的性能评价数据之间的差异。
[0020]根据本公开的一个实施例,其中对所述代码进行性能对比测试还包括:将所述差异与预定的性能评价阈值进行比较,并且当所述差异超过所述性能评价阈值时,生成报警消息。
[0021]根据本公开的一个实施例,其中,所述性能测试数据的数据量大于所述数据源的数据量;和/或所述性能评价数据至少包括以下一项或多项:策略计算时间、CPU相关指标和内存相关指标。
[0022]根据本公开的一个实施例,其中对所述代码进行测试还包括:对所述代码进行压力对比测试。
[0023]根据本公开的一个实施例,其中对所述代码进行压力对比测试包括:输入压力测试数据,以及在预定的第二时间内,执行与所述版本标识相关的代码,并且生成与所述版本标识相关的压力评价数据。
[0024]根据本公开的一个实施例,其中对所述代码进行压力对比测试还包括:将与所述版本标识相关的压力评价数据和与先前版本标识相关的压力评价数据进行比较,以及生成与所述版本标识相关的所述压力评价数据和与先前版本标识相关的压力评价数据的差异。
[0025]根据本公开的一个实施例,其中对所述代码进行压力对比测试还包括:将所述差异与预定的压力评价阈值进行比较,以及当所述差异超过所述压力评价阈值时,生成报警消息。
[0026]根据本公开的一个实施例,其中所述压力测试数据中包括异常测试数据,和/或所述压力评价数据至少包括以下一项或多项:进程数、程序运行稳定性数据、和系统异常数据。
[0027]根据本公开的第二方面,公开了一种测试软件的设备,包括:监视装置,被配置用于监视软件的代码,版本标识生成装置,被配置用于当所述代码改变时,生成与所述代码相关的版本标识,以及测试装置,被配置用于对所述代码进行测试。
[0028]根据本公开的一个实施例,其中所述测试装置包括:代码对比装置,被配置用于将与所述版本标识相关的代码和与先前版本标识相关的代码进行比较。
[0029]根据本公开的一个实施例,其中所述测试装置还包括:代码差异生成装置,被配置用于生成与所述版本标识相关的代码和与先前版本标识相关的代码之间的差异。
[0030]根据本公开的一个实施例,其中所述测试装置包括:测试环境部署装置,被配置用于对所述代码部署测试环境。
[0031]根据本公开的一个实施例,其中所述测试环境部署装置包括:用于输入数据源的装置,以及用于部署与所述版本标识相关的测试环境的装置。
[0032]根据本公开的一个实施例,其中所述测试环境部署装置还包括:用于当部署所述测试环境成功时,生成成功信息的装置,和/或用于当部署所述测试环境失败时,生成失败信息的装置。
[0033]根据本公开的一个实施例,其中所述测试装置还包括:功能对比测试装置,被配置用于对所述代码进行功能对比测试。
[0034]根据本公开的一个实施例,其中所述功能对比测试装置包括:用于执行与所述版本标识相关的代码的装置,以及用于生成与所述版本标识相关的代码执行结果的装置。
[0035]根据本公开的一个实施例,其中所述功能对比测试装置还包括:用于将与所述版本标识相关的代码执行结果和与先前版本标识相关的代码执行结果进行比较的装置,以及用于生成与所述版本标识相关的代码执行结果和与先前版本标识相关的代码执行结果之间的差异的装置。
[0036]根据本公开的一个实施例,其中所述功能对比测试装置还包括:用于将所述差异与预定的执行结果阈值进行比较的装置,以及用于当所述差异超出所述执行结果阈值时,生成报警消息的装置。
[0037]根据本公开的一个实施例,其中所述测试装置包括:性能对比测试装置,被配置用于对所述代码进行性能对比测试。