软件思想家 Gerald Weinberg 曾说过,“如果建筑师按照程序员编写程序的方式建造建筑物,那么飞来的之一只啄木鸟就会摧毁整个文明”。
这句话告诉我们:之一,程序员编写的程序不是很靠谱;第二,软件测试是多么的重要。
软件测试独立
以前,软件行业没有软件测试的位置。后来,随着这个行业的发展,软件复杂度不断提升,分工越来越细,测试与相分离,软件测试逐渐成为独立岗位,企业也开始软件测试工程师。
以微软为例,由于软件质量问题引发多次事故,1984 年,微软在各个部门内建立独立的测试组,把测试组从部分离出来。
为什么建立独立的测试组?据《微软的秘密》一书介绍,测试之所以独立存在有三条理由:
之一,人员不可能编写出完美无缺的代码,程序经理不可能出完美无缺的说明书。第二,必须让某些人的工作独立于说明书和编写代码,以便对它们的质量能有一个公正的评价。第三,在过程中,当代码群尚未交织在一起时,及早发现并修正错误对于人员来说更节约成本和更容易,并且对提高产品的稳定性和顾客满意度更加有益。
软件测试的独立,意味着它的重要性大大提升。
软件测试确保软件产品的质量,实现软件成功交付,保证绝大部分用户或客户满意。可以说,软件测试对软件质量发挥着至关重要的作用。
软件测试行业的真实情况
当今,谈起软件测试,很多人都有一些印象,比如觉得测试“入门门槛低,没啥技术含量”、“对公司来说不重要”、“操作简单,工作枯燥”等等。虽然这些印象不一定完全准确,但或多或少反映了这个行业存在的一些情况。
一名 山西太原的者称,“公司赶上测试忙的时候,连产品和行政人员都会参与进来,作为初级承担部分工作”。
另一位 上海的资深者表示,“我们只能性测试,即手动点按钮,没有自动化测试和性能测试。像 UI 自动化测试实施起来很难,因为 UI 一旦发生变化,你就要改脚本,并且还要花费很多时间和精力维护脚本。”
还有一位 的者说:“公司测试部门人不少,与业务有很多隔阂,公司的很多测试主要针对历史生产系统。有些系统变更,我们会与测试打交道,如果出了问题,大家一起背锅。我们团队有四五个,一个测试,测试水平低,纯手工测试。”
即使同一个行业,不同企业的情况也是相差巨大。
以 Google 为代表的互联 巨头公司正逐渐推行“去 QE,自己测试”的全新。
大公司则从原来的“自动化测试为辅”变成“以自动化测试为主”,而中小企业使用最多的还是手工测试。但是,手工测试问题多,不仅效率低,而且效果不理想。
在这个行业,我们观察到:一方面,自动化测试得到越来越多的重视,企业对的要求已经从低端的功能性测试转变为更高级的自动化测试。另一方面,非功能性测试的需求不断增加,包括性能测试、安全测试等。此外,软件行业盛行的 DevOps 理念强调整个、测试和运维的连贯性。
有直言,“个人觉得,从初期的黑盒测试到后来要求灰盒和白盒测试,测试开始重视性能测试、安全测试。同时,UI 和接口自动化测试已经是常态。并且,软件对、测试的能力等方面都有挺高的要求。”
从传统的到互联 的
为什么会有这些变化?因为软件测试现今所处的行业已经发生改变——从传统演变到互联 。
何为传统?软件最早主要供企业内部使用,只要它具备一定的功能,能用就行,所以并未对用户体验有太多 。
据飞算云智副董事长、总裁陈定玮解释,“以前,软件主要是功能的实现,其环境不是很复杂,既不会有很大的高并发,也不用玩转大量数据。因此,只要满足功能需求就行。”
而互联 在于,互联 发展起来后,软件变得越来越重要,甚至软件定义一切。并且,越来越多的软件开始向 C 端拓展,它要面对大量用户,导致容易出现高并发、安全等问题。因此,企业对软件质量的要求就变得非常高。
这就倒逼软件要改变,并且,从、测试到运维都应有相应的变化。然而,事实上,这一切并没有发生很大变化。
软件现在的生产依然跟传统的一样,企业要大量工程师去软件,完成后,由进行测试。某种意义上,软件质量主要靠有经验的工程师予以保障。在陈定玮看来,“这就变得不可控制,因为每个人对每个东西的理解不一样。”
更重要的是,当今,越来越多的企业开始引入敏捷或 DevOps ,软件交付周期越来越短。并且,随着大数据、AI、云原生等技术的应用,软件复杂度不断提升。相应地,企业对的要求也越来越高。
随之而来的问题是企业难,因为企业无法招到很多有丰富经验的工程师。即使招到资深技术人员,一旦离职,企业可能又面临挑战,一方面,交接工作难;另一方面,资深技术人员的工作经验无法传承给企业,知识无法沉淀到企业。
“以前,我们公司流传过:多久,测试就要多久。如果三个月,那么测试就要三个月。这样,半年就过去了。因此,整个成本非常高。并且,产品、和的思维和视角不同,沟通难度不小,最终搞得大家怨声载道。”
关键是大家对需求的理解不同。研发人员对需求有一种理解,而测试对需求又是另一种理解。这就导致产品经理、研发和测试三方常常‘打架’。
事实上,最头疼的事就是“需求不明确,或者临时改需求,以及改了需求,只同步人员,不告知测试同学”。
软件的“福音”:全自动测试
能解决上述问题的工具可能就是全自动测试。据了解,它是飞算 SoFlu 全自动软件工程的一个组成部分,飞算 SoFlu 全自动软件工程是于 2023 年发布的新一代 JAVA 工具,截至目前已为包括、金融、制造、零售等在内的八大行业的上百家机构提供了技术服务,被数千位专业人士使用体验。
令人印象深刻的是该为一家大型国有企业的“百万人使用级别的电商”项目,项目涵盖商品推荐、下单、秒杀等众多单元。此前,该企业组建的数十人团队花费了一年完成,上线后却在功能性、稳定性、安全性等方面问题不断,且无法在短期内修复。在使用飞算 SoFlu 全自动软件工程后,该企业仅投入 6 位研发人员 45 天就高效完成、测试、联调、上线全流程任务。
飞算全自动测试
此次发布的全自动测试与全自动和全自动运维共同组成飞算 SoFlu 全自动软件工程,实现了软件工程、测试、运维全流程自动化,且自动测试随联动,测试一键关联,自动生成测例完成软件测试,1 人就即可完成、测试整套流程。
测试中 “关联项目”
实现、测试一键协同
利用全自动测试,一方面,软件质量可以通过工具、流程和管理予以保障,而不再依靠有丰富经验的软件工程师。另一方面,可以进一步降低沟通成本,提升沟通效率。
以工具为核心,制订好管理流程,利用科学的管理,让操作工具时有规可循,按照步骤来,就不会犯错误,从而降低整个的管理风险和沟通风险。
并且,它还能解决企业难问题。全自动测试降低了行业门槛,不仅普通能操作,而且连大学应届毕业生都能上手。这样,企业招人相对更加容易。
依托的测例自动生成特性,用户通过录制工具把操作过程记录下来,自动识别相关接口并创建相应的测例场景。如此,无需编写脚本。
此外,全自动测试具备几大特性:一是测试生命周期管理。它提供测例管理、测例评审、测试计划和测试报告生成等测试生命周期管理相关功能。二是测试数据管理。全自动测试基于测试脚本与测试数据分离的思路,方便研发测试协同、方便自动化测试中的测试数据使用,支持 UI、接口等自动化工具中快速可重复地使用。三是精准回归测试。它在项目测试时,可以自动识别所有变动的接口,自动查找接口关联的所有测例,进行精准回归测试。
一名软件称,“我最期待的就是精准回归测试。如果能实现精准回归测试,那么在很大程度上,可以提高我的工作效率,节约时间。”
不管什么功能或特性,其目的是让软件测试变得更简单。陈定玮总结出其五个价值点:之一,统一测试规范;第二,可以管控测试流程,无需人操作,用工具、流程和管理来执行;第三,实现测试自动化;第四,可以量化测试成本;第五,可以建立测试的用例库,实现知识和经验的沉淀。他说:“所有的一切回归到一个点就是降本增效。除了满足所有测试的场景和功能外,整个产品的核心点在于做整个的管理,建立统一的标准。”
当然,仅仅解决测试问题还不够,“不管是测试,还是运维,所有的一切问题都源自。因为是本,是源头,所以要解决源头问题”。
陈定玮表示,“我们先推出,再推出测试。只有先把动作规范化,后面的测试才真正有用。真正的核心点是。因此,在过程中发现问题和解决问题,把动作前置,比如在中埋入与运维相关的技术,像链路追踪、服务发现等,在时就介入,而非到运维环境再去发现和解决问题。”
某种意义上,SoFlu 全自动软件工程的核心是自动化。它提供基于接口设计的可视化配置能力,通过组件可视化窗口界面以拖拽的方式接口。并且门槛低,配置灵活,普通人员也能上手。
此外,提供大量组件库,比如 SQL 组件、事务组件、上传组件、组件等。支持用户根据自身需求自定义组件,丰富组件库,提高效率。
目前,多家企业在使用 SoFlu 全自动软件工程。
写在最后
从众多企业的多个项目反馈上可以看出,SoFlu 全自动软件工程有两大价值。首先,它可以降低准入门槛。其次,让技术的事情变简单,对人的依赖性更小,从而降低人力成本和沟通成本。基于该,企业可以快速一个东西,极大提升效率。针对业务的快速变化和提出的新需求,软件可以快速迭代,降低试错成本,业务就能大胆创新。“以前,人员要用近一年才能出的软件或系统,现在,用这个可能只花两个月就能搞定”。并且,它不需要非常资深的者,普通者在经过培训后也能上手。“我们现在非常重视顶层设计,设计的越好,对需求的理解越到位,过程就越好。同时,出现 bug 的几率越低”。
以上就是与有没有测水平的软件相关内容,是关于软件的分享。看完测量水平用什么软件后,希望这对大家有所帮助!