CN108628749A - Web工程自动化校验的测试方法、存储介质 - Google Patents

Web工程自动化校验的测试方法、存储介质 Download PDF

Info

Publication number
CN108628749A
CN108628749A CN201810462424.8A CN201810462424A CN108628749A CN 108628749 A CN108628749 A CN 108628749A CN 201810462424 A CN201810462424 A CN 201810462424A CN 108628749 A CN108628749 A CN 108628749A
Authority
CN
China
Prior art keywords
file
project
function
functions
files
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
CN201810462424.8A
Other languages
English (en)
Inventor
刘德建
梁益冰
杨芳
林小红
林剑锋
陈伟
董浩
林琛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian Tianqing Online Interactive Technology Co Ltd
Original Assignee
Fujian Tianqing Online Interactive Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujian Tianqing Online Interactive Technology Co Ltd filed Critical Fujian Tianqing Online Interactive Technology Co Ltd
Priority to CN201810462424.8A priority Critical patent/CN108628749A/zh
Publication of CN108628749A publication Critical patent/CN108628749A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供的一种web工程自动化校验的测试方法、存储介质,方法包括:获取新版本的工程文件中被修改过的JS文件;据JS文件的函数体特征解析其JS函数,获取所述JS函数的函数名;依据所述函数名遍历工程文件中的HTML文件,获取调用了所述JS函数的HTML文件。本发明能够明确新版本的工程文件中被修改过的业务信息对应其他业务信息的应用域,从而能够对不同版本之间代码修改带来的影响范围进行判定,实现测试范围缩小、测试时间的缩短;同时还能实现针对多个调用相同事件函数的功能,只需测试一次即可,进一步减少测试时间。本发明具有全自动化测试实现过程,且显著提高测试效率和测试准确度等特性。

Description

Web工程自动化校验的测试方法、存储介质
技术领域
本发明涉及软件开发测试领域,具体说的是一种web工程自动化校验的测试方法,以及一种计算机可读存储介质。
背景技术
背景一:
随着软件工程发展,web应用的普及显得尤为突出。为了适应时代的潮流,开发周期在逐渐缩短、软件的迭代速度不断加快,但是系统的功能也变的越来越庞大,因此给测试人员带来的是更大的测试范围。但是产品的迭代不会允许测试人员在如此之大的测试范围进行测试。Web项目中应用着各式各样的JavaScript函数作为校验或者判断。而这些函数往往是被多个地方所公用,如果每个功能都去校验的话,那么测试人员无形中其实做了很多重复校验,也相应的增加了时间成本,甚至可能影响到产品的及时发布。
背景二:
在web应用中,项目为了更快速的开发,同一个项目一般都是由多个人进行开发以及维护,为了不重复的进行开发工作,部分通用的功能一般都会被量化出来作为基础服务。但是该机制也存在着一个很明显的风险,有时候某个开发在不知情的情况下为了解决某个问题修改了某个公用的事件函数,导致了旧模块的功能产生异常。而测试人员一般对旧模块不会做较细的验证,很容易导致该问题发布到外网,被用户发现。这样便导致客户对产品质量质疑,如果类似事件频发的话,甚至会影响到整个公司形象。
背景三:
部分项目存在流程上的不规范行为,有时候因为各种原因,发布服务、web代码并没有进过测试人员这一环节,而测试同学往往是在接收到外部反馈问题才后知后觉。事发之后进行代码发布,一般都是火急火燎的,测试人员需要在短时间内验证开发的缺陷问题并保证其它模块的正常使用。但是由于测试人员对服务、web修改影响范围不了解,往往会导致验证时间的拉长。
针对上述问题,现有技术的文件对比方法及装置可以实现两个web版本工程文件的对比,通过原有的模板文件和最新的文件进行校验,得到两个工程的差异量。但是对于软件测试人员来说,仅仅是比对两个工程文件的差异量并不能解决版本之间代码修改带来的影响范围判断。
因此,有需求能够提供一种不仅可以对比文件差异,同时可以分析文件之间的部分影响范围的技术方案;更优的,有需求同时提供一个实时监控版本发布的方法,当出现新版本发布的时候,能够自动进行工程文件比对,并将得出的结果以报告的形式推送指定人员。
发明内容
本发明所要解决的技术问题是:提供一种web工程自动化校验的测试方法、存储介质,不仅能够提供不同版本的差异量,而且还能提供版本之间代码修改带来的影响范围,显著提高测试效率和测试有效性。
为了解决上述技术问题,本发明采用的技术方案为:
一种web工程自动化校验的测试方法,包括:
获取新版本的工程文件中被修改过的JS文件;
依据JS文件的函数体特征解析其JS函数,获取所述JS函数的函数名;
依据所述函数名遍历工程文件中的HTML文件,获取调用了所述JS函数的HTML文件。
本发明提供的另一个技术方案为:
一种计算机存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述web工程自动化校验的测试方法所包含的所有步骤。
本发明的有益效果在于:能够明确新版本的工程文件中被修改过的业务信息对应其他业务信息的应用域,从而能够对不同版本之间代码修改带来的影响范围进行判定,实现测试范围缩小、测试时间的缩短;同时还能实现针对多个调用相同事件函数的功能,只需测试一次即可,进一步减少测试时间。以此获取显著提高测试效率和测试准确度等优点。
附图说明
图1为本发明一种web工程自动化校验的测试方法的流程示意图;
图2为本发明实施例二的整体流程示意图;
图3为本发明实施例二中的子流程A的流程示意图;
图4为本发明实施例二中的子流程B的流程示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:能够获取新版本的工程文件中被修改过的业务信息对应其他业务信息的应用域,明确不同版本之间代码修改带来的影响范围,从而缩小测试范围、缩短测试时间,显著提高测试效率和测试准确度。
请参照图1,本发明提供一种web工程自动化校验的测试方法,包括:
获取新版本的工程文件中被修改过的JS文件;
依据JS文件的函数体特征解析其JS函数,获取所述JS函数的函数名;
依据所述函数名遍历工程文件中的HTML文件,获取调用了所述JS函数的HTML文件。
从上述描述可知,本发明的有益效果在于:
1、开发人员可以更加注重自己的业务开发,能够实现轻松锁定自身所修改的业务信息被其他业务调用的范围。
2、多个调用相同事件函数的功能,可以只测试其中一个,不需要针对每个功能的类似事件进行重复的测试,从而显著减低的测试时间周期;
3、测试人员可以依据被修改过的业务对应其他业务信息的应用域,明确重点测试范围,无需再进行大范围的测试,在一定程度上可以较大的去减低测试的时间成本。
进一步的,还包括:
获取新版本的工程文件与其上一版本相比,相同JS函数各自对应的调用范围,以及相同JS函数各自对应的函数体。
由上述描述可知,可以获取不同版本之间相同函数功能的复用范围,避免对同一函数功能进行重复测试;同时也有利于明确代码改动的影响范围;进一步的,还能判断相同函数的函数体是否被修改,保证测试的全面性。
进一步的,所述获取新版本的工程文件中被修改过的JS文件,之前,还包括:
当检测到有版本更新时,获取新版本的工程文件;
通过与其上一版本的对比,获取新版本的工程文件中新增、减少和共用的文件数据;
对所述共用的文件数据进行校验,判断所述共有的文件数据是否被修改过。
由上述描述可知,还能进一步的明确不同版本的工程文件的差异量,以及明确新版本开发是否修改了代码,在确认修改了代码的情况下,获取修改代码的影响范围。
进一步的,所述获取新版本的工程文件,之后,进一步包括:
依据文件类型对所述新版本的工程文件中的各个文件进行归类存储。
由上述描述可知,通过归类存储,能提高后续针对不同类型的文件的处理效率。
进一步的,通过MD5或SHA-1值方法对所述共有的文件数据进行校验。
由上述描述可知,能准确的判别共有的文件数据是否经过修改。
进一步的,还包括:
获取一工程文件;
判断所述一工程文件是否为初次使用;
若所述一工程文件是初次使用,则依据文件类型对所述一工程文件中的各个文件进行归类存储;
获取其中的JS文件;
依据JS文件的函数体特征解析其JS函数,获取所述JS函数的函数名;
依据所述函数名遍历所述一工程文件中的HTML文件,获取调用了所述JS函数的HTML文件;
获取所述一工程文件中JS函数的调用范围;
若所述一工程文件并非初次使用,则认定其为新版本的工程文件。
由上述描述可知,针对初次使用的工程文件,能够明确所有的JS函数被调用的范围,可用于后续与不同版本的对比。
进一步的,所述依据JS文件的函数体特征解析其JS函数,获取所述JS函数的函数名,具体为:
依据JS文件包括函数名、函数体以及参数的函数体特征对其中的JS函数进行划分,将各个JS函数以函数名、函数体和参数的形式进行存储。
由上述描述可知,通过对JS文件的解析,能够准确获取所需的函数名,作为后续步骤处理的基础,以此提高测试效率。
进一步的,所述依据所述函数名遍历工程文件中的HTML文件,获取调用了所述JS函数的HTML文件,具体为:
依据所述函数名遍历工程文件中的各个HTML文件,查询是否有调用所述函数名;
若有,则将调用了所述JS函数的HTML文件标记到所述JS函数的应用域;
获取所述JS函数的调用范围。
由上述描述可知,通过对主要应用对象HTML文件的遍历,能够快速明确JS函数的应用域。
本发明提供的另一个技术方案为:
一种计算机存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述web工程自动化校验的测试方法所包含的所有步骤。所述JS为
从上述描述可知,本发明的有益效果在于:对应本领域普通技术人员可以理解实现上述技术方案中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来实现的,所述的程序可存储于一计算机可读取的存储介质中,该程序在执行时,可包括如上述各方法的流程。
实施例一
请参照图1,本实施例提供一种web工程自动化校验的测试方法,包括:
首先,对待发布的工程文件进行遍历,根据不同的文件类型进行归类存储,记录每一类文件下的文件名、路径及其类型。文件类型划分包括:java、CSS、JS、html等;
其次,根据不同的文件类型匹配对应的规则,使用正则匹配去扫描划分,然后存储到对应的数据库表。具体规则制定的依据是:根据不同语言的编写格式及不同文件之间的调用关系来指定的。
不同的文件类型对应的规则说明:
例1:JavaScript文件类型使用关键字function定义函数。语法为:“functionfunctionName(parameters){执行的代码}”,那么针对JS文件(JavaScript文件的缩写)就会采取针对这个语法的规则去匹配,然后把functionName(函数名)、parameters(参数)、执行的代码(函数体)保存到数据库中。
例2:html文件类型作为JavaScript函数的主要调用文件,调用方式分为事件调用和默认加载调用。
事件调用:例如onclick(鼠标点击)事件,格式为onclick="functionName(parameters)",可以通过正则匹配收集以上的调用事件。
默认加载调用:默认调用的格式为functionName(parameters),处于<script>**</script>作用域之间,匹配的规则则是为先取到<script>**</script>代码块,再做正则匹配收集对应的函数。
结合例1和例2的结果进行比对,就可以知道某个HTML文件中是否有调用到JS文件中的某个函数了。
匹配对应的规则:举例JS文件则用正则过滤“function函数名(参数){函数体}”这样的字段,并把生成的包括函数名、参数和函数体的数据保存到数据库。然后通过生成的数据,在此,主要以函数名为主,例如对应JS文件的javaScript函数名,去遍历工程文件中的其他文件(如HTML和JavaScript文件)是否存在(判断是否存在已生成的javaScript函数集中的函数名),得出这些函数之间的调用范围。所述调用范围,指的是JavaScript函数应用在哪些HTML、JavaScript文件中。举个例子:一个校验输入框只能为阿拉伯数字且长度小于20的事件函数input_check(str),该函数应用在多个页面复用。那么通过该方式就可以验证input_check(str)这个函数具体被哪些HTML、JavaScript文件调用了。测试人员可以通过此结果知晓该校验的功能是同一个代码,可以选择不进行重复验证,同时又能明确这个函数的应用域,若该函数对应被修改了的代码,则该应用域则对应代码修改的影响范围。
然后,通过接口自动化的方式每分钟访问一次当前的服务、web的版本履历,当得知版本更新的时候,自动下载最新的工程代码。通过工程文件进行对比,记录版本之间新增、减少的文件数据。同时针对版本之间共有的部分文件,进行MD5值校验,如果一致不做判断;如果MD5值不一致,则针对改动的文件使用上述正则匹配去实现扫描划分,并存储到对应的数据库表。通过两个版本记录的数据进行差异比较,在校验的时候输出一份工程校验的报告。
上述的接口自动化,指的是脚本或程序自动去请求某个接口并得到返回数据,以达到及时性获取某个程序当前的情况的方式。与人工接口测试的区别就在与程序按照一定的频率去执行,不需要人工发起请求,是测试人员用于布置线上服务监控的主要手段。举个例子:查看APP的版本履历,可以手动点击查看,亦可以每时每刻去通过接口查询版本履历的最新版本,发现更新就及时触发其他操作。由此实现了测试的全自动化过程。
实施例二
请参照图2-图4,本实施例对应实施例一,提供一具体的测试方法流程,请参阅图2,可以包括:
获取一工程文件;
判断当前的工程文件是否为初次使用;若是初创建的工程文件,则进入到A子流程;若是已存在的工程文件,则进入B子流程,即该工程文件是旧版本的更新。
如图3所示,A子流程包括:
S01:获取到该一工程文件的地址,并把该工程文件下载到本地;
S02:遍历该工程文件中的各个文件;
S03:根据当前遍历到的这个文件的后缀名来判断该文件的文件类型,把该文件名、路径、类型都记录起来;记录各个文件的信息,包括文件分类信息;
S04:判断该工程文件是否还有未被遍历到的文件,是则取下一个文件信息,然后返回S03;否则执行S05;该步骤在于确认全部遍历完毕;
上述S03和S04即依据文件类型对工程文件中的各个文件进行归类存储的过程。
S05:获取其中的JS文件,即记录JavaScript文件的函数;
S06:依据JS文件的函数体特征使用正则匹配的方式解析,即扫描并划分文件信息,获取文件中的所有JS函数包括函数名和函数体的信息后存储,即将文件中所有的function函数以函数名和函数体的形式存储起来;
S07:判断是否还有JavaScript文件未被解析,是则获取未被解析的JS文件,返回S06;否则执行S08;
下面开始查询JavaScript函数的应用范围:
S08:获取工程文件中的所有HTML文件;
S09:遍历HTML文件;
S10:查询当前遍历到的这个HTML文件是否有调用到已被录入(已存储)的JavaScript的函数名,若是,则在把该HTML文件标记到该JavaScript函数的应用域中;若否,则继续遍历下一个HTML文件;
S11:判断是否所有的HTML文件都被查询,若否,则取下一个HTML文件的信息,返回S10;若是,则执行S12;
主要是针对HTML文件进行匹配查询,优选的,对于JavaScript文件也可以做校验,考虑到JavaScript文件之间调用的场景比较少,只作为补充。
通过上述步骤便可掌握JavaScript函数的应用范围,知道工程文件中的JavaScript函数都被哪些HTML页面调用到,为输出报告提供数据支持。
S12:输出报告。具体的,根据以上统计到的数据源,把复用的JavaScript函数体输出,并指出所应用在的html文件。
该报告的作用:①如果一个函数复用于多个页面,相同的函数功能,只需要验证一次即可;②如果改函数在版本迭代过程中被修改,可以知道代码改动的影响范围。
如图4所示,B子流程:
SS01:获取到该一工程文件的地址,并把该工程文件下载到本地;
SS02:遍历该工程文件;
SS03:根据当前遍历到的这个文件的后缀名来判断该文件的文件类型,把该文件名、路径、类型都记录起来;
SS04:判断该工程文件是否还有未被遍历到的文件,即是否遍历完毕,是则取下一个文件信息,然后返回SS03;否则执行SS05;即依据文件类型对工程文件中的各个文件进行归类存储。
初步与其他版本校验修改量:
SS05:取遍历得到的结果和之前版本作对比,将两个版本的文件筛选为版本新增、版本删除和相同文件名三个分类;即将当前的版本的工程文件与之前已存储在的其他版本的工程文件进行对比;
SS06:取到上述分类中“相同文件名”的集合再做校验,判断文件(即文件代码)是否被修改;根据文件是否被修改,将文件再划分为“完全相同”和“被修改”文件;其中,校验的方式可以包括MD5、SHA-1值方法或者通过读取文件内容,对内容长度、字节等进行比对,以此判断文件是否相同。
SS07:取“版本新增”和“被修改”的两个文件集合得到被修改过的JS文件集合。即获取两个版本的工程文件之间,存在变动的部分,合并得到被修改过的JS文件集合。
SS08:依据JS文件的函数体特征使用正则匹配的方式解析,即扫描并划分文件信息,获取被修改过的JS文件集合的所有JS函数包括函数名和函数体的信息后存储,即将文件中所有的function函数以函数名和函数体的形式存储起来;
SS09:判断被修改过的JS文件集合中是否还有JavaScript文件未被解析,是则获取未被解析的JS文件,返回SS08;否则执行SS10;
查询JavaScript函数的应用范围:
SS10:获取工程文件中的所有HTML文件;
SS11:遍历HTML文件;
SS12:查询当前遍历到的这个HTML文件是否有调用到已被录入(已存储)的JavaScript的函数名,若是,则在把该HTML文件标记到该JavaScript函数的应用域中;若否,则继续遍历下一个HTML文件;
SS13:判断是否所有的HTML文件都被查询,若否,则取下一个HTML文件的信息,返回SS12;若是,则执行SS14;
校验被修改文件的影响范围
SS14:取被修改过的JS文件集合,对该文件的相同function(函数)名称的函数体对比,查看是否函数体有被修改。
SS15:输出报告。具体的,根据以上统计到的数据源,把复用的JavaScript函数体输出,并指出所应用在的HTML文件;统计被修改了函数体的函数,给出函数被调用的范围,推出修改的影响范围。
实施例三
本实施例对应实施例一和实施例二,提供一种计算机存储介质,其上存储有计算机程序,所述程序在被处理器执行时,能够实现上述实施例一或者实施例二所述的web工程自动化校验的测试方法所包含的所有步骤。具体步骤流程见上述实施例的描述,在此不进行复述。
实施例四
本实施例对应实施例一至实施例三,提供一具体运用场景:
某个项目的版本迭代时间特别的赶,一般一周一次,其中涉及到需要的开发进行共同的开发,由于开发质量和其他因素,很多开发还在修改BUG的时候,部分开发已经开始编写下一版本的功能内容。测试人员在一轮测试过程中发现了一个问题,该问题需要B开发进行修复,却这个问题只是修改该产品中一个模块的一个不起眼的小问题,B开发强调了只改了这个问题,没有上传其他的代码。测试人员在验证该问题之后,觉得没有其他问题产生,就审核通过了。结果线上反馈了很多其他模块的问题,客户很不满意,导致版本回滚。
其中,并不是B开发改出了问题,而是A开发将自己下个版本的代码也提交到了集成平台,并不知道B开发有修改一个问题,并提交给了测试同学进行测试,而A提交的代码属于下一个版本,并且未经过测试人员验收,存在许多缺陷,故而发布线上之后才知道这个问题。
通过上述实施例一或实施例二的实施,实时的服务版本检测,会使得开发人员不过是测试环境还是生产环境的发布动态都一览无余。在版本更新的第一时间,测试人员就可以知晓目前的发布消息,这一点无形之中也制约了开发同学对服务发布的规范性。与此同时,任何一个版本代码的提交,测试人员和开发可以清晰的看到本次版本与上次版本的新增和修改内容,甚至是开发在开发环境中发布自测代码的时候,也可以判断出自己的修改是否会对其他模块产生影响。
测试人员可以通过本专利了解到哪些功能是调用统一事件函数实现了,只需要对其中一个功能进行校验即可,大大减低测试的范围。与此同时,测试人员在版本迭代的过程中可以明确的了解版本之间的代码修改量,解决了之前对开发修改一无所知的窘境,在测试的时候也可以提高测试的有效性,减低无用的测试范围投入。
下面,提供两个具体的运用实例:
具体运用实例一:
同学小A负责一个表单制作编辑器的web项目的测试,该项目的特征在于有很多个不同表单,且每个表单都具备很多的相同输入域(名称输入框、文字介绍框、电话号码输入框、邮箱输入框)等等,小A属于基础比较薄弱的,不了解每个功能实现的原理,针对每个输入框都进行了各种正反向的校验,结果影响到了版本的发布进度。
小A同学初次使用上述实施例一或实施例二(具体为A子步骤)的执行,发现check_name(str)(名称输入框)、check_number(str)(电话号码输入框)、check_message(str)(邮箱输入框)等JavaScript校验函数被所有的表单的HTML页面所调用,同时check_str(str)(内容输入框)被表单A、B、C调用到,而其他表单的内容输入框使用的是其它的校验函数。针对此结果,小A同学对复用的check_name(str)等校验功能只做了一次校验,规避了相同的实现代码进行重复的测试,大大的提高了测试效率。
具体运用实例二:
测试小B新接手了个人资料页面的功能测试,该功能已经发布了一年多了,功能中包括名称输入框、电话号码输入框、邮箱输入框等等。最初的策划要求中,邮箱输入框和电话号码输入框的校验功能规则是非中文,长度低于20即可。新产品为了提高邮箱输入的规范性,要求开发针对邮箱的输入合法性增加判断,如:***@***;新开发小C根据产品的要求,找到了事件函数check_input(){校验代码},并把校验代码修改为产品的要求并提交测试。
测试小B询问了开发小C并核验了提交的代码,确定只是更改了一行代码,测试了邮箱输入框的相关用例之后审核通过并发布。一小时之后外部反馈,无论输入什么电话号码,保存的时候都提示‘格式有误!’。
小A同学使用上述实施例一或实施例二(具体为B子流程)执行(之前的旧版本执行过一次扫描),首先校验了每个文件的一致性,整个工程扫描之后仅输出check_input()所在的check.js文件被更改。故而对check.js文件进行扫描,输出该文件下的所有函数,把当前的函数和之前的函数进行一一比对,发现check_input()函数的{校验代码}被修改。最终在返回的报告中指出被修改文件1个(check.js文件),其中被修改函数一个(check_input()函数),且该函数被两个地方所引用,分别为<input name=”phone”onclick=”check_input()”>和<input name=”mail”onclick=”check_input()”>,小A同学根据报告提示的影响范围,对两个输入框都进行了校验发现手机号码的输入框受到了此次修改的影响而无法使用,提交了BUG给开发,要求新建一个独立事件函数check_main()来实现当前的修改,从而避免影响到其他旧功能。
综上所述,本发明提供的一种web工程自动化校验的测试方法、计算机存储介质,能够至少实现:开发人员可以更加注重自己的业务开发,当不知道所修改的业务信息是否被其他业务所调用,可以进行初步的数据校验;多个调用相同事件函数的功能,可以只测试其中一个,不需要针对每个功能的类似事件进行重复的测试,减低的测试时间周期;测试人员可以明确的知道轮次之间开发修改的代码量,和具体修改的代码文件,而不需要因为修改内容不明确,而进行大范围的测试,在一定程度上可以较大的去减低测试的时间成本。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种web工程自动化校验的测试方法,其特征在于,包括:
获取新版本的工程文件中被修改过的JS文件;
依据JS文件的函数体特征解析其JS函数,获取所述JS函数的函数名;
依据所述函数名遍历工程文件中的HTML文件,获取调用了所述JS函数的HTML文件。
2.如权利要求1所述的一种web工程自动化校验的测试方法,其特征在于,还包括:
获取新版本的工程文件与其上一版本相比,相同JS函数各自对应的调用范围,以及相同JS函数各自对应的函数体。
3.如权利要求1所述的一种web工程自动化校验的测试方法,其特征在于,所述获取新版本的工程文件中被修改过的JS文件,之前,还包括:
当检测到有版本更新时,获取新版本的工程文件;
通过与其上一版本的对比,获取新版本的工程文件中新增、减少和共用的文件数据;
对所述共用的文件数据进行校验,判断所述共有的文件数据是否被修改过。
4.如权利要求3所述的一种web工程自动化校验的测试方法,其特征在于,所述获取新版本的工程文件,之后,进一步包括:
依据文件类型对所述新版本的工程文件中的各个文件进行归类存储。
5.如权利要求3所述的一种web工程自动化校验的测试方法,其特征在于,通过MD5或SHA-1值方法对所述共有的文件数据进行校验。
6.如权利要求1所述的一种web工程自动化校验的测试方法,其特征在于,还包括:
获取一工程文件;
判断所述一工程文件是否为初次使用;
若所述一工程文件是初次使用,则依据文件类型对所述一工程文件中的各个文件进行归类存储;
获取其中的JS文件;
依据JS文件的函数体特征解析其JS函数,获取所述JS函数的函数名;
依据所述函数名遍历所述一工程文件中的HTML文件,获取调用了所述JS函数的HTML文件;
获取所述一工程文件中JS函数的调用范围;
若所述一工程文件并非初次使用,则认定其为新版本的工程文件。
7.如权利要求1所述的一种web工程自动化校验的测试方法,其特征在于,所述依据JS文件的函数体特征解析其JS函数,获取所述JS函数的函数名,具体为:
依据JS文件包括函数名、函数体以及参数的函数体特征对其中的JS函数进行划分,将各个JS函数以函数名、函数体和参数的形式进行存储。
8.如权利要求1所述的一种web工程自动化校验的测试方法,其特征在于,所述依据所述函数名遍历工程文件中的HTML文件,获取调用了所述JS函数的HTML文件,具体为:
依据所述函数名遍历工程文件中的各个HTML文件,查询是否有调用所述函数名;
若有,则将调用了所述JS函数的HTML文件标记到所述JS函数的应用域;
获取所述JS函数的调用范围。
9.一种计算机存储介质,其上存储有计算机程序,其特征在于,所述程序在被处理器执行时,能够实现上述权利要求1-8任意一项所述的web工程自动化校验的测试方法所包含的所有步骤。
CN201810462424.8A 2018-05-15 2018-05-15 Web工程自动化校验的测试方法、存储介质 Withdrawn CN108628749A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810462424.8A CN108628749A (zh) 2018-05-15 2018-05-15 Web工程自动化校验的测试方法、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810462424.8A CN108628749A (zh) 2018-05-15 2018-05-15 Web工程自动化校验的测试方法、存储介质

Publications (1)

Publication Number Publication Date
CN108628749A true CN108628749A (zh) 2018-10-09

Family

ID=63693339

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810462424.8A Withdrawn CN108628749A (zh) 2018-05-15 2018-05-15 Web工程自动化校验的测试方法、存储介质

Country Status (1)

Country Link
CN (1) CN108628749A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109658250A (zh) * 2018-12-29 2019-04-19 深圳源中瑞科技有限公司 一种基于网页的股票交易k线处理方法和存储介质
CN110347423A (zh) * 2019-06-28 2019-10-18 北京你财富计算机科技有限公司 文件修改上线的管理方法和装置
CN110765011A (zh) * 2019-10-15 2020-02-07 卡斯柯信号有限公司 一种配置库内测试运维数据自动获取和校验装置及方法
CN110765003A (zh) * 2019-09-24 2020-02-07 贝壳技术有限公司 代码检测方法、装置以及设备、存储介质
CN111382063A (zh) * 2018-12-30 2020-07-07 贝壳技术有限公司 一种react兼容的校验方法及装置
CN111405060A (zh) * 2020-03-30 2020-07-10 中国工商银行股份有限公司 服务影响范围确定方法、装置、工具和电子设备
CN117592083A (zh) * 2023-12-05 2024-02-23 广州致远电子股份有限公司 权限管理平台、方法、服务器及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156314A (zh) * 2014-08-14 2014-11-19 北京航空航天大学 一种应用于测试系统的代码重用方法
US20140380281A1 (en) * 2013-06-24 2014-12-25 Linkedin Corporation Automated software testing
CN104750601A (zh) * 2013-12-25 2015-07-01 中国移动通信集团吉林有限公司 一种测试方法及装置
CN105302710A (zh) * 2014-07-03 2016-02-03 腾讯科技(深圳)有限公司 一种确定需要回归测试的测试用例的方法和装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140380281A1 (en) * 2013-06-24 2014-12-25 Linkedin Corporation Automated software testing
CN104750601A (zh) * 2013-12-25 2015-07-01 中国移动通信集团吉林有限公司 一种测试方法及装置
CN105302710A (zh) * 2014-07-03 2016-02-03 腾讯科技(深圳)有限公司 一种确定需要回归测试的测试用例的方法和装置
CN104156314A (zh) * 2014-08-14 2014-11-19 北京航空航天大学 一种应用于测试系统的代码重用方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109658250A (zh) * 2018-12-29 2019-04-19 深圳源中瑞科技有限公司 一种基于网页的股票交易k线处理方法和存储介质
CN111382063A (zh) * 2018-12-30 2020-07-07 贝壳技术有限公司 一种react兼容的校验方法及装置
CN111382063B (zh) * 2018-12-30 2023-09-08 贝壳技术有限公司 一种react兼容的校验方法及装置
CN110347423A (zh) * 2019-06-28 2019-10-18 北京你财富计算机科技有限公司 文件修改上线的管理方法和装置
CN110765003A (zh) * 2019-09-24 2020-02-07 贝壳技术有限公司 代码检测方法、装置以及设备、存储介质
CN110765011A (zh) * 2019-10-15 2020-02-07 卡斯柯信号有限公司 一种配置库内测试运维数据自动获取和校验装置及方法
CN111405060A (zh) * 2020-03-30 2020-07-10 中国工商银行股份有限公司 服务影响范围确定方法、装置、工具和电子设备
CN111405060B (zh) * 2020-03-30 2022-10-21 中国工商银行股份有限公司 服务影响范围确定方法、装置、工具和电子设备
CN117592083A (zh) * 2023-12-05 2024-02-23 广州致远电子股份有限公司 权限管理平台、方法、服务器及存储介质

Similar Documents

Publication Publication Date Title
CN108628749A (zh) Web工程自动化校验的测试方法、存储介质
Tomassi et al. Bugswarm: Mining and continuously growing a dataset of reproducible failures and fixes
US8191044B1 (en) System and method for maintaining requirements traceability
US8296734B2 (en) System and method for testing a software product
US6823478B1 (en) System and method for automating the testing of software processing environment changes
US8037452B2 (en) Task aware source checkin and build
Saha et al. An empirical study of long lived bugs
US10313285B1 (en) System and method for analyzing and filtering journaled electronic mail
WO2019182932A1 (en) Unified test automation system
US10565089B2 (en) Identification of code features potentially associated with code behavior
CN108959076A (zh) 一种api在线调试方法
Rahman et al. What questions do programmers ask about configuration as code?
KR20170052668A (ko) 데이터 구동 테스트 프레임워크
US20100312592A1 (en) Confirming enforcement of business rules specified in a data access tier of a multi-tier application
Chen et al. Extracting and studying the Logging-Code-Issue-Introducing changes in Java-based large-scale open source software systems
WO2017041578A1 (zh) 一种获取数据库变更信息的方法和装置
CN102012857A (zh) 一种对Web页面进行自动化测试的装置及方法
CN111736865B (zh) 一种数据库升级方法及系统
Vieira et al. From reports to bug-fix commits: A 10 years dataset of bug-fixing activity from 55 apache's open source projects
CN111737140A (zh) 接口自动化测试方法、装置、设备及计算机可读存储介质
US20030005093A1 (en) Server configuration versioning tool
Ji et al. Understanding merge conflicts and resolutions in git rebases
Velasco-Elizondo et al. Towards detecting MVC architectural smells
US20080172659A1 (en) Harmonizing a test file and test configuration in a revision control system
Beyer et al. Towards a benchmark set for program repair based on partial fixes

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WW01 Invention patent application withdrawn after publication

Application publication date: 20181009

WW01 Invention patent application withdrawn after publication