一种基于用户反馈的测试用例生成方法与流程

文档序号:14719024发布日期:2018-06-17 00:21阅读:504来源:国知局
本发明涉及软件测试技术,特别涉及一种利用用户反馈来设计和生成测试用例的方法。
背景技术
:为了确保软件质量,软件在发布前的不同阶段经历了各种各样的测试:单元测试、集成测试、系统测试、功能测试、兼容性测试、性能测试及安全测试等。测试人员运用各种测试理论、测试方法设计测试用例,保证覆盖面尽可能达到100%。然而,总会有一些问题或者Bug不易被开发和测试人员发觉,它们往往要在客户或者用户的生产环境才暴露出来,甚至只被极少数用户随意或者探索性测试发现。如果这样的问题没有得到很好的处理和管理,就会一直遗留在软件系统中,影响用户体验,最终影响用户满意度和软件销售。测试用例是为某个目标而设计的一组测试输入、执行条件及期望结果,用以测试或核实某个程序路径,是否满足某个特定要求。测试用例设计是软件测试的核心。目前,测试用例设计方法主要有:等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动分析法等。通常的测试用例设计大致分为以下三种:(1)先根据相关开发文档(需求说明、详细设计等)设计测试用例,执行测试用例获得缺陷数据,建立测试用例、缺陷与需求或功能间的关联;(2)基于程序代码设计测试用例,如利用函数间的调用关系、代码的执行路径;(3)基于软件GUI设计测试用例,如将软件界面窗口元素与软件功能、对应问题关联。然而,这些方法都不是从用户实际使用的角度出发,设计出的测试用例难以发现和重现用户反馈的问题。技术实现要素:本发明的目的是为了解决现有的软件测试方法未能从用户使用软件的角度出发,设计出的测试用例难以发现和重现用户反馈的问题。为达到上述目的,本发明提供一种基于用户反馈的测试用例生成方法,其特征在于,包括如下步骤:步骤一、对用户反馈的待测试软件进行功能划分,对每一功能再细分成具有单一功能的功能模块,形成功能点列表,并建立针对待测软件类型的同义动作库和同义对象库;步骤二、分析用户的反馈信息,使用问题筛选器筛选出真正的问题,并使用问题过滤器提取出有价值的问题;步骤三、使用用例元素分析器分析、提取测试用例元素;步骤四、使用配置映射器生成测试问题与测试用例元素的映射关系;步骤五、使用用例生成器自动生成测试用例。具体地,步骤一中,所述功能点列表中包括软件名称、软件版本、功能模块、操作步骤及结果。具体地,步骤一中,建立同义动作库及同义对象库包括:提取出功能点列表中操作步骤及结果中的动作关键词,并补充完整该动作关键词对应的同义词,生成同义动作库;提取出功能列表中操作步骤及结果中的对象关键词,并补充完整该对象关键词对应的同义词,生成同义对象库。具体地,步骤二中,使用问题筛选器筛选出真正的问题包括:从原始反馈中获取的反馈详情中,析取出操作步骤和结果,对二者以动作结合对象的形式展现,并将分解得到的动作关键词和对象关键词以数组的形式进行展现并命名为数组A[m-1][p],其中m表示行,p表示列;以反馈记录文件中原始反馈的功能模块为关键词,查询所述功能点列表,析取该功能点的操作步骤和结果,将操作步骤和结果都分解为动作加对象的形式,并将分解得到的动作关键词和对象关键词以数组形式进行展现并命名为数组B[n-1][q],n表示行,q表示列;对原始反馈的反馈详情数组A与功能操作数组B进行匹配,根据匹配结果确定原始反馈的性质;将反馈性质为问题的原始反馈筛选出来。具体地,对原始反馈的反馈详情数组A与功能操作数组B进行匹配包括:(1)比较反馈详情A[m-1][p]和功能点详情B[n-1][q]的行数m和n,即操作步骤数,若m和n不相等,进入(2);若m和n相等,进入(3);(2)m和n不相等,反馈性质为问题,匹配结束;(3)m和n相等,遍历A和B的各元素A[i][j]和B[i][j],比较A[i][j]和B[i][j],若两者相同,进入(4);若两者不同,进入(5);(4)A[i][j]和B[i][j]相同,反馈详情与功能点详情一致,反馈性质为软件固有设计,匹配结束;(5)查询同义动作库和同义对象库,如果B[i][j]与A[i][j]同义,进入(6),否则进入(7);(6)B[i][j]与A[i][j]同义,反馈性质为软件固有设计,匹配结束;(7)B[i][j]与A[i][j]不同义,反馈性质为问题,匹配结束。具体地,步骤二中,使用问题过滤器提取出有价值的问题包括:获取已筛选反馈中同一功能模块的所有反馈,析取反馈详情字段,对操作步骤和结果进行匹配,如匹配为100%,则为重复的反馈,删除重复记录,保留最早日期的记录;以反馈记录中的功能模块字段为关键词,查询现有缺陷记录,获取同版本的所有缺陷记录,析取问题详情字段的操作步骤和结果中的动作关键词和结果关键词分解为动作加对象和对象加动作的形式,结合同义动作库和同义对象库,对反馈详情和问题详情进行匹配,匹配度为100%的视为重复问题,删除对应反馈记录。具体地,步骤三中,使用用例元素分析器分析、提取测试用例元素包括:以软件版本号为关键词,查询出该版本号对应的所有问题,遍历问题记录,获取问题记录中的问题简述、功能模块及问题详情。本发明的有益效果是:本发明既可以节省测试用例设计和编写所需的劳力和脑力,又助于测试人员发散测试用例设计的思维,同时也提高了测试用例的覆盖面,更有助于尽早发现和解决难以发现的Bug,从而提高软件质量。附图说明图1为本发明的基于用户反馈的测试用例生成方法的流程图;图2为实施例的问题筛选器数据处理原理示意图;图3为实施例的问题过滤器工作流程示意图。具体实施方式以下结合附图及实施例对本发明的技术方案作进一步详细描述。本发明针对现有的软件测试方法未能从用户使用软件的角度出发,设计出的测试用例难以发现和重现用户反馈的问题,提供一种基于用户反馈的测试用例生成方法,如图1所示,该方法包括如下步骤:步骤一、对用户反馈的待测试软件进行功能划分,对每一功能再细分成具有单一功能的功能模块,形成功能点列表,并建立针对待测软件类型的同义动作库和同义对象库;步骤二、分析用户的反馈信息,使用问题筛选器筛选出真正的问题,并使用问题过滤器提取出有价值的问题;步骤三、使用用例元素分析器分析、提取测试用例元素;步骤四、使用配置映射器生成测试问题与测试用例元素的映射关系;步骤五、使用用例生成器自动生成测试用例。实施例结合图2及图3,以下对本发明的技术方案作示例性说明。本发明提出了一种基于用户反馈的测试用例设计和生成的方法,解决用户反馈处理耗时,测试用例覆盖低和难以只在用户环境被发现或者只被用户察觉的Bug的问题。该方法的步骤如下:建立问题功能点列表。对用户反馈的标的软件进行功能划分,对每一功能再细分成具有单一功能的功能模块,形成功能点列表。该列表的数据结构如下表一所示。表一建立同义动作库。提取出功能点列表中操作步骤、结果中的动作关键词,并尽可能补充完整该动作关键词对应的同义词,生成同义动作库。同义动作库结果如下表二所示。表二软件类型动作对象动作关键词同义动作1同义动作2同义动作n手机APP按钮点击点触按建立同义对象库。提取出功能列表中操作步骤、结果中的对象关键词,并尽可能补充完整该对象关键词对应的同义词,生成同义对象库。同义对象库结果如下表三所示。表三软件类型对象同义对象1同义对象2同义对象3同义对象nWeb应用dialog对话框提示框提示获取反馈记录文件。访问用户反馈系统,获取反馈记录,并生成统一固定格式的反馈记录文件(例如excel格式等)。使用问题筛选器筛选出真正的问题。问题筛选器的输入为原始反馈和功能点列表,输出为已筛选反馈,其核心为基于动作关键词和对象关键词的匹配流程。将问题详情和功能点详情的操作步骤和结果提取出来,展现为(动作+对象)的形式,最后将操作步骤和结果中的动作关键词和对象关键词以数组表示,并结合同义动作库和同义对象库对二者进行匹配,根据匹配结果判断反馈性质。具体筛选流程为:首先,从原始反馈中获取的反馈详情中,析取出操作步骤和结果,对二者以动作结合对象的形式展现。随后将分解得到的动作关键词和对象关键词,展现为m行4列的数组,命名为数组A[m-1][3]。接着,以反馈记录文件中原始反馈的功能模块为关键词,查询已事先建立的功能点列表,析取该功能点的操作步骤和结果,将操作步骤和结果都分解为(动作+对象)的形式。随后,将分解得到的动作关键词和对象关键词展现为n行4列的数组,命名为数组B[n-1][3]。然后,对原始反馈的反馈详情(数组A)与功能操作(数组B)进行匹配,根据匹配结果确定原始反馈性质。匹配流程为:(1)比较反馈详情A[m-1][3]和功能点详情B[n-1][3]的行数m和n,即操作步骤数;若m和n不相等,进入(2);若m和n相等,进入(3);(2)m和n不相等,反馈性质为问题,匹配结束;(3)m和n相等,遍历A和B的各元素A[i][j]和B[i][j],比较A[i][j]和B[i][j]。若两者相同,进入(4);若两者不同,进入(5);(4)A[i][j]和B[i][j]相同,反馈详情与功能点详情一致,反馈性质为软件固有设计,匹配结束;(5)查询同义动作库和同义对象库(当j为0和2时,元素为动作关键词,查询同义动作库,j为1和3时,元素为对象关键词,查询同义对象库)。如果B[i][j]与A[i][j]同义,进入(6);否则进入(7);(6)B[i][j]与A[i][j]同义,反馈性质为软件固有设计,匹配结束;(7)B[i][j]与A[i][j]不同义,反馈性质为问题,匹配结束。最后,将反馈性质为问题的原始反馈筛选出来,筛选后的反馈数据结构如附图2(数据结构及数据转换图)中所示的已筛选反馈。较之原始反馈,已筛选反馈增加了值为“问题”的“反馈性质”字段。使用问题过滤器提取出有价值的问题。问题过滤器的输入为已筛选反馈和现有缺陷记录,输出为问题记录。问题过滤流程为:(1)删除已筛选反馈中重复的问题。具体步骤:获取已筛选反馈中同一功能模块的所有反馈,析取反馈详情字段,对操作步骤和结果进行匹配。如匹配为100%,则为重复的反馈,删除重复记录,保留最早日期的记录。(2)删除与现有缺陷记录重复的问题。具体步骤:以反馈记录中的功能模块字段为关键词,查询现有缺陷记录,获取同版本的所有缺陷记录;析取问题详情字段的操作步骤和结果中的动作关键词和结果关键词,分解为(动作+对象)和(对象+动作)的形式;结合同义动作库和同义对象库,对反馈详情和问题详情进行匹配,匹配度为100%的视为重复问题;删除对应反馈记录。(3)已筛选反馈中保留下来的即是被用户新发现的、被测试人员遗漏的,有设计测试用例必要的有价值的问题。使用用例元素分析器提取生成测试用例的要素。分析器输入为问题记录,输出为测试用例。以软件版本号为关键词,查询出该版本对应的所有问题,遍历问题记录,获取问题记录中的问题简述、功能模块、问题详情。使用配置映射器生成测试问题与测试用例元素的映射关系。配置问题记录元素与测试用例要素间的映射关系,如问题简述、问题详情、功能模块依次对应测试用例的名称、执行步骤、功能模块。使用用例生成器生成测试用例。配置好问题与测试用例的映射关系后,对用例进行再加工,从功能点列表获取每一执行步骤对应的结果来更新测试用例中的期望结果项。通过分析这些测试用例,测试人员可以了解用户的行为,从而发散用例设计思路。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1