浅谈NLP在功能测试的应用

发表于:2021-2-09 09:27

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:常霄颖    来源:51Testing软件测试网原创

  背景
  在功能测试中,边界值测试是值得关注的一个重点。根据大量的测试统计数据发现,很多错误是发生在输入或输出范围的边界上,而非中间域。
  因此针对各种边界情况设计测试用例,可以查出更多的错误。在黑盒测试中,通常将边界值划分法与等价类划分法结合使用,这种情况下,边界值来自等价类的边界,然而等价类划分主要依据测试人员的测试经验以及知识积累,有经验的测试工程师划分出的等价类会细而全,而毫无经验的测试工程师划分的等价类就会较为粗糙。
  根据粗糙等价类选取边界值而编写出的测试用例质量远远低于根据全量等价类编写出的测试用例的质量。为提高测试质量,避免千人千质的测试案例质量,本文提出了使用NLP技术指导测试案例编写的解决办法。
  边界值和等价类划分法测试用例设计模式
  使用边界值和等价类划分法进行用例设计,可归纳为3个步骤:
  由此可以看出准确划分等价类是设计边界值测试用例的关键。在等价类划分过程中,是有一定的规则可循的,如:
表 1
  如果将每一个规则都看做为一类,只要适用该规则的业务规则,就划分至该类。例如,有如下3个业务规则:
表 2
  对这个3个业务规则进行分类,分类结果如下:
表 3
  根据等价类划分建议,设计边界值测试用例:
表 4
  在实际工作中,等价类的划分规则不只有上面3条,根据被测系统和被测业务的不同,等价类的划分规则非常丰富,但是要求每个测试工程师都掌握所有的等价类划分规则是不现实的。如果使用机器代替人工将业务规则与对应等价类划分规则对应起来,就可以避免因测试人员的知识、经验局限而导致等价类划分不全,边界值测试用例编写不全面的问题。
  NLP文本分类基本方法
  NLP文本分类主要研究文本内容理解和模式分类等自然语言理解和模式识别问题,能在预先定义的分类体系下,根据文本的内容或属性,将给定文本与一个或多个类别相关联。文本分类最终目的是要找到一个有效的分类器,准确地实现文本到类别的映射。NLP文本分类主要是基于机器学习的文本分类方法,其原理如下图所示:
  使用训练样本进行特征选择和分类器参数训练,并发布一个分类服务,当新的文本过来,分类服务将文本分类至一个或多个类别。
  NLP在设计功能测试案例中的应用
  使用NLP技术指导测试案例编写,主要是指使用NLP文本分类技术发布一个分类服务,该服务可根据输入的业务需求说明书产出测试关注点表格。测试工程师以此文档作为依据,设计边界值测试用例避免遗漏。其流程如下:
  01 训练集数据集准备
  首先需要准备训练集,训练集的格式为:
表 5
  在训练集中,需要将实际工作中总结的等价类划分规则都写入进去,划分规则与业务规则是一对多的关系,划分规则与对应类别是一对一的关系。训练集的数据越多,训练出的分类器越准确,之后的预测效果也更好。
  02 文本预处理
  文本预处理包括文本分词和去停用词。
  文本分词指将训练集中的句子切分成一个一个中文词组。为了方便对文本分类整个流程进行展示说明,本段只选取表5中前三条文本进行分词结果举例说明,文本预处理只预处理表5中的业务规则列:
表 6
  去停用词是指去除文本中一些高频的代词、连词、介词等对文本分类无意义的词,通常采用的方法是维护一个停用词表,例如:{为,是,和……},去停用词时就是删除出现在停用表中的词。去停用词结果:
表 7
  03文本表示
  文本表示的作用就是把文本预处理后的语料转换成计算机可理解的方式,这一步是决定文本分类质量最重要的部分。常用词袋模型(BOW, Bag Of Words)进行处理。词袋模型的主要思想是:
  在文本预处理之后,统计训练集中所有不重复的词建立词典,然后统计文本中每个词出现的次数,得到文本基于词的特征值,将文本样本的词与对应的词频放在一起通过词典映射成向量,就是向量化。根据上文预处理的结果,建立一个词典用于映射匹配:
  {客户,年龄,输入,范围,0,70,必须,数字,是否,大于,50岁,true,false}


版权声明:本文出自《51测试天地》第六十期。51Testing软件测试网及相关内容提供者拥有51testing.com内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号