CN111124938B - 组件化的测试用例的生成方法 - Google Patents
组件化的测试用例的生成方法 Download PDFInfo
- Publication number
- CN111124938B CN111124938B CN202010244438.XA CN202010244438A CN111124938B CN 111124938 B CN111124938 B CN 111124938B CN 202010244438 A CN202010244438 A CN 202010244438A CN 111124938 B CN111124938 B CN 111124938B
- Authority
- CN
- China
- Prior art keywords
- entity
- elements
- test case
- hierarchical tree
- entity element
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及组件化的测试用例的生成方法,包括:A.将所有历史文本测试用例中涉及到的所有实体元素和动作元素分别进行提取,形成对应的实体元素集和动作元素集,其中在实体元素集中包括公共实体元素集和特有实体元素集;对所有元素设置对应的语义标签;B.按照实体与实体之间的包含关系建立公共实体元素层级树;特有实体元素根据是否可以归入到公共实体元素层级树中成为子节点进行归入或新建特有实体元素层级树;C.按照各元素之间的时序关系建立关系序列;D.将输入的文本处理成对应的关系序列和测试用例。本发明能够使测试用例根据已有数据自动生成,并解决了测试用例的语义二义性问题,使生成的测试用例在语义上具有单一性,没有歧义。
Description
技术领域
本发明涉及计算机软件测试用例的生成方法,具体讲是组件化的测试用例的生成方法。
背景技术
在对计算机软件进行测试时,当前行业的通常做法是,测试人员使用自然语言编写测试用例。但由于自然语言通常具有二义性,因此测试用例的可读性、有效性往往受作者的语言水平所影响和决定,导致测试用例的质量参差不齐,不利于测试执行,也不利于测试管理。另外,自然语言化的测试用例,难以被机器完全理解,因此在自动化测试的应用上,这样的测试用例往往难以转化为自动化测试脚本,不能方便地实现自动化测试和自动化自由测试。
另外,行业内采用的测试用例生成技术,通常也是基于程序、UML(统一建模语言)图、需求文档等,来生成自然语言化、或者符号化的测试用例的,这些测试用例同样存在上述问题。
发明内容
本发明提供了一种组件化的测试用例的生成方法,使测试用例可以根据已有数据自动生成,并且其语义上具有单一性,不再有歧义。
本发明组件化的测试用例的生成方法,包括:
A.提取元素:将所有历史文本测试用例中涉及到的所有实体元素和动作元素分别进行提取,形成对应的实体元素集和动作元素集,其中在实体元素集中包括公共实体元素集和特有实体元素集,公共实体元素集中包含的公共实体元素指的是所有已经在数据库中存在的实体元素,特有实体元素集中包含的特有实体元素指的是未在数据库中保存的实体元素;
对所有提取出的实体元素和动作元素分别设置对应的语义标签;
在数据库的存储空间中分别建立实体元素表和动作元素表的存储结构,并将所述的实体元素集和动作元素集分别对应保存在实体元素表和动作元素表的存储结构中;
B.建立实体元素层级树结构:将公共实体元素集中的所有公共实体元素,按照在实际语义环境中实体与实体之间的包含关系,建立公共实体元素层级树,其中被包含的实体元素为上一层级的实体元素的子节点;
对特有实体元素集中的特有实体元素,如果可以归入到公共实体元素层级树中成为其中的子节点,则找到该特有实体元素所对应的父节点后将其归入,否则单独将该特有实体元素作为根节点来新建特有实体元素层级树;
在数据库的存储空间中建立实体元素层级树表的存储结构,将所述的公共实体元素层级树和特有实体元素层级树分别保存在实体元素层级树表的存储结构中;
C.建立关系序列:将提取出的所有实体元素和动作元素根据各自对应的语义标签,按照各元素之间的时序关系建立各元素的关系序列,使每一个测试用例都由元素的关系序列构成;
在数据库的存储空间中建立测试用例表的存储结构,将每一个测试用例中对应的关系序列保存到测试用例表的存储结构中;
D.对后台的测试用例输入界面中的文本输入框按照测试用例的语义格式进行输入内容和输入格式的限定,测试人员按照所述文本输入框的限定要求输入文字后,后台通过自然语言处理工具包将所述输入的文字处理成对应的元素和元素之间的关系序列,然后将所述元素之间的关系序列保存到所述的测试用例表的存储结构中。
本发明是将测试用例中的各种元素进行提取和数据化,并通过建立层级树结构的方式和数据组合的方式实现了测试用例的管理和自动生成,使得测试用例像程序代码一样既可以方便存储和管理,又具有了语义上的单一性,不再有歧义。
进一步的,步骤A中,将提取的所有实体元素和动作元素进行归并和去重后,再形成所述对应的实体元素集和动作元素集。去重后的实体元素集和动作元素集其包含的元素更简洁,避免了冗余。
进一步的,步骤D中,后台将处理后生成的关系序列展示在图形化编辑工具上,测试人员可以对生成的关系序列进行编辑调整后再进行所述的保存。图形化编辑工具在目前许多软件上都有应用,例如Visio、Dreamweaver等许多软件都有该功能,图形化编辑工具的开发不是本发明的创新。
在此基础上,在后台分别设置对实体元素和动作元素进行增加、修改和/或删除的操作界面,对实体元素或动作元素进行操作并保存后,数据库存储空间中实体元素表或动作元素表的存储结构对应的实体元素集或动作元素集也同步更新。
同理的,在后台设置对步骤B建立的实体元素层级树结构进行实体元素增加、修改和/或删除的操作界面,在该操作界面中设有查询输入框,用于输入关键字查询某一实体元素位于的层级树和与该实体元素相关父/子节点;对实体元素操作后,在数据库存储空间中实体元素层级树表的存储结构的保存内容同步更新。
具体的,在新增实体元素层级树结构时,先选择一个实体元素作为根节点,再以该实体元素为基础建立实体元素层级树结构;
修改实体元素层级树结构时,选择一个实体元素作为节点进行修改,将该节点和它的所有子节点修改到新的父节点下;
删除实体元素层级树结构时,指定一棵实体元素层级树的根节点进行操作,将该课实体元素层级树整体删除。
同理的,在后台设置对所述测试用例表的存储结构中保存的测试用例的关系序列进行增加、修改和/或删除的操作界面,对关系序列操作完成后,在测试用例表的存储结构同步更新。
具体的,通过自然语言处理工具包,根据每一个元素的语义标签,将测试用例表的存储结构保存的关系序列转换为对应的自然语言文本,并根据各元素之间的时序关系将各元素对应的自然语言文本组合为文本格式的测试用例。
进一步的,在对测试用例的关系序列进行操作时,通过界面提供的图形化编辑工具对被操作的关系序列中的实体元素或动作元素进行操作。
本发明组件化的测试用例的生成方法,能够使测试用例根据已有数据自动生成,并且解决了测试用例的语义二义性问题,使生成的测试用例在语义上具有单一性,没有歧义。
以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
附图说明
图1为本发明组件化的测试用例的生成方法的流程图。
具体实施方式
如图1所示本发明组件化的测试用例的生成方法,包括:
A.提取元素:将所有历史文本测试用例中涉及到的所有实体元素和动作元素分别进行提取。例如,测试用例的数量为100条,这100条测试用例中含有A、B、C、D、E五个公共实体元素,以及X、Y、Z三个特有实体元素。其中公共实体元素是素有测试用例都具有的元素,特有实体元素是某个或者某几个测试用例中特有的,无法归于公共实体元素中。另外,这100条测试用例中还含有U、V、W三个动作元素,这些动作元素是指测试人员对实体元素的操作动作。
按照顺序,提取每一条测试用例的所有实体元素和动作元素,直到100条测试用例的所有实体元素和动作元素全部提取完毕。再对各实体元素和动作元素进行归并和去重后,形成对应的实体元素集和动作元素集,其中在实体元素集中包括公共实体元素集和特有实体元素集,公共实体元素集中包含的公共实体元素指的是所有已经在数据库中存在的实体元素,特有实体元素集中包含的特有实体元素指的是未在数据库中保存的实体元素;
对所有提取出的实体元素和动作元素分别设置对应的语义标签;
在数据库的存储空间中分别建立实体元素表和动作元素表的存储结构,并将所述的实体元素集和动作元素集分别对应保存在实体元素表和动作元素表的存储结构中;
同时,在后台还分别设置对实体元素和动作元素进行增加、修改和/或删除的操作界面,对实体元素或动作元素进行操作并保存后,数据库存储空间中实体元素表或动作元素表的存储结构对应的实体元素集或动作元素集也同步更新。
B.建立实体元素层级树结构:将公共实体元素集中的所有公共实体元素,按照在实际语义环境中实体与实体之间的包含关系,建立公共实体元素层级树,其中被包含的实体元素为上一层级的实体元素的子节点。例如公共实体元素A、B、C、D、E从左至右依次具有从属关系,即E属于D、D属于C,以此类推。则以A为根节点,建立从A到E的5层的公共实体元素层级树。
对特有实体元素集中的特有实体元素,如果可以归入到公共实体元素层级树中成为其中的子节点,则找到该特有实体元素所对应的父节点后将其归入,否则单独将该特有实体元素作为根节点来新建特有实体元素层级树。例如,根据语义标签判断,特有实体元素X的父节点应该是公共实体元素C,则将特有实体元素X插入公共实体元素C后,成为公共实体元素C的子节点;而特有实体元素Y不属于任何公共实体元素的子节点,则以特有实体元素Y作为根节点,建立一棵新的特有实体元素层级树。
在数据库的存储空间中建立实体元素层级树表的存储结构,将所述的公共实体元素层级树和特有实体元素层级树分别保存在实体元素层级树表的存储结构中;
在后台同样设置有对实体元素层级树结构进行实体元素增加、修改和/或删除的操作界面,在新增实体元素层级树结构时,先选择一个实体元素作为根节点,再以该实体元素为基础建立实体元素层级树结构。修改实体元素层级树结构时,选择一个实体元素作为节点进行修改,将该节点和它的所有子节点修改到新的父节点下。删除实体元素层级树结构时,指定一棵实体元素层级树的根节点进行操作,将该课实体元素层级树整体删除。
在该操作界面中还设有查询输入框,用于输入关键字查询某一实体元素位于的层级树和与该实体元素相关父/子节点;对实体元素操作后,在数据库存储空间中实体元素层级树表的存储结构的保存内容同步更新。
C.建立关系序列:将提取出的所有实体元素和动作元素根据各自对应的语义标签,按照各元素之间的时序关系建立各元素的关系序列,使每一个测试用例都由元素的关系序列构成。例如:A;X;D;B;Y;Z,此元素序列是有时序顺序的。
在数据库的存储空间中建立测试用例表的存储结构,将每一个测试用例中对应的关系序列保存到测试用例表的存储结构中;
然后在后台设置对所述关系序列进行增加、修改和/或删除的操作界面,在操作界面对测试用例的关系序列进行操作时,可以通过界面提供的图形化编辑工具对被操作的关系序列中的实体元素或动作元素以拖拽等方式进行操作来建立元素和元素间的关系,编辑完成后保存,不需要编写文字。然后通过自然语言处理工具包(如开源的Python的NLTK工具包),根据每一个元素的语义标签,将测试用例表的存储结构保存的关系序列转换为对应的自然语言文本,并根据各元素之间的时序关系将各元素对应的自然语言文本组合为文本格式的测试用例。例如:测试用例表的存储结构中的一个关系序列为A;X;D,其中实体元素A的语义标签为“用户”,动作元素X的语义标签为“点击”,实体元素D的语义标签为“取消按钮”,则后台通过自然语言处理工具包将此关系序列转换为“用户点击取消按钮”这段文字进行展示。对关系序列操作完成后,在测试用例表的存储结构同步更新。
D.对后台的测试用例输入界面中的文本输入框按照测试用例的语义格式进行输入内容和输入格式的限定,测试人员按照所述文本输入框的限定要求输入文字后,后台通过自然语言处理工具包(如开源的Python的NLTK工具包)将所述输入的文字处理成对应的元素和元素之间的关系序列,再将生成的关系序列展示在图形化编辑工具上。测试人员可以对生成的关系序列进行编辑调整后再进行所述的保存。图形化编辑工具在目前许多软件上都有应用,不是本发明的创新。然后将所述元素之间的关系序列保存到所述的测试用例表的存储结构中。
实施例:
通过在已有的测试用例中抽取2个测试用例为例来进一步说明本发明:
测试用例(1):
访客进入注册页面,输入不存在的用户名,输入设置密码,输入确认密码,点击注册按钮。期望:注册页面提示“注册成功”。
测试用例(2):
访客进入注册页面,输入已存在的用户名,输入设置密码,输入确认密码,点击注册按钮。期望:注册页面提示“注册失败:该用户已经注册”。
一、对测试用例中的所有元素进行提取,区分实体元素和动作元素,其中实体元素分为公共实体元素(即其他测试用例也有的元素)和特有实体元素(即当前测试用例特有的元素)。
a.测试用例(1)中的实体元素为“A:访客(用户)、B:注册页面、C:不存在的用户名(文本)、D:设置密码(文本)、E:确认密码(文本)、F:注册按钮(按键)、G:注册成功(文本)”,其中公共实体元素为“A:访客、B:注册页面、D:设置密码、E:确认密码、F:注册按钮”,特有实体元素为“C:不存在的用户名、G:注册成功”。
b.测试用例(2)中的实体元素为“A:访客、B:注册页面、H:已存在的用户名、D:设置密码、E:确认密码、F:注册按钮、I:注册失败:该用户已经注册”,其中公共实体元素为“A:访客、B:注册页面、D:设置密码、E:确认密码、F:注册按钮”,特有实体元素为“H:已存在的用户名、I:注册失败:该用户已经注册”。
c.将测试用例(1)和测试用例(2)的公共实体元素集和特有实体元素集做归并去重,最后得到的公共实体元素集为:“A:访客、B:注册页面、D:设置密码、E:确认密码、F:注册按钮”,特有实体元素为“C:不存在的用户名、G:注册成功、H:已存在的用户名、I:注册失败:该用户已经注册”。
d.测试用例(1)和测试用例(2)中的动作元素为“X:进入、Y:输入、Z:点击、U:期望、V:提示”,所有动作元素形成动作元素集。
e.将公共实体元素集、特有实体元素集中的所有实体元素保存在数据库中的实体元素表的存储结构中,每一个实体元素是单独一条数据记录,包含元素标签和元素语义。如“A:访客”的元素标签是A,元素的语义标签是“访客”。
f.将动作元素集中的所有动作元素保存在数据库中的动作元素表中,每一个动作元素是单独一条数据记录,包含元素标签和元素语义。如“X:进入”的元素标签是X,元素的语义标签是“进入”。
二、对所有实体元素建立实体元素层级树结构,并保存在数据库的存储空间中。
a.根据具体语义,先把明显能够形成父子节点关系的公共实体元素找出来处理。测试用例(1)和测试用例(2)中的4个公共实体元素:“B:注册页面、D:设置密码、E:确认密码、F:注册按钮”,存在从属关系,“D:设置密码、E:确认密码、F:注册按钮”这三个实体元素,从属于“B:注册页面”,因此以“B:注册页面”为根节点,建立一棵实体元素层级树结构,由于“D:设置密码、E:确认密码、F:注册按钮”这三个节点不存在从属关系,因此它们三个均属于这颗树的第二层子节点,互为兄弟节点关系。将这棵树保存在数据库中的实体元素层级树表的存储结构中,设该公共实体元素层级树的id为T。
b.再对剩余的公共实体元素和特有实体元素进行处理。测试用例(1)和测试用例(2)中还有1个公共实体元素:“A:访客”,和4个特有实体元素:“C:不存在的用户名、G:注册成功、H:已存在的用户名、I:注册失败:该用户已经注册”,依次判断它们是否从属于公共实体元素层级树T。可以判断“A:访客”不属于公共实体元素层级树T,则以“A:访客”作为根节点,建一棵新的公共实体元素层级树,并保存在实体元素层级树表的存储结构中,设该新的公共实体元素层级树的id为M。继续判断出另外4个特有实体元素均属于公共实体元素层级树T,且是根节点“B:注册页面”的子节点,于是将这4个特有实体元素加入到公共实体元素层级树T中,并更新公共实体元素层级树T的数据库记录。
三、根据测试用例的语义,将测试用例转化为元素的关系序列,并保存到数据库的存储空间中。
a.根据具体语义,将测试用例(1)转换为元素的关系序列为:“AXB;YC;YD;YE;ZF;UBVG”,且测试用例(1)和实体元素A、B、C、D、E、F、G以及动作元素X、Y、Z、U、V存在关联关系,因此将测试用例(1)转换的关系序列“AXB;YC;YD;YE;ZF;UBVG”以及和“A、B、C、D、E、F、G、X、Y、Z、U、V”等各元素的关联关系,一起保存到数据库的测试用例表的存储结构中,设测试用例(1)的id为C1。
b.将测试用例(2)转换为元素的关系序列为:“AXB;YH;YD;YE;ZF;UBVI”,且测试用例(2)和实体元素A、B、H、D、E、F、I以及动作元素X、Y、Z、U、V存在关联关系,因此将测试用例(1)转换的关系序列“AXB;YH;YD;YE;ZF;UBVI”以及和“A、B、H、D、E、F、I、X、Y、Z、U、V”等各元素的关联关系,一起保存到数据库的测试用例表的存储结构中,设测试用例(2)的id为C2。
四、在后台通过实体元素操作界面和动作元素的操作界面,用来展示和管理全部实体元素和动作元素。
a.根据管理系统的常规现有的构建方式,新建实体元素操作界面和动作元素操作界面。实体元素操作界面对应数据库中实体元素表的管理维护;动作元素操作界面对应数据库中动作元素表的管理维护。
b.实体元素操作界面分页展示了所有实体元素,即“A:访客、B:注册页面、D:设置密码、E:确认密码、F:注册按钮、C:不存在的用户名、G:注册成功、H:已存在的用户名、I:注册失败:该用户已经注册”,可以对所有实体元素进行查询、修改、删除。如:将“A:访客”这个实体元素的语义改为“新用户”,则该实体元素变更为“A:新用户”,保存到数据库中,数据库中的该元素的语义标签也变更为“新用户”。也可以在该页面中新增实体元素,如新增一个实体元素为“J:老用户”,保存到数据库中的实体元素表时,在实体元素表中新增一个id为“J”、语义标签为“老用户”的实体元素数据。
c.动作元素操作界面分页展示了所有动作元素,即“X:进入、Y:输入、Z:点击、U:期望、V:提示”,可以对所有动作元素进行查询、修改、删除。如:将“X:进入”这个动作元素的语义改为“刷新”,则该实体元素变更为“X:刷新”,保存到数据库中,数据库中的该元素的语义标签也变更为“刷新”。也可以在该页面中新增动作元素,如新增一个动作元素为“W:弹出”,保存到数据库中的实体元素表时,实体元素表中新增一个id为“W”、语义为“弹出”的实体元素数据。
五、后台通过实体元素层级树操作界面,展示和管理全部实体元素层级树。
a.根据管理系统的常规现有的构建方式,在后台新建实体元素层级树的操作界面。实体元素层级树的操作界面对应数据库中实体元素层级树表的管理维护。步骤二中的公共实体元素层级树T和公共实体元素层级树M在该操作界面上分页展示,可点击查看公共实体元素层级树T和公共实体元素层级树M的树结构、包含哪些元素节点等。
b.在实体元素层级树的操作界面中还提供了根据元素节点关键字的查询功能,可查询某个实体元素位于哪一棵树,父/子节点分别是什么。例如,输入查询关键字为“注册页面”,提交查询后,显示查询结果为“注册页面”关键字对应的元素节点为“B:注册页面”,这个元素节点属于公共实体元素层级树T,并且是公共实体元素层级树T的根节点,它的子节点有“D:设置密码、E:确认密码、F:注册按钮、C:不存在的用户名、G:注册成功、H:已存在的用户名、I:注册失败:该用户已经注册”等7个子节点。
c.实体元素层级树的操作界面还提供了对实体元素层级树的编辑功能,可新增、修改、删除实体元素层级树的操作功能。新增实体元素层级树时,可从下拉框中选择一个实体元素作为这棵新树的根节点,并继续通过下拉框选取根节点的第二层子节点,以及第三层、第四层子节点等等。点击保存,则在数据库的实体元素层级树表的存储结构中新增了一条数据。
d.修改实体元素层级树时,需要选定要修改的实体元素层级树的某个节点进行修改,例如,修改公共实体元素层级树T时,选定公共实体元素层级树T的根节点“B:注册页面”进行修改,将该节点的“D:设置密码、E:确认密码”两个子节点挪到公共实体元素层级树M下,成为公共实体元素层级树M的根节点“A:访客”的子节点,则公共实体元素层级树T的树结构变更为:以“B:注册页面”为根节点,“F:注册按钮、C:不存在的用户名、G:注册成功、H:已存在的用户名、I:注册失败:该用户已经注册”等5个节点作为第二层节点;而公共实体元素层级树M的树结构变更为:以“A:访客”为根节点,以“D:设置密码、E:确认密码”等2个节点作为第二层节点。点击保存,则公共实体元素层级树T和公共实体元素层级树M对应的数据库记录分别更新成功。
e.删除实体元素层级树时,需要选定需要删除的实体元素层级树的根节点进行操作。例如,删除公共实体元素层级树T时,选定公共实体元素层级树T的根节点“B:注册页面”进行操作,点击删除,则将该树整体删除。点击保存,则公共实体元素层级树T对应的数据库记录被删除。
六、在后台展示和管理全部测试用例。
a.根据管理系统的常规现有的构建方式,在后台新建测试用例的操作界面。测试用例的操作界面对应数据库中测试用例表的管理维护。步骤三中的测试用例C1和C2,在该操作界面上分页展示,页面将测试用例C1和C2中包含的元素,按照元素ID在数据库中查找对应的语义,并根据元素关系序列,通过开源的Python的NLTK工具包转换为语义化的测试用例在页面上进行展示。例如:测试用例C1对应的元素关系序列为:“AXB;YC;YD;YE;ZF;UBVG”,并包含了“A、B、C、D、E、F、G、X、Y、Z、U、V”这些元素ID,则根据元素ID查询出所有的元素对应的语义,分别为“访客、注册页面、设置密码、确认密码、注册按钮、不存在的用户名、注册成功、已存在的用户名、注册失败:该用户已经注册”,根据元素的关系序列“AXB;YC;YD;YE;ZF;UBVG”,组装所有的元素语义,成为可阅读的测试用例:“访客进入注册页面,输入不存在的用户名,输入设置密码,输入确认密码,点击注册按钮。期望:注册页面提示:注册成功”。最后将转义后的测试用例展示在测试用例操作界面上。
b.测试用例的操作界面还提供了新增测试用例的功能,并用图形化编辑工具实现。图形化编辑工具读取实体元素层级树表中的所有数据,将每一棵实体元素层级树的所有节点数据用树状结构图形化展现出来;图形化编辑工具也读取动作元素表中的所有数据,可用下拉框选取所有的动作元素。新增测试用例时,根据实体元素层级树的根节点,逐层查阅和选取子节点,并拖拽到图形化编辑工具中;也可通过下拉框选取适合的动作元素,拖拽到图形化工具中。按照测试用例的语义顺序,依次选定实体元素和动作元素,元素选取完成后,点击“保存草稿”按钮后,则自动生成一个所选取元素的关系序列,再点击“保存用例”按钮后,该关系序列则保存到数据库中的测试用例表的存储结构中。
c.测试用例的操作界面还提供了编辑测试用例的功能。对操作界面中展示的每个测试用例,可点击“编辑”按钮打开图形化编辑工具,且该测试用例的所有元素按照关系序列展示在图形化编辑工具中。可新增和删除一些元素,也可拖拽元素到其他位置,改变元素的关系序列。编辑完成后,点击“保存草稿”按钮,则保存该元素的关系序列,点击“保存用例”按钮,将该关系序列保存到数据库中的测试用例表的存储结构中。
d.测试用例的操作界面还提供了删除测试用例的功能。对操作界面中展示的每个测试用例,点击“删除”按钮,此时页面提示“是否删除该测试用例?”,点击“确定”后,页面上该测试用例被删除,对应的数据库的测试用例表中的记录也被删除。
七、后台通过测试用例自动化生成界面,根据输入文本自动化生成测试用例。
a.根据管理系统的常规现有的构建方式,在后台新建测试用例自动化生成界面,该界面包括了文本输入框,以及测试用例的图形化编辑工具。文本输入框允许输入一段文本测试用例,但对文本测试用例的格式做了相应的要求。测试用例格式必须满足以下范式:
步骤(1):实体操作实体,实体操作实体,……
步骤(2):实体操作实体,实体操作实体,……
……
……
例如:一段文本测试用例为:“访客进入注册页面,输入不存在的用户名,输入设置密码,输入确认密码,点击注册按钮,期望:注册页面提示:注册成功”。
需要将这段文本测试用例按照如下范式填写到输入框中:
步骤(1):访客进入注册页面
步骤(2):访客输入不存在的用户名,访客输入设置密码,访客输入确认密码
步骤(3):访客点击注册按钮
步骤(4):注册页面提示注册成功
b.当输入框中的文本测试用例满足范式要求后,后台通过开源的Python NLTK工具包将文本测试用例处理成元素的关系序列。元素的关系序列生成后,在图形化编辑工具中展示。对每一个元素用户都可以编辑和删除,也可以在关系序列中新增其他元素。编辑完成后,点击“保存草稿”按钮,则该元素关系序列被保存为草稿,下一次打开该界面时会自动加载草稿内容到图形化编辑工具中。点击“保存用例”按钮,该关系序列则保存到数据库中的测试用例表的存储结构中。
Claims (9)
1.组件化的测试用例的生成方法,其特征包括:
A.提取元素:将所有历史文本测试用例中涉及到的所有实体元素和动作元素分别进行提取,形成对应的实体元素集和动作元素集,其中在实体元素集中包括公共实体元素集和特有实体元素集,公共实体元素集中包含的公共实体元素指的是所有已经在数据库中存在的实体元素,特有实体元素集中包含的特有实体元素指的是未在数据库中保存的实体元素;
对所有提取出的实体元素和动作元素分别设置对应的语义标签;
在数据库的存储空间中分别建立实体元素表和动作元素表的存储结构,并将所述的实体元素集和动作元素集分别对应保存在实体元素表和动作元素表的存储结构中;
B.建立实体元素层级树结构:将公共实体元素集中的所有公共实体元素,按照在实际语义环境中实体与实体之间的包含关系,建立公共实体元素层级树,其中被包含的实体元素为上一层级的实体元素的子节点;
对特有实体元素集中的特有实体元素,如果可以归入到公共实体元素层级树中成为其中的子节点,则找到该特有实体元素所对应的父节点后将其归入,否则单独将该特有实体元素作为根节点来新建特有实体元素层级树;
在数据库的存储空间中建立实体元素层级树表的存储结构,将所述的公共实体元素层级树和特有实体元素层级树分别保存在实体元素层级树表的存储结构中;
C.建立关系序列:将提取出的所有实体元素和动作元素根据各自对应的语义标签,按照各元素之间的时序关系建立各元素的关系序列,使每一个测试用例都由元素的关系序列构成;
在数据库的存储空间中建立测试用例表的存储结构,将每一个测试用例中对应的关系序列保存到测试用例表的存储结构中;
D.对后台的测试用例输入界面中的文本输入框按照测试用例的语义格式进行输入内容和输入格式的限定,测试人员按照所述文本输入框的限定要求输入文字后,后台通过自然语言处理工具包将所述输入的文字处理成对应的元素和元素之间的关系序列,然后将所述元素之间的关系序列保存到所述的测试用例表的存储结构中。
2.如权利要求1所述的组件化的测试用例的生成方法,其特征为:步骤A中,将提取的所有实体元素和动作元素进行归并和去重后,再形成所述对应的实体元素集和动作元素集。
3.如权利要求1所述的组件化的测试用例的生成方法,其特征为:步骤D中,后台将处理后生成的关系序列展示在图形化编辑工具上,测试人员对生成的关系序列进行编辑调整后再进行所述的保存。
4.如权利要求1至3之一所述的组件化的测试用例的生成方法,其特征为:在后台分别设置对实体元素和动作元素进行增加、修改和/或删除的操作界面,对实体元素或动作元素进行操作并保存后,数据库存储空间中实体元素表或动作元素表的存储结构对应的实体元素集或动作元素集也同步更新。
5.如权利要求1至3之一所述的组件化的测试用例的生成方法,其特征为:在后台设置对步骤B建立的实体元素层级树结构进行实体元素增加、修改和/或删除的操作界面,在该操作界面中设有查询输入框,用于输入关键字查询某一实体元素位于的层级树和与该实体元素相关父/子节点;对实体元素操作后,在数据库存储空间中实体元素层级树表的存储结构的保存内容同步更新。
6.如权利要求5所述的组件化的测试用例的生成方法,其特征为:在新增实体元素层级树结构时,先选择一个实体元素作为根节点,再以该实体元素为基础建立实体元素层级树结构;
修改实体元素层级树结构时,选择一个实体元素作为节点进行修改,将该节点和它的所有子节点修改到新的父节点下;
删除实体元素层级树结构时,指定一棵实体元素层级树的根节点进行操作,将该棵 实体元素层级树整体删除。
7.如权利要求1至3之一所述的组件化的测试用例的生成方法,其特征为:在后台设置对所述测试用例表的存储结构中保存的测试用例的关系序列进行增加、修改和/或删除的操作界面,对关系序列操作完成后,在测试用例表的存储结构同步更新。
8.如权利要求7所述的组件化的测试用例的生成方法,其特征为:通过自然语言处理工具包,根据每一个元素的语义标签,将测试用例表的存储结构保存的关系序列转换为对应的自然语言文本,并根据各元素之间的时序关系将各元素对应的自然语言文本组合为文本格式的测试用例。
9.如权利要求7所述的组件化的测试用例的生成方法,其特征为:在对测试用例的关系序列进行操作时,通过界面提供的图形化编辑工具对被操作的关系序列中的实体元素或动作元素进行操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010244438.XA CN111124938B (zh) | 2020-03-31 | 2020-03-31 | 组件化的测试用例的生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010244438.XA CN111124938B (zh) | 2020-03-31 | 2020-03-31 | 组件化的测试用例的生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111124938A CN111124938A (zh) | 2020-05-08 |
CN111124938B true CN111124938B (zh) | 2020-08-21 |
Family
ID=70494015
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010244438.XA Active CN111124938B (zh) | 2020-03-31 | 2020-03-31 | 组件化的测试用例的生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111124938B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111309637B (zh) * | 2020-05-14 | 2020-08-21 | 四川新网银行股份有限公司 | 基于银行微服务的软件测试分析方法 |
CN111813697B (zh) * | 2020-08-26 | 2021-07-16 | 四川新网银行股份有限公司 | 一种基于测试对象调用标记的测试覆盖率统计方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608874A (zh) * | 2016-07-12 | 2018-01-19 | 博彦科技股份有限公司 | 测试方法和装置 |
CN106598861B (zh) * | 2016-12-19 | 2020-03-03 | 广州爱九游信息技术有限公司 | 测试用例生成方法、装置及电子设备 |
CN107908542B (zh) * | 2017-07-26 | 2020-06-23 | 平安壹钱包电子商务有限公司 | 测试用例创建方法、装置、计算机设备及存储介质 |
CN109656802B (zh) * | 2017-10-10 | 2022-05-13 | 大商所飞泰测试技术有限公司 | 基于高耦合自动匹配技术的测试用例设计系统 |
CN108459957A (zh) * | 2017-11-29 | 2018-08-28 | 平安科技(深圳)有限公司 | 基金系统测试用例的测试方法、装置、设备及存储介质 |
CN108304329B (zh) * | 2018-02-13 | 2020-12-15 | 论客科技(广州)有限公司 | 一种测试用例的设计方法、装置、终端及可读存储介质 |
JP2019021341A (ja) * | 2018-10-11 | 2019-02-07 | 日本電気株式会社 | アプリケーションテスト支援装置、そのデータ処理方法、およびプログラム |
CN109710523B (zh) * | 2018-12-18 | 2023-04-07 | 平安科技(深圳)有限公司 | 视觉稿的测试用例生成方法及装置、存储介质、电子设备 |
CN110727593B (zh) * | 2019-10-12 | 2023-07-25 | 四川新网银行股份有限公司 | 基于历史需求数据挖掘的测试用例智能生成方法及介质 |
-
2020
- 2020-03-31 CN CN202010244438.XA patent/CN111124938B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN111124938A (zh) | 2020-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7496890B2 (en) | Generation of configuration instructions using an abstraction technique | |
US6571247B1 (en) | Object oriented technology analysis and design supporting method | |
KR101265851B1 (ko) | 데이터베이스로의 질의를 통한 자동 완성 | |
US6327593B1 (en) | Automated system and method for capturing and managing user knowledge within a search system | |
US7822795B2 (en) | Apparatus and methods for displaying and determining dependency relationships among subsystems in a computer software system | |
US20050203869A1 (en) | Hierarchical database apparatus, components selection method in hierarchical database, and components selection program | |
EP3998534A1 (en) | Improved construction of database schema models for database systems and rest api's | |
US20060271390A1 (en) | Integrated system, tools, and methods for designing automated business process applications | |
CN104239073B (zh) | 一种数据维护系统快速原型开发系统及方法 | |
US20070094306A1 (en) | Method and model for enterprise system development and execution | |
KR101966518B1 (ko) | 엑셀 기반 건축 설계 파일의 버전 제어 방법 | |
US7631004B2 (en) | Systems and methods for creating a template from an existing file | |
US8407235B2 (en) | Exposing and using metadata and meta-metadata | |
JP2007087216A (ja) | 階層型辞書作成装置、プログラムおよび階層型辞書作成方法 | |
CN111124938B (zh) | 组件化的测试用例的生成方法 | |
CN112256238B (zh) | 一种基于fmea的模型化需求条目管理方法 | |
US20230102947A1 (en) | Providing operations in accordance with worksheet relationships and data object relationships | |
US20010014899A1 (en) | Structural documentation system | |
US20050216501A1 (en) | System and method of providing and utilizing an object schema to facilitate mapping between disparate domains | |
CN111177016B (zh) | 软件测试缺陷的管理方法 | |
JP2006244283A (ja) | データベース管理装置およびデータベース管理方法 | |
CN116450110A (zh) | 基于自定义属性的数据库的访问代码自动生成方法及系统 | |
CN112631585B (zh) | 基于xml的快速参数界面配置方法 | |
CN114895875A (zh) | 一种零代码可视化信息系统元数据的生产应用方法及系统 | |
JP3424558B2 (ja) | オブジェクト管理方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |