Skip to main content
QUICK REVIEW

[论文解读] Combining STPA and BDD for Safety Analysis and Verification in Agile Development: A Controlled Experiment

Yang Wang, Stefan Wagner|arXiv (Cornell University)|Apr 5, 2018
Software Engineering Techniques and Practices参考文献 30被引用 3
一句话总结

本文提出将行为驱动开发(BDD)与系统理论过程分析(STPA)相结合,用于敏捷开发中安全关键系统(SCS)的安全验证。该方法利用BDD的场景化测试('Given-When-Then')来验证从STPA中导出的安全需求,相较于传统用户验收测试(UAT),在沟通有效性方面表现出显著提升,但在生产力、测试充分性或故障检测方面未发现显著差异。

ABSTRACT

Context: Agile development is in widespread use, even in safety-critical domains. Motivation: However, there is a lack of an ap- propriate safety analysis and verification method in agile development. Objective: In this paper, we investigate the use of Behavior Driven De- velopment (BDD) instead of standard User Acceptance Testing (UAT) for safety verification with System-Theoretic Process Analysis (STPA) for safety analysis in agile development. Method: We evaluate the effect of this combination in a controlled experiment with 44 students in terms of productivity, test thoroughness, fault detection effectiveness and com- munication effectiveness. Results: The results show that BDD is more effective for safety verification regarding the impact on communication effectiveness than standard UAT, whereas productivity, test thorough- ness and fault detection effectiveness show no statistically significant difference in our controlled experiment. Conclusion: The combination of BDD and STPA seems promising with an enhancement on communica- tion, but its impact needs more research.

研究动机与目标

  • 解决敏捷开发安全关键系统(SCS)中安全分析与验证方法整合不足的问题。
  • 探究BDD是否在敏捷环境中作为比传统UAT更有效的安全验证技术。
  • 评估将STPA用于安全分析与BDD用于安全验证相结合对关键开发指标的影响。
  • 探索BDD如何在迭代开发过程中提升安全需求相关沟通。
  • 评估BDD在系统理论原则指导下验证安全关键行为的可行性与有效性。

提出的方法

  • 在高层架构阶段应用STPA进行安全分析,无需详细或稳定系统设计即可导出安全需求。
  • 使用BDD的'Given-When-Then'模板以自然语言描述安全关键测试场景,聚焦于系统行为而非实现细节。
  • 以测试后置方式使用Java代码实现BDD测试用例,并与待开发系统关联。
  • 通过44名学生的受控实验,从生产力、测试充分性、故障检测有效性及沟通有效性四个维度比较BDD与UAT。
  • 通过与持续集成集成的自动化测试套件跟踪测试状态,支持实时反馈。
  • 通过调查问卷和性能指标收集并分析数据,评估BDD对沟通质量和验证质量的影响。

实验结果

研究问题

  • RQ1在敏捷开发中,使用BDD替代UAT是否能提升安全验证的沟通有效性?
  • RQ2在安全验证中使用BDD与UAT相比,生产力是否存在统计学上的显著差异?
  • RQ3BDD与UAT在测试充分性和故障检测有效性方面如何比较?
  • RQ4BDD在多大程度上支持在安全需求中早期发现功能缺口和边界情况?
  • RQ5BDD如何增强开发人员、业务分析师与安全利益相关者之间的双向可追溯性与共同理解?

主要发现

  • 与UAT相比,BDD在沟通有效性方面显著提升,24项沟通要素中有11项呈现统计学显著性。
  • BDD中的'Given-When-Then'格式提升了清晰度并减少了歧义,有助于更好地理解与记录安全需求。
  • 由于严格的命名规则与分层结构,BDD测试用例被感知为组织更佳、更易读且更易维护。
  • 开发人员在编写BDD场景时对安全需求参与度更高,从而更早识别出边界情况与功能缺口。
  • 业务分析师因BDD测试用例与代码的直接可追溯性以及通过自动化报告获得的实时验证状态,对其信心更高。
  • 在生产力、测试充分性或故障检测有效性方面,BDD与UAT之间未发现统计学显著差异,可能由于测试代码的简单性及手动变异分析所致。

更好的研究,从现在开始

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

无需绑定信用卡

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