侧边栏壁纸
  • 累计撰写 32 篇文章
  • 累计创建 55 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

软件测试在变化

Testerfans
2022-06-07 / 0 评论 / 28 点赞 / 909 阅读 / 1,420 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-08-22,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前言

软件测试由Glenford J Myers在1979 《Art of Software Testing(软件测试艺术)》一书中明确将调试和测试进行了区分,并给出了软件测试的经典定义:测试是为发现错误而执行程序的过程。至今《软件测试艺术》已经更新到了第三版。从软件测试活动的出现,到如今软件测试已经经过了60多年的发展,伴随互联网的快速发展和新的软件开发方法出现,近10年软件测试发生了翻天覆地的变化。

软件测试发展史

1957年之前——调试为主(Debugging Oriented)

20世纪50年代,计算机刚诞生不久,只有科学家级别的人才会去编程,需求和程序本身也远远没有现在这么复杂多变,相当于开发人员一人承担需求分析,设计,开发,测试等所有工作,当然也不会有人去区分调试和测试。

1957–1978——证明为主(Demonstration Oriented)

1957年,Charles Baker在他的一本书中对调试和测试进行了区分Debug和Testing:

  • 调试(Debug):确保程序做了程序员想它做的事情。
  • 测试(Testing):确保程序解决了它该解决的问题。

1979–1982——破坏为主(Destruction Oriented)

1979年,《软件测试的艺术》 (The Art of Software Testing)第一版问世,这本书是测试界的经典之作。书中给出了软件测试的经典定义: 测试是为发现错误而执行程序的过程。

1983–1987——评估为主(Evaluation Oriented)

1983年,美国国家标准局(National Bureau of Standards)发布“Guideline for Lifecycle Validation, Verification and Testing of Computer Software”,也就是我们常说的VV&T。VV&T提出了测试界很有名的两个名词:验证(Verification)和确认(Validation) 人们提出了在软件生命周期中使用分析,评审,测试来评估产品的理论。软件测试工程在这个时期得到了快速的发展。

1988–至今——预防为主(Prevention Oriented)

预防为主是当下软件测试的主流思想之一。STEP(Systematic Test and Evaluation Process)是最早的一个以预防为主的生命周期模型,STEP认为测试与开发是并行的,整个测试的生命周期也是由计划,分析,设计,开发,执行和维护组成,也就是说,测试不是在编码完成后才开始介入,而是贯穿于整个软件生命周期。我们都知道,没有100%完美的软件,零缺陷是不可能的,所以我们要做的是:尽量早的介入,尽量早的发现这些明显的或隐藏的bug,发现得越早,修复起来的成本越低,产生的风险也越小。

软件测试在变化

我们作为测试工程师经常接触到的一些软件开发模型包括瀑布开发、V模型开发、敏捷开发和DevOps开发运维。软件开发管理方法主要有ISO9000系列、CMMI和敏捷项目管理相关内容,从时间点上看很多方法都是近30-40年才发展起来的,并且最新发布的CMMI V2.0也加入了敏捷的内容。

  • 1970年瀑布开发模型

  • 1987年CMMI V1.0

  • 1987年ISO 9000

  • 1990年V开发模型

  • 1995年Scrum正式被推出

  • 2001年敏捷宣言

  • 2009年DevOps

  • 2018年CMMI V2.0

软件测试行业有一个被熟知模型就是TMMi(测试成熟度模型集成),主要指导组织对测试过程进行持续改进,从而支持产品质量的改进。在TMMi-基金会官网的资料库内围绕CMMI、Agile、DevOps方法提供了一些实践或者说一套方法,敏捷和DevOps已经成为主流趋势,伴随ML/AI的快速发展,人工智能在软件测试中的应用呈现增长趋势。结合我们最近几年做测试工作的感受,软件发布的频率越来越快、质量要求越来越高、测试要掌握的技能越来越多,雇主对测试的能力要求越来越多维。言而总之,就是软件测试在快速的发生变化,市场对软件测试工程师的能力需求也在发生着变化。

总结

「变化」 才是当今真正不变的主旋律,软件测试行业也是如此。伴随着互联网时代的发展,软件测试人员激增,软件测试培训、软件测试书籍如雨后春笋般涌现,测试工作也被逐步细分成不同领域。新的软件开发模式和管理方法又不断促进新的测试方法、测试工具的出现。

在这个失业率激增、竞争压力加剧、雇主对候选人期望持续提高的大背景下,我们作为测试工程师如何能在行业内获得核心竞争力并持续输出价值,又能在获得竞争优势的同时能持续提升,这是一个值得深入深思的话题。

28

评论区