从软件故障中学习:国家航天研究中心的案例研究
软件工程
2026-02-27 v3
摘要
软件故障可能带来严重后果,因此从故障中学习是软件工程的关键环节。虽然建议软件组织进行事后分析,但这些实践的有效性和采用程度差异很大。理解工程师如何收集、记录、分享和应用故障经验对于提高可靠性和防止故障复发至关重要。高可靠性组织 (HROs) 往往开发故障可能带来灾难性风险的软件系统,需要持续学习以确保可靠性。这些组织为审视从软件故障中学习的实践与挑战提供了宝贵环境。然而,我们缺乏关于从故障中学习的实践与挑战的深入行业视角。为填补这一空白,我们对国家航天研究中心的研究软件工程师进行了 10 次深度访谈。我们审视了他们如何从故障中学习:如何收集、记录、分享和应用经验教训。为评估可迁移性,我们还包括了来自 5 个其他 HROs 的额外访谈数据。我们的发现揭示了工程师在实践中如何从故障中学习。总结如下:(1) 故障学习是非正式的、临时的,且未系统地整合到软件开发生命周期 (SDLC) 中;(2) 由于缺乏结构化流程,重复故障持续存在;(3) 关键挑战,包括时间约束、人员流动导致知识流失和碎片化文档、流程执行不力,破坏了系统性学习。我们的发现加深了对软件工程师如何从故障中学习的理解,并为改进故障管理实践提供了指导。
引用
@article{arxiv.2509.06301,
title = {Learning From Software Failures: A Case Study at a National Space Research Center},
author = {Dharun Anandayuvaraj and Tanmay Singla and Zain Hammadeh and Andreas Lund and Alexandra Holloway and James C. Davis},
journal= {arXiv preprint arXiv:2509.06301},
year = {2026}
}
备注
Accepted at IEEE/ACM International Conference on Software Engineering (ICSE) 2026