Skip to main content
QUICK REVIEW

[论文解读] Quality Assurance of Bioinformatics Software: A Case Study of Testing a Biomedical Text Processing Tool Using Metamorphic Testing

Madhusudan Srinivasan, Morteza Pourreza Shahri|arXiv (Cornell University)|Feb 20, 2018
Software Testing and Debugging Techniques参考文献 7被引用 4
一句话总结

本文提出使用10种新型元测试关系(MR)的元测试(MT),以解决生物实体识别工具(如LingPipe)中的测试预言问题。通过应用定义输入变换下预期输出变化的MR,该方法有效检测出软件缺陷——在ChunkTagHandler类中实现83%的变异体杀死率,在IndoEuropeanTokenizer类中实现61%的变异体杀死率,证明了MT在生物医学自然语言处理(NLP)软件质量保障中的可行性。

ABSTRACT

Bioinformatics software plays a very important role in making critical decisions within many areas including medicine and health care. However, most of the research is directed towards developing tools, and little time and effort is spent on testing the software to assure its quality. In testing, a test oracle is used to determine whether a test is passed or failed during testing, and unfortunately, for much of bioinformatics software, the exact expected outcomes are not well defined. Thus, the main challenge associated with conducting systematic testing on bioinformatics software is the oracle problem. Metamorphic testing (MT) is a technique used to test programs that face the oracle problem. MT uses metamorphic relations (MRs) to determine whether a test has passed or failed and specifies how the output should change according to a specific change made to the input. In this work, we use MT to test LingPipe, a tool for processing text using computational linguistics, often used in bioinformatics for bio-entity recognition from biomedical literature. First, we identify a set of MRs for testing any bio-entity recognition program. Then we develop a set of test cases that can be used to test LingPipe's bio-entity recognition functionality using these MRs. To evaluate the effectiveness of this testing process, we automatically generate a set of faulty versions of LingPipe. According to our analysis of the experimental results, we observe that our MRs can detect the majority of these faulty versions, which shows the utility of this testing technique for quality assurance of bioinformatics software.

研究动机与目标

  • 解决生物信息学软件中测试预言问题这一关键挑战,即难以明确定义预期输出。
  • 开发一种系统化方法来测试生物实体识别工具,这些工具常因缺乏验证机制而未被测试。
  • 评估元测试(MT)在生物医学自然语言处理(NLP)工具质量保障中的可行性和有效性。
  • 证明MT即使在缺乏单元测试的情况下,也能检测出复杂生物信息学软件(如LingPipe)中的缺陷。
  • 提供一套可重用的元测试关系(MR),适用于通用的生物实体识别系统。

提出的方法

  • 为生物实体识别识别出10种领域特定的元测试关系(MR),例如删除或调换段落、重新排列词语以及修改文本结构。
  • 通过以可预测方式变换输入文本,应用这些MR生成原始测试用例和后续测试用例。
  • 在原始测试用例和后续测试用例上执行LingPipe,并验证输出变化是否符合预期的MR行为。
  • 使用变异测试自动生成LingPipe的故障版本(变异体),以评估MR在检测故障方面的有效性。
  • 分析变异体杀死率,以评估单个MR的故障检测能力,并识别最有效的MR。
  • 基于原始测试用例与后续测试用例之间的语句覆盖率和执行路径差异,评估MR对代码变更的敏感性。

实验结果

研究问题

  • RQ1元测试能否有效检测缺乏正式测试预言的生物实体识别工具中的故障?
  • RQ2哪些元测试关系在检测生物实体识别软件故障方面最为有效,原因是什么?
  • RQ3不同MR在变异体杀死率和语句代码覆盖率方面如何比较?
  • RQ4当单元测试缺失或不可行时,MT能否作为传统测试的可行替代方案?
  • RQ5MR在多大程度上能够检测出复杂生物医学NLP工具(如LingPipe)中的细微故障?

主要发现

  • 元测试在ChunkTagHandler类中检测到83%的变异体,在IndoEuropeanTokenizer类中检测到61%的变异体,证明其具有强大的故障检测能力。
  • MR7(删除段落)和MR9(调换段落)是最有效的MR,除一个变异体外均杀死了相同的变异体集合,表明MR9可能存在冗余。
  • MR10(调换随机词语)的变异体杀死率最低,表明其可能不如其他MR有效,尽管它唯一杀死了其他MR未捕获的一个变异体。
  • 在原始测试用例与后续测试用例之间引发不同执行路径的MR表现出更高的代码变更敏感性,表明其具有更好的故障检测潜力。
  • LingPipe关键类中缺乏单元测试,凸显了对替代测试策略的需求,而MT成功应对了这一需求。
  • 本研究是首次将MT专门应用于生物实体识别,为生物医学NLP中的预言测试奠定了基础。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。