web操作日志丢失_Web 应用自动化测试系统分析服务

4fdf1732ac7d1d77a3d439e008d5e9ca.png

1. 项目意义

随着互联网化程度逐步加深,Web应用凭借其便利性、易用性和强大的扩展支撑能力,广泛使用于各行各业和人们日常生活中,成为当前信息时代不可或缺的一部分。与此同时,随着Web应用的普及和功能的愈趋复杂,其质量和可用性也备受业界关注。一些低质量的Web应用,常常会因为应用缺陷、系统故障等原因,导致用户预期的功能需求无法被满足或者多次操作不成功,从而极大地牺牲用户体验,严重情况下甚至会造成用户流失或者经济损失。Web应用测试,作为保障Web应用质量的重要手段和关键环节,开始承担越来越重要的责任。

然而,现有的主流Web应用测试手段,主要还是依靠基于测试案例的手工测试或脚本测试,不仅人力和时间成本消耗较大,测试效率不高,而且脚本也需要频繁维护,可重复性差,渐渐不适应于当前快节奏的应用开发迭代进度;另一方面,这些回归测试手段虽然能发现一些具有明显表征的系统缺陷,但是单一的测试结果并不能直接刻画缺陷信息,仍然需要用户手动参与缺陷定位和测试报告填写,同时一些无表征但存在一定风险的缺陷也可能会被漏报。为解决这些问题,我们希望实现简单高效的Web应用自动化测试,进行缺陷的主动触发和基于过程数据的测试分析工作,进而生成相应的详细测试报告,旨帮助测试人员和开发人员更好更高效地发现、定位和修复Web应用缺陷,更好地提升Web应用质量。

2. 项目内容

依托于慕测平台,我们设计并实现了Web应用自动化测试系统,实现了对待测Web应用的测试环境分配和自动化遍历执行,并采集测试执行过程中的相关输出信息,如控制台日志、请求日志和截图等信息,进行后续的缺陷分析检测和相应测试报告的生成,系统主要包括任务管理服务、执行服务、分析服务以及报告生成服务等多个子服务。

本文所描述的分析服务,作为Web应用自动化测试系统的核心服务之一,旨在基于上游服务采集的多源过程数据,发掘和分析待测Web应用可能存在的缺陷和故障,如常见的断链、JS类型错误、引用错误、服务器内部错误、用户访问未授权和资源请求失败等缺陷,同时结合缺陷对应页面状态中的上下文关联信息,如截图、操作序列等,构建出完整的缺陷模型,便于定位和复现缺陷。另一方面,服务还基于分析过程产出的相关数据,建立了初步的Web应用评价体系,实现了对Web应用质量的多维度简要评估。

1ba168802fd349948cbb47a49d1307ea.png

分析服务内部的架构层次可如图2所示,主要依赖于RabbitMQ消息队列和由Redis、OSS以及MongoDB组成的数据存储层,对从上游服务中获取的数据进行缺陷检测分类和软件质量多维评估,并支持其它缺陷检测模块的拓展集成。根据功能需要和分析流程,我们可将整个分析服务拆分为缺陷分析框架、控制台日志缺陷检测模块、请求日志缺陷检测模块和Web应用多维评估模块四个部分,其中控制台日志缺陷检测模块又可进一步拆解为缺陷聚类和缺陷判定两个子模块。

缺陷分析框架:该模块是整个分析服务的核心部件,基于模板方法设计模式和泛型思想,负责组织和集成其他下游模块,是系统扩展性的有效保障,可进一步细分为场景接入、缺陷检测接入、缺陷整合去重以及上下文管理四个子任务。在测试执行的不同生命周期场景下,如单状态执行完成场景,RabbitMQ消息中间件会发送对应的分析处理信号,在缺陷分析框架的对接下,根据场景和数据源的种类,下发到不同的缺陷检测模块,最终汇集全部场景内缺陷进行粗粒度的整合去重,存入数据存储层的Redis中,以便报告生成服务进行所有场景数据的集中处理,同时维护场景上下文,并对相应中间数据进行持久化处理。

控制台日志缺陷检测模块:该模块是针对控制台日志进行缺陷检测的模块,由缺陷分析框架负责接入,可拆解为缺陷聚类和缺陷判定两个子模块。其中,缺陷聚类子模块负责控制台缺陷知识库的构建,基于前期对缺陷日志的搜集、清洗和去重工作,通过DBSCAN聚类算法和后续人工审查,实现控制台日志的缺陷归纳和知识库录入,缺陷判定子模块,则基于构建上述缺陷知识库,结合特征检测、正则匹配,相似比较等多种检测方法,实现对控制台日志可能缺陷的判定和分类。

请求日志缺陷检测模块:该模块是针对请求日志进行缺陷检测的模块,负责发掘相关网络请求过程可能存在的缺陷,主要包括请求过程组装、请求缺陷检测、页面加载分析、测试环境采集和请求信息分析等子任务。模块负责将原本按Chrome Devtools Protocol结构化记录的请求日志,重新建模成完整的请求过程,并针对异常情况,如请求响应状态码为404等情况,进行缺陷分析。同时,基于请求过程,完成相关请求数据的析出和存储,服务于后续的多维评估过程。

多维评估模块:该模块是整个测试执行和分析过程的维度总结,主要基于前期析出的缺陷和请求数据,以及测试执行过程的操作事件流,状态信息等,从健壮性、性能、稳定性和兼容性等多个维度对应用进行初步的评估分析,刻画其在测试环境下的维度表现,基于阈值设计和比率计算等方法,为应用评价提供参考量化分数和维度详细数据,如状态间功能导航图、低性能请求信息、缺陷列表以及失效页面信息等,助力于专项提升应用质量。同时,也支持新维度的分析引入。

3. 项目效益

当测试人员有Web应用测试需求,可通过浏览器直接访问本系统,通过简单的站点输入和可选配置,即可开启一个Web应用自动化测试任务,并进行测试执行和分析过程,最终产出一个以缺陷信息和维度评估信息为主的测试报告。

2ad91447eb0784ddc99aa138ed3a98df.png

为探究由分析服务产出数据构成的测试报告是否具有实际参考价值、是否能够有效发掘Web应用缺陷、缺陷是否真实存在、缺陷分类是否合理准确等问题,我们选取了50个涵盖了多种业务领域和技术类型的线上网站作为实验对象,对系统开展评估实验。一方面,依次选取上述实验对象在系统中进行自动化测试,并产出测试报告。结果如图3所示,平均每个待测应用会搜索到89个页面状态,并发现83个应用缺陷。其中大部分缺陷为资源加载失败等低风险缺陷,页面操作断链和服务端错误等较为严重的缺陷也偶有发生,但频率较低。另一方面,我们基于各实验对象测试产生的缺陷列表,随机挑选了632个缺陷进行复现测试和分类审查,最终只有10.6%的缺陷无法复现,且全为资源加载失败这一类别,经过复盘,发现原因跟资源链接使用动态参数拼接和测试环境网络状况不稳定有关。97.47%的缺陷分类准确率则表明系统检测出的缺陷能被准确分类,分类错误情况主要来源于缺陷知识库缺失的新缺陷引入。

目前该系统已经部署,并面向企业和高校提供差异化支持,且不限于多样化的Web应用前端开发框架选型,能够为大部分业界网站提供自动化测试评估服务,能有效发掘断链、服务端错误、JS引用错误等Web应用缺陷,并通过详细的缺陷上下文信息帮助用户定位和修复缺陷,提升Web应用质量。

4. 致谢

本文由南京大学软件学院智能软件工程实验室 2018 级硕士生周赛撰写。

感谢中央高校基本科研业务费专项资金资助项目:基于群智协同的众包测试技术(14380021)支持!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值