TAP 文章系列-12 | 小步快跑的代码扫描,实现质量左移

是软件质量的基础,测试左移为应用准时上线的关键

在以往的日子,一个应用软件项目开发工作,相关人员无不将注意力放在范畴、预算与项目周期三个面向。而「墨菲定律」却如影随形,不断发威;我们总是无法避免的如「人月神话」书中所描述的一样陷入困境。

通常,需求访谈消耗掉大量时间,大大的压缩了开发所需要的时间,即使系统设计被清楚的讨论与制订,开发者依旧被项目周期压得喘不过气来,所以测试是最常被省略的部分;一直到应用要上生产环境时,才发现应用程序没有完全实现原先设计目标,没办法满足客户要求,甚至源代码的编写或是使用的框架,都具有安全的风险,最后导致整个项目延期。

即便最终,系统在跌跌撞撞的开发过程后上线,紧接的一连串 Bug 修正、功能增加与修改,都是是项目规划初期应该想到,却又没想到的部分。

一个系统经过多年的使用与维护,历经多代轮替的开发者,早已偏离原来的设计;再加上没有良好的架构设计,也没有从项目开始时就纳入的测试,后续的开发者没有充足的信心与多余的时间进行重构,以至于整个系统的维护工作日趋沉重,也让迭代速度不断下降,整个系统也越加混乱,与热力学的熵增定律:「每个系统会从有序走向无序,日趋混乱,且不可逆」,不谋而合。

相信许多具有应用开发与运维实务经验的读者,每次在系统上线时总是有种惶惶不安、惊涛骇浪的刺激感。

Working Effectively with Legacy Code  的作者 Michael C. Feathers 在书中定义了遗留系统即为没有测试覆盖(保护)的系统,也是有待改善的系统,可见测试的重要性,却是传统应用开发所欠缺的部分。

前述的传统瀑布式项目管理方式,确实弊病丛生,因此敏捷开发思维横空出世,提倡测试先行、增量开发与及早部署;这个概念改变了这个世界开发软件的方式。

VMware Tanzu Labs (原 Pivotal Labs)的技术专家 Mark Parker,曾经于2016年的 SpringOne 活动上,以 “TDD: The Bad Parts”为题目的演讲中提出,如何让应用程序可以高效开发、持续且即时部署的关键,即为测试。

但是,现在多半开发在个阶段测试工作所花费的时间与精力,通常如下图左边的倒三角形,单元测试花费很少时间,系统整合测试与验收测试则需要更多的工作量才可完成;其中原因不难理解,一旦系统进入 SIT 或是 UAT 的测试阶段,其需要与其他系统对接,所以在问题查找需要更多时间,且功能修正过程中则需要请其他周边系统与团队配合,才能够重新部署测试。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值