天天看点

你必须知道5个软件测试发展阶段

软件测试是伴随着软件开发的发展而发展的。从软件测试出现到现在,软件测试一共经历了五个阶段:

以调试为主的软件测试

在20世纪50年代,随着计算机的诞生,利用计算机完成复杂、快速计算的计算机编程也随之出现。这时的需求和程序本身也远远没有现在这么复杂多变,但是已经有人在完成编程之后开始考虑“怎么证明程序满足了需求?”的问题。这时的测试还没有明确的概念,主要是以调试为主,验证程序是否满足了需求。

以证明为主的软件测试

很快在1957年,Charles Baker在《软件测试发展》一书中就提出测试的概念,并且对调试和测试进行了区分:

1)调试(Debug),确保程序做了程序员想让它做的事情。

2)测试(Testing),确保程序解决了它该解决的问题。

这时的计算机软件数量、成本和复杂性都大幅度提升,测试的重要性也大大增强,测试的目不仅仅是验证,而且要确认软件是满足需求的,也就是我们常说的“做了正确的事情”。

以破坏为主的软件测试

1979年,C.J.Myers在《软件测试之艺术》一书中给出了软件测试的经典定义:

测试是为发现错误而执行程序的过程。

这个定义说明测试不仅要证明软件做了正确的事情,也要保证它没做不该做的事情。

所以好的测试用例是发现迄今为止尚未发现的错误的测试用例;成功的测试是发现了至今为止尚未发现的错误的测试。

这个阶段的测试的目的主要是找出软件中潜在的错误,所以说它是以破坏为主。这也使得软件测试和软件开发独立开来,测试需要更为专业的人员进行,毕竟开发人员在心理上总是不愿意给自己开发的软件找错。

以评估为主的软件测试

在1983年,出现了V&V(验证和确认)理论,测试被应用在整个软件生命周期中。同时IEEE提出的软件测试新的定义:

“使用人工或自动手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别”。

软件测试以及测试工具在这个时期得到了快速的发展。

以预防为主的软件测试

以预防为主是当下软件测试的主流思想之一。

随着敏捷开发被提出以来,测试驱动开发、自动化的持续集成和测试等技术的应用,都体现出人们不再满足与编码后对程序的验证和确认,而是事先就通过测试来保证编写的代码的正确性。

从以调试为主到以预防为主,软件测试已经发生了翻天覆地的变化。每每想到现在一些实施GJB5000初级的组织的内部测试竟然还是以调试为主,不仅让人感慨GJB5000实施之路仍然任重道远。

这正是:

  • 调试进化到预防,测试发展大变样
  • 如若不能去发展,质量必然受影响

最后下面是我整理出来的一份软件测试工程师发展方向知识架构体系图。

你必须知道5个软件测试发展阶段

希望大家能在这个成长过程中收益良多。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,古人说的好“不积跬步,无以至千里。”等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。

由于CSDN上传图片大小有限,有需要的朋友可以关注我的公众号:程序员二黑,回复1,即可获取原图。

下面是一份配套的软件测试资源包:

你必须知道5个软件测试发展阶段

上面是一些配套资源,这些资源对于软件测试的的朋友来说应该是最全面最完整的备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。关注我的微信公众号:程序员二黑,即可免费获取!

最困难的时候,也就是我们离成功不远的时候!如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们的群:785128166 大家一起讨论交流学习。

如果您觉得文章还不错,请 点赞、分享、在看、收藏 一下,因为这将是我持续输出更多优质文章的最强动力!

精彩推荐

在职阿里6年,一个29岁女软件测试工程师的心声

拒绝B站邀约,从月薪3k到年薪47W,我的经验值得每一个测试人借鉴

公司新来的阿里p8,看了我做的APP和接口测试,甩给了我这份文档