软件测试的发展阶段--一只飞蛾引起的行业巨变

说明:本文章内容纯属虚构,如有雷同,纯属巧合!

 

         20世纪上叶的某一天,我们的超级美女程序猿“葛丽丝·霍波”在超级计算机的大house秘密的进行一项最为军事系统开发调试时,发现程序未能按照自己的设想给出预期的结果,经过了辛苦的排查,发现有只飞蛾被夹扁在继电器触点中间,这只飞蛾就是引起后续行业巨变的那一只“飞蛾”。从此BUG诞生,预示着软件测试大潮的到来。

         在美丽的“葛丽丝·霍波”发现第一只飞蛾之后,为了避免另外一只飞蛾进入到计算机内部进行约会,后面再程序正式的交付之后,开始了程序的调试工作,这就是软件测试的前身。这个时期软件测试是为了证明程序是正确的而存在。

         1972年在北卡罗来纳大学举行了首届软件测试正式会议。软件测试从此刻起正式作为一项工作而独立出来。而针对后续的发展,这里就不在罗列,如有兴趣的朋友,可以看下另外的一篇文章。关于软件测试历程的说明。

         从软件测试的发展历程和近几年的发展趋势,可以看看到软件测试正在向系统化,统一化,智能化方向去发现,个人根据个人对软件测试行业的理解(参考其他资料),将软件测试的发展历程归纳为以下五个阶段:个人英雄阶段、团队配合阶段、过程成熟度阶段、智能化测试阶段、以及第五个阶段“无”。

个人英雄阶段

在软件工程之前,软件规模较小,开发&测试人员独立完成软件的编写和测试工作,此时测试人员可能就是直接有开发人员担任,此时主要已调试+运行测试为主,手工测试阶段,此时的测试过程较为混乱,往往是开发完成一个软件后,交给测试人员进行测试,测试拿到软件后,根据自己的理解和个人的工作经验对软件进行检查,而最终的目标就是发现缺陷,所以这个时期的软件测试的质量一般是看个人发现的缺陷数,但是对软件的整体质量是没有办法进行衡量的。

团队配合

随着软件工程的提出和软件系统的复杂度的提升,软件内部逻辑越来越复杂,软件代码行也程指数级增加,这个时候如果再有程序员兼职进行软件测试,明显会出现纰漏,所以这个阶段开始,软件测试由专业的测试人员来担任,测试人员需要更强的罗辑思维能力,更敏锐的洞察力,更深的行业知识,更广的业务知识。从这里开始,软件测试正式作为一个单独的行业从软件工程里面区分开来,软件测试也随着各种实践而发扬光大。

随着系统复杂度的提升,每个人对系统的质量都没有十足的把握,而且缺陷一定会存在系统中,所以这个阶段的测试,主要是证实软件做了该作的事情,不做不该做的事情,给团队以信心。而随着团队的扩大,测试也成立独立的团队,这个时候,如何面对复杂的系统,保障系统的质量,而成为团队难题,而不在是某个人的事情,这个时候,测试的问题上升到了团队问题,为了解决该问题,从软件工程出发,按照工程化的基本思想,按照行业CMMI标准进行分工协作,同时为了更好的节约人力而开始使用自动化,采用自动化回归方式,并将各个过程中的数据进行记录和分析,尝试使用数据的方式对软件系统进行评估。目前绝大多数的公司处于该阶段。

成熟度全过程控制阶段

该阶段是团队配合阶段后续的继续发展的阶段,是项目工程更深入发展的阶段,也是目前的阶段一部分测试前言所在的阶段,该阶段软件工程更是爆炸式的增加,各种第三方组件、第三方系统的集成,让系统的复杂度更一步提升,在自有软件还为清楚的条件下,又加入第三方系统或软件,这种情况下,复杂度可想而知,对质量的要求,对测试人员的要求更高。

该阶段为了更好的控制,而主导全过程的控制,而且根据测试的特点,使用到特定的测试过程管理规范,使用现有的TMMi/TPI体系或者后续更适合的体系进行全面的过程管理和控制,试图通过过程的全管理,讲所有的问题都扼杀在摇篮中。为了达到该目的,这个阶段,更为专业的工具随即而出,有代码扫描工具,有性能、安全测试工具等各种工具,测试通过分析这些数据收集的数据,通过分析,试图使用各个工具的返回数据去度量软件的质量,这个阶段的软件质量真的可以度量吗?不尽然。

智慧测试阶段

这个阶段目前是少数顶尖的公司正在努力的方向,这个阶段对原有的测试的思维是一个大大的跨越,这个阶段主要采用大数据的思维将软件本身、人本身、过程进行多维度的数据整合,做到真正的数据量化一款软件或者产品的质量,软件质量在这个阶段才是能够真正使用数据进行量化。

这个阶段数据收集和分析将是一个重点,而为了获得对应的数据,需要团队制度、过程的规范、行业的数据透明化等相关的行业制度或者管理制度进行相配套的建设。比如我使用java,基于Netty服务框架进行开发,这个产品的质量就直接和你使用的Netty质量有直接关系,同时也你这个实地的开发团队的每个人的开发水平,和这个团队的架构师水平,这个团队的管理模式、这个团队使用的java版本都有直接的关系;在智慧测试阶段所需要做的就是Netty开发服务组件时,其他团队遇到的问题和现有的问题,开人员的技术水平等众多数据,通过这些数据和团队管理配合起来,量化产品质量。

在这个过程,持续交付将成为基础,全面自动化测试将作为基层测试手段进行测试布局,所有的测试相关的工作已经可以使用工具完成,这个阶段的测试人员主要是针对问题进行分析、编写测试工具或者脚本,结果模型优化。

无-测试干掉测试

通过上述的4个阶段的发展之后,可以看到在最后一个阶段时,测试将主要的精力放在了工具编写、模型训练方面,这之后,还有“测试”这个行业吗?

测试的最终目标就是测试干掉“测试”,而“测试”将永生!

 

转载请注明来源!

时间: 2024-10-11 12:44:35

软件测试的发展阶段--一只飞蛾引起的行业巨变的相关文章

软件测试的发展阶段

20世纪上叶的某一天,我们的超级美女程序猿"葛丽丝·霍波"在超级计算机的大house秘密的进行一项最为军事系统开发调试时,发现程序未能按照自己的设想给出预期的结果,经过了辛苦的排查,发现有只飞蛾被夹扁在继电器触点中间,这只飞蛾就是引起后续行业巨变的那一只"飞蛾".从此BUG诞生,预示着软件测试大潮的到来. 在美丽的"葛丽丝·霍波"发现第一只飞蛾之后,为了避免另外一只飞蛾进入到计算机内部进行约会,后面再程序正式的交付之后,开始了程序的调试工作,这就

构建之法-软件测试+质量保障+稳定和发布阶段+IT行业的创新+人、绩效和职业道德

第十三章(软件测试) 第十四章(质量保障) 第十五章(稳定和发布阶段) 第十六章(IT行业的创新) 第十七章(人.绩效和职业道德)

近年来,手机app的热起,越来越多的公司企业也引入或者投资到android和ios的app行业当中,继而产生手机软件测试的蓬勃发展。而作为基础行业的web测试,和手机app测试又有什么的相同点与不同之处呢?

1.相同点 不管是传统行业的web测试,还是新兴的手机app测试,都离不开测试的基础知识,即是不管怎么变,测试的原理依然会融入在这两者当中. 1)设计测试用例时,依然都是依据边界值分析法.等价类划分等: 2)多数采用黑盒的测试方法,来验证业务功能是否得到正确的应用: 3)需要检查界面的布局.风格和按钮等是否简洁美观.是否统一等: 4)测试页面载入和翻页的速度.登录时长.内存是否溢出等: 5)测试应用系统的稳定性等. 2.不同点 相对于web测试,手机软件测试,除了要考虑基本的功能测试.性能等,还

软件测试——bug为何物

一.什么是bug 学过编程的人都听说过bug这个词,可是bug到底指什么呢?系统缺陷?错误?还是漏洞?可是知道点英语的就会说,bug是昆虫的意思,然而昆虫和怎么会和计算机扯上关系的呢? 事情是这样的.从电脑诞生之日起,就有了电脑BUG.第一个有记载的bug是美国海军的编程员,编译器的发明者格蕾斯·哈珀(Grace Hopper)发现的.哈珀后来成了美国海军的一个将军,领导了著名计算机语言Cobol的开发. 1945年9月9日,下午三点.哈珀中尉正领着她的小组构造一个称为"马克二型"的计

软件测试基础概念总结

一.软件测试概述 (一)什么是测试,与测试相关常见活动有哪些? 测试:与科学方法中的实验类似,是对事物状态.功能的测量和观察.通过将测量结果与已知状态或理论假设相比较,测试者得以对事物状态.功能做出判断. 质检:顾名思义是质量检验,而质量是一个企业生存的根本,没有质量,企业只是空中楼阁! 解读:药品.食品等都有专门的质检员,我国有专门的质检机构--质检总局 QC:Quality Control['kwɑ?l?ti? k?n'tro?l],即质量控制.质量管理(检测产品质量的方法),在ISO900

软件测试从零开始——走进软件测试[转]

背景1:大学刚毕业或者未毕业,觉得自己的coding能力一般或者对开发的工作不感兴趣.听说软件测试也不错,并且入门比开发要低,于是寻思着先找一份软件测试的工作. 背景2:本来在其他行业工作,但是发现对该工作没有兴趣或者觉得没有前途.并且听说软件测试很火,并且入门比开发要低,于是寻思着先找一份软件测试的工作. 那么这个行业是不是跟大家想像的一样呢?下面将为大家详细介绍下. 一.认识软件测试 当然,进入这个行业前需要先了解下这个行业的整个发展方向和趋势,这样才能够更好的评估自己是否适合进入这个行业,

Testner创始人sea关于软件测试人才和软件测试培训的访谈

问: sea,记得2017年8月20日在深圳朗山酒店举办的"ivvi时尚手机杯"-Testner第三届全球软件测试高峰论坛在业界引起了非常大的反响,作为一个非赢利为目的的行业组织,投入这么大举办这么大型的活动,是为了宣传自己还是有其他原因? sea: 其实Testner测试圈是非盈利的,是交流软件测试与结交测试朋友的实名制公益平台.Testner团队成员由国内软件测试专家.测试经理.测试工程师组成,为响应国家互联网+号召, 规范软件测试行业, 培养更多软件测试精英,提升软件质量振兴民族

软件测试发展方向的一些想法

自17年初,软件测试这个被称为IT界的'传统行业',像一只睡狮,突然开始有苏醒的迹象.或许现在依旧有很多业内的朋友认为软件测试是一件很low的行业,以北上广深为例,现在的软件测试逐渐规范化,测试不单单是过去的"点点点",沉浸在过去的,认为测试是十分简答的朋友,也必将像Android/IOS潮流.JAVA火了,大数据/AI兴起时,在外围观望,等待快要成熟的时候挤进市场的朋友一样,和"机遇"失之交臂. 这三年,纵观国内互联网行业发展,开发,运维,测试,管理等等,很多企业

软件测试自学指导手册

近来,软件测试行业发展迅速,企业越来越重视测试了.越来越多的人加入了测试大军中,很多人也想通过自学来学习软件测试技术加入这个行业,但是现在软件测试的书籍越来越多,也良莠不齐,而且软件测试涉及的技术也越来越多.本次将指导童鞋如何进行自学,并大家提供一些比较优秀的书籍,并给出学习的顺序. 一.软件测试基础知识 要想进入测试这个行业,就必须要了解什么是软件测试,该如何测试? 这部分的学习目标:掌握软件测试的基本概念.软件测试的流程,并能熟练的应用常见的用例设计方法来设计测试用例.掌握常见的测试方法和类