人工智能时代的软件测试 - 超越金字塔的演进

主要观点:2020 年代将由大型语言模型(LLM)和 AI 工具定义,软件测试也不例外。介绍了测试金字塔(testing pyramid)的概念,包括单元测试、集成测试和端到端测试及其特点。讨论了软件测试生成技术,如基于搜索和基于 LLM 的技术,分别阐述其原理、工具及优缺点。强调构建可持续测试策略需结合自动化测试技术、静态分析工具和手动端到端测试,AI 自动化为软件质量保证带来新机遇。

关键信息:

  • 2020 年代由 LLM 和 AI 定义,软件测试受其影响。
  • 测试金字塔分三层,各层测试特点不同。
  • 基于搜索的测试生成基于遗传算法或梯度优化,以代码覆盖为目标函数,有 EvoSuite 等工具,但存在计算和理解成本等问题。
  • LLM 基于的测试生成在近几年发展迅速,如 Meta 的 TestGen-LLM 能自动生成单元测试,TestSpark 可结合搜索算法覆盖差距,但其输出受训练数据质量影响。
  • 构建可持续测试策略需结合多种技术,自动化可扩展单元测试范围,释放人力专注于复杂层级。

重要细节:

  • [“Succeeding with Agile”]中提到 Mike Cohn 的测试金字塔概念。
  • 搜索算法的关键组件是“适应度函数”,常用代码覆盖作为指标。
  • Google Research 在应用 LLM 到软件生成方面有进展,如内联代码完成。
  • TestGen-LLM 在 Meta 早期工业规模部署,取得积极效果。
  • 静态分析工具可早期检测内存泄漏等问题。
阅读 31
0 条评论