软件工程原则与方法论
软件工程Kent Beck 创立的敏捷方法,以测试驱动、结对编程、持续集成、小步发布等工程实践著称。
软件工程向已延期的软件项目增加人手只会让它更晚完成——出自《人月神话》的经典项目管理定律。
软件工程将开发阶段与测试阶段一一对应的软件生命周期模型,形如字母 V,强调验证与确认贯穿全程。
软件工程边学习、边设计、边执行的非脚本化测试方式,依靠测试者的经验与思维即时发现缺陷。
软件工程把输入域划分为若干等价类、每类只取代表值测试的黑盒用例设计方法,用最少用例覆盖最多场景。
软件工程在代码修改后重新执行既有测试,确认原有功能未被破坏的测试活动,是自动化测试的核心价值所在。
软件工程向代码注入微小人工缺陷(变异体),检验现有测试能否发现,以此衡量测试用例的真实有效性。
软件工程把测试活动提前到开发生命周期早期的策略,缺陷越早发现修复成本越低,是 CI 文化的基石。
软件工程敏捷团队常用的协作估算方法:成员同时亮出斐波那契点数牌,分歧者陈述理由后重估直至收敛。
软件工程对新构建的软件执行的一组快速基本检查,验证核心功能可用,决定是否值得进行更深入测试。
软件工程将丰田生产方式的精益思想移植到软件领域的方法论,核心是消除浪费、快速交付、延迟决策。
软件工程以时间为横轴、剩余工作量为纵轴的下降曲线图,敏捷团队用它直观跟踪迭代或发布的进度。
软件工程讽刺性工程黑话,指选型时优先考虑技术能否写进简历而非是否适合项目,缩写RDD,是过度设计的常见诱因。
软件工程Barry Boehm 提出的风险驱动软件过程模型,以迭代螺旋推进,每圈包含目标设定、风险分析、开发与评审。
软件工程「发送要保守,接收要宽容」的互联网协议设计原则,又称鲁棒性原则。
先写测试再写实现的开发方法,以红绿重构循环驱动设计。
软件工程将安全实践嵌入 DevOps 全流程的方法论,主张安全左移,让安全成为流水线的自动化环节。
按顺序阶段线性推进的传统软件开发过程模型。
以业务语言描述系统行为来驱动开发,促进团队沟通。
软件工程由最终用户或客户在类生产环境中按真实业务场景验证软件是否满足需求的最后测试阶段。