关键词:
蜕变测试
代码搜索引擎
情感分析
自然语言处理
蜕变关系
oracle问题
摘要:
目前,代码搜索引擎已被软件开发人员广泛使用。然而,由于数据处理量过大,相关需求规范也不完善,因此代码搜索引擎面临着oracle问题。同时,由于用户对代码搜索引擎的高度依赖,了解其搜索结果的可靠性来帮助用户选择适合自身的搜索引擎也至关重要。同样地,随着自然语言处理(Natural Language Processing,NLP)技术的快速发展与广泛应用,情感分析也因其在工业和其他领域应用的潜力而受到广泛关注。但是NLP模型的准确度却很难衡量,其评估过程也同样存在着oracle问题。此外用户选择情感分析系统的目的并不相同,提出一种合适的机制为用户提供指导性意见也具有重要意义。由于代码搜索引擎和情感分析系统在测试过程中都面临着oracle问题,本文将蜕变测试(Metamorphic Testing,MT)应用于这些系统中,并从软件验证和确认两个角度出发,提出相应的蜕变关系(Metamorphic Relation,MR)进行测试。首先本文针对代码搜索引擎共提出5种MR。其中4种根据代码搜索引擎的部分规范定义,可用于软件验证;另1种则是基于用户角度提出,用于软件确认。其次针对情感分析系统,本文分别提出13种用来测试语句级别情感分析系统的MR,6种MR用于文档级别情感分析系统的测试。最后将这些MR分别应用于5个著名代码搜索引擎和4个情感分析系统中,并通过MR的违反率说明蜕变测试评估软件质量的有效性。实验结果表明这些MR可以很好地揭示代码搜索引擎和情感分析系统中存在的异常行为,同时也可以帮助用户更好地理解软件的工作机制,指导用户基于自身需求选择合适的系统。本文的主要贡献点如下:(1)将蜕变测试应用于代码搜索引擎的测试中。结合部分需求规范提出4种应用于代码搜索引擎的MR,实验结果表明蜕变测试可以发现代码搜索引擎中存在的缺陷;(2)从用户的角度出发,提出了1种应用于代码搜索引擎的MR。实验结果说明代码搜索引擎在满足用户需求方面存在局限性,根据这些实验结果用户可以基于自身需求选择合适的代码搜索引擎;(3)提出了19种应用于情感分析系统的MR。实验结果表明,情感的表达方式对这些系统的情感分析能力有着一定的影响,同时这些实验结果可以为用户选择合适的情感分析系统提供指导性意见。