随着科技的发展和进步,自动化测试的应用越来越广泛深入,作为一种软件质量管控的重要手段,自动化测试通过将人为驱动的测试行为转为机器执行的一种过程。在替代大量重复性工作和提高回归测试效率方面发挥了很大的优势。
目前,自动化测试还不能完全的取代人工测试,自动化测试是否能够有效开展依赖于系统的稳定性。对于投产周期短,需求变更频繁,版本更新频率较高,甚至存在系统架构重构的可能性的系统,使用自动化测试工具录制的案例,在系统迭代更新后,需要频繁的修改调试自动化脚本,成本较高,因此此类系统不适用于自动化测试;对于部分优化升级系统,系统架构都趋于稳定,程序版本稳定,特别是投产周期长,需要频繁重复执行测试案例,使用自动化测试工具则能提高效率。本文所述架构优化项目就属于此类项目。
一、项目背景
该项目是对已投产的系统A的架构进行优化升级,本次改造主要涉及以下内容:一是日志分库改造,修改交易的记录日志方式,按照分片规则为日志分库;二是交易路由方式变更;三是接入监控平台;四是优化日志配置,增加运维日志的输出。
通过对改造需求进行分析,该项目的优化升级内容涉及交易层面的优化改造较少,主要对系统配置、运维参数和数据架构方面进行优化,系统架构趋于稳定,涉及多个投产窗口,需要频繁重复执行测试案例,适合引入自动化测试。
二、自动化测试工具
本次自动化测试选择的是自行研制的自动化测试工具,该工具是一个集自动化测试案例管理、测试数据管理及测试执行管理、结果分析于一体,用于支持自动化测试的软件平台。该工具支持接口测试(主机端/开放平台端),界面测试(非移动端),实现了测试案例设计、测试执行和结果分析展现一体化。本次回归测试属于基于接口的自动化测试应用范畴。
三、自动化测试资产库
执行自动化回归测试,需要提前准备高可用的自动化测试案例库。A系统投产上线时,已搭建了基于分布式新架构下的自动化测试案例库,实现了系统级的自动化回归测试资产库,对A系统主要交易实现了自动化案例全覆盖,同时根据该系统数据源分库的架构,设计了针对不同数据源的自动化案例,可以方便的实现交易对不同分库数据的验证。该自动化回归测试案例库前期已应用到部分测试项目中,并根据交易接口和需求的变化,适时进行维护和调试。目前共针对A系统建立180支交易对应的221条自动化案例,交易自动化案例覆盖率100%,执行通过率在90%左右。
四、自动化测试策略分析
在本项目中,根据对改造需求进行测试分析,针对不同的改造内容制定了不同的自动化测试方案:分别采用全量交易回归测试、高频交易回归测试、自动化送代测试的方式开展测试。
全量回归测试主要验证原有二阶段投产的108支交易于分库数据架构下,交易功能正确性,对于全量回归测试未通过的案例,增加人工测试进一步进行验证。
高频交易的自动化回归测试主要针对于日志记录方式优化改造的需求,根据交易复杂度、重要程度和日均交易量情况按二八原则进行筛选,筛选出35支高频交易,针对日志分库中查询交易不同的4种日志记录配置方式进行4轮回归测试,并在日志记录查询环节采用人工方式对自动化执行的交易日志进行查询,以验证改造后的日志查询模式的正确性。
自动化迭代应用于验证日志分片数据源的正确性,通过对改造需求进行分析,发现系统日志分库改造采用机构号为分片键值,对数据库进行编号,使用机构号的前两位省市号作为分库的算法依据。因此,对交易自动化案例的机构柜员输入值进行参数化,设置数据资源池,通过交易迭代执行,每次调用资源池中不同机构柜员数据,实现不同机构的用户执行交易后,交易日志按照分库规则正确记录在不同的分片数据源中。
五、自动化测试实践
本次架构优化项目共设置6个投产批次,基于全量交易的回归测试共执行3次,涉及108支交易,执行自动化案例300余条,测试通过率95%左右;高频交易回归测试共执行四轮,涉及35支交易共约150条自动化案例,执行通过率100%。自动化迭代测试共执行自动化案例约50条,通过率100%。通过在该项目中应用自动化测试,较好的提高了工作效率,在单个投产窗口测试周期短,测试人力资源较少的情况下,按要求完成投产测试任务。
六、总结
该架构优化项目在投产轮次较多,每个投产周期测试时间紧张,人力资源不足的情况下,根据对优化改造需求进行分析引入了适合的自动化测试工具,通过执行自动化测试极大的解放了人力、节约了成本,按时完成了各个投产窗口的测试任务。
同时,通过在该项目中引用自动化回归测试,测试人员进一步熟悉了自动化测试工具的使用流程和方法,提高了自动化测试中脚本调试常见问题的分析和解决能力,为今后在类似项目中更好使用自动化测试工具打下了坚实的基础。
作者:张芳
来源:51Testing软件测试网原创