【技术实现步骤摘要】
一种生成测试语句的方法及装置
[0001]本说明书涉及数据库
,尤其涉及一种生成测试语句的方法及装置。
技术介绍
[0002]结构化查询语言(Structured Query Language,SQL)是对数据库进行测试的重要基础。例如,利用SQL语句中的并入(merge into)语句可对数据库进行功能测试。
[0003]为了使测试尽可能覆盖更多的情况和场景,在进行功能测试时,需要大量的merge into语句,目前通常是人为编写用于测试的merge into语句。
[0004]但为了得到大量的merge into语句,人为编写的工作量极大,效率较低。且merge into语句的编写依靠测试人员的个人经验,对场景的覆盖情况有限,测试质量差。
技术实现思路
[0005]本说明书提供一种生成测试语句的方法及装置,以部分的解决现有技术存在的上述问题。
[0006]本说明书采用下述技术方案:
[0007]本说明书提供了一种生成测试语句的方法,针对数据库中每个包含索引列的数据表, ...
【技术保护点】
【技术特征摘要】
1.一种生成测试语句的方法,针对数据库中每个包含索引列的数据表,该数据表的索引列中的值与所属索引列中其他值不重复,所述方法包括:从所述数据库的数据表中确定目标表,并确定所述目标表对应的源表;根据所述源表的索引列,生成所述源表与所述目标表的连接条件,其中,所述连接条件匹配所述源表的一条记录;从所述目标表中确定待操作字段,根据所述待操作字段生成操作表达式;至少根据预设的测试语句框架、所述目标表、所述源表、所述连接条件以及确定出的操作表达式,生成测试语句。2.如权利要求1所述的方法,确定所述目标表对应的源表,具体包括:判断所述数据库中是否存在与所述目标表的表结构相同的其他数据表;若是,则从与所述目标表的表结构相同的其他数据表中,确定所述目标表对应的源表;若否,则将所述目标表作为所述目标表自身的源表。3.如权利要求1所述的方法,所述方法还包括:当所述源表不包含索引列时,从所述源表中随机查询一条记录,以生成临时表,并将所述临时表重新作为所述目标表的源表;随机生成重新确定的所述源表与所述目标表的连接条件,并从所述目标表中确定待操作字段,根据所述待操作字段生成操作表达式;至少根据预设的测试语句框架、所述目标表、所述源表、所述连接条件以及确定出的操作表达式,生成测试语句。4.如权利要求1或3所述的方法,从所述目标表中确定待操作字段,根据所述待操作字段生成操作表达式,具体包括:从所述目标表中确定不存在于所述连接条件中的至少一个字段,作为更新操作对应的待操作字段;将所述更新操作对应的待操作字段中索引列分别作为其自身的原始列以及更新列,并根据所述原始列以及相应的更新列,确定索引列对应的更新表达式,作为操作表达式;和/或,根据所述源表或随机值,确定所述更新操作对应的待操作字段中非索引列对应的更新表达式,作为操作表达式。5.如权利要求4所述的方法,根据所述源表或随机值,确定所述更新操作对应的待操作字段中非索引列对应的更新表达式,具体包括:针对所述更新操作对应的待操作字段中每个非索引列,根据随机值以及基于所述源表确定的表达式及子查询三者中的一种以及该非索引列,确定该非索引列的更新表达式。6.如权利要求1或3所述的方法,从所述目标表中确定待操作字段,根据所述待操作字段生成操作表达式,具体包括:从所述目标表中确定待插入字段,作为插入操作对应的待操作字段,并确定所述待插入字段对应的各待定插入值;根据所述待插入字段、所述待插入字段对应的待定插入值以及预设的插...
【专利技术属性】
技术研发人员:邢禄,
申请(专利权)人:北京奥星贝斯科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。