在人工智能生成代码日益兴起的当下,开发团队必须更明智地掌握代码审查、安全测试以及自动化测试的方法。
设想一下,衡量开发人员的生产力如同在智能手表上查看健身数据般简便。而有了像 GitHub Copilot 这样的人工智能编程助手,这种便捷似乎近在咫尺。GitHub Copilot 宣称能够通过上下文感知代码完成和片段生成来提高开发人员的生产力。借助人工智能建议整行或代码模块,GitHub Copilot 意在减少手动编码的工作量,仿佛给开发者配备了一个强力助手,助其更快编写代码并专注于解决复杂问题。
组织通常采用 DevOps 研究和评估(DORA)指标,作为评估其软件开发和 devops 团队绩效的结构化手段。这种数据驱动的方式能让团队以更高的可靠性和更优的系统稳定性加快软件交付速度。通过关注部署频率、更改的准备时间、更改失败率以及平均恢复时间(MTTR),团队能够获取有关工作流程的宝贵见解。
然而,人工智能对 DORA 指标并非全是有利的。DORA 指标并非完美无缺,若滥用可能导致对数量而非质量的狭隘关注。开发人员可能会为提高指标而玩弄系统,就如同学生为考试而死记硬背却未真正理解知识。而且,从事现代微服务应用程序开发的人员与处理旧的单片系统的人员相比,在 DORA 指标上本就存在差异。
人工智能生成代码的出现使这一问题更为严重。尽管像 GitHub Copilot 这样的工具能提升生产力指标,但结果未必反映出更优的部署实践或系统稳定性。自动生成的代码可能会夸大生产力统计数据,却无法真正优化开发流程。
尽管潜力巨大,但人工智能编码助手也带来了新的挑战。除了对开发人员技能退化以及使用公共代码的道德问题的担忧外,专家预测软件生产中的 QA 和安全问题将大幅增加,直接影响 DORA 指标。
经过大量公共代码训练的人工智能编码助手,可能会无意中推荐带有错误或漏洞的代码片段。比如,人工智能生成的代码若未正确处理用户输入,就可能为 SQL 注入攻击留下隐患。此外,人工智能缺乏特定于项目的上下文,可能导致代码与项目独特的业务逻辑或架构标准不符,从而在开发后期甚至生产中引发功能问题。
开发人员还存在过度依赖人工智能生成代码的风险,致使对代码审查和测试变得懈怠。细微的错误和低效率可能被忽略,增加生产中出现缺陷的可能性。
这些问题会直接影响 DORA 指标。人工智能生成的代码导致的更多缺陷可能会提高更改失败率,对部署管道的稳定性造成负面影响。生产中出现的错误可能会增加平均恢复时间(MTTR),因为开发人员需要花费更多时间修复人工智能引发的问题。另外,为捕捉人工智能助理引入的错误,需要额外的审查和测试,这可能会延缓开发进程,延长更改的准备时间。
为减轻这些影响,开发团队必须保持严格的代码审查实践,并建立全面的测试策略。对于这些日益增多的人工智能生成代码,应像对待手动编写的代码一样进行彻底测试。组织必须投入端到端测试自动化和测试管理解决方案,以便在早期提供代码质量的跟踪和端到端可见性,并在整个过程中系统地实现测试自动化。开发团队必须更智慧地进行代码审查、应用安全测试和自动化测试,以管理人工智能生成的代码量。如此才能确保持续交付高质量软件,并保持应有的信任水平。
以下是软件开发团队需要考虑的一些准则:
代码审查:在代码审查过程中融入测试的最佳实践,即便使用人工智能生成的代码,也要保证代码质量。像 GitHub Copilot 这样的人工智能助理实际上能够为这一过程做出贡献,比如建议改进测试覆盖范围,指出可能需要额外测试的领域,并突出需要解决的潜在边缘案例。这有助于团队坚守代码质量和可靠性的高标准。
安全审查:将代码中的每个输入都视作潜在威胁。为使应用程序抵御常见威胁,如 SQL 注入或跨站点脚本(XSS)攻击,这些可能通过 AI 生成的代码潜入的攻击,必须严格验证和清理所有输入。创建强有力的治理政策来保护敏感数据,如个人信息和信用卡号,要求增设额外的安全层级。
自动测试:自动创建测试用例,让团队能够迅速生成单元、功能和集成测试的步骤。这将有助于应对应用程序中人工智能生成代码的激增。引入非技术用户来创建和维护这些测试,以实现自动端到端测试,而非仅仅依靠开发人员和传统 QA 人员。
API 测试:使用开放规范,为 API 创建 AI 增强测试方法,包括创建和维护 API 测试及合同。将这些 API 测试与开发人员工具无缝集成,以加速开发、降低成本,并通过持续的代码更改来维持当前测试。
更好的测试管理:人工智能能够助力智能决策、风险分析和优化测试过程。人工智能可以分析大量数据,提供有关测试覆盖范围、有效性和需要关注领域的见解。
虽然 GitHub Copilot 和其他 AI 编码助手承诺提高生产力,但也引发了严重的担忧,可能导致 DORA 指标难以管理。开发人员的生产力或许表面上有所提升,但背后的代价是什么?若不仔细管理,仔细检查和纠正人工智能生成代码所付出的隐性努力可能会掩盖最初的收益,甚至可能引发潜在的灾难。凭借为人工智能生成的代码做好准备的方法,组织必须重新评估其 DORA 指标,以更好地与人工智能生成的生产力相适配。通过设定正确的预期,团队有望达到生产力和效率的新高度。
Madhup Mishra 是 SmartBear 产品营销高级副总裁。Madhup 在 Hitachi Vantara、Volt Active Data、HPE SimpliVity、Dell 和 Dell-EMC 等公司拥有超过二十年的技术经验,在产品管理、销售工程和产品营销方面担任了多种角色。他对人工智能如何改变世界充满热忱。
参考链接:https://www.infoworld.com/article/3479652/github-copilot-productivity-boost-or-dora-metrics-disaster.html