生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

简单、易用、易学,这个全自动测试平台真香

  • 2021-11-02
  • 本文字数:4063 字

    阅读完需:约 13 分钟

简单、易用、易学,这个全自动测试平台真香

软件思想家 Gerald Weinberg 曾说过,“如果建筑师按照程序员编写程序的方式建造建筑物,那么飞来的第一只啄木鸟就会摧毁整个文明”。


这句话告诉我们:第一,程序员编写的程序不是很靠谱;第二,软件测试是多么的重要。

软件测试独立


以前,软件行业没有软件测试的位置。后来,随着这个行业的发展,软件复杂度不断提升,分工越来越细,测试与开发相分离,软件测试逐渐成为独立岗位,企业也开始招聘软件测试工程师。


以微软为例,由于软件质量问题引发多次事故,1984 年,微软在各个部门内建立独立的测试组,把测试组从开发部门中分离出来。


为什么建立独立的测试组?据《微软的秘密》一书介绍,测试之所以独立存在有三条理由:


  • 第一,开发人员不可能编写出完美无缺的代码,程序经理不可能制作出完美无缺的说明书。

  • 第二,必须让某些人的工作独立于制作说明书和编写代码,以便对它们的质量能有一个公正的评价。

  • 第三,在开发过程中,当代码群尚未交织在一起时,及早发现并修正错误对于开发人员来说更节约成本和更容易,并且对提高产品的稳定性和顾客满意度更加有益。


软件测试的独立,意味着它的重要性大大提升。


软件测试确保软件产品的质量,实现软件成功交付,保证绝大部分用户或客户满意。可以说,软件测试对软件质量发挥着至关重要的作用。

软件测试行业的真实情况


当今,谈起软件测试,很多人都有一些印象,比如觉得测试“入门门槛低,没啥技术含量”、“对公司来说不重要”、“操作简单,工作枯燥”等等。虽然这些印象不一定完全准确,但或多或少反映了这个行业存在的一些情况。


一名来自山西太原的开发者称,“公司赶上测试忙的时候,连产品和行政人员都会参与进来,作为初级测试人员承担部分工作”。


另一位来自上海的资深开发者表示,“我们只做功能性测试,即手动点按钮,没有自动化测试和性能测试。像 UI 自动化测试实施起来很难,因为 UI 一旦发生变化,你就要改脚本,并且还要花费很多时间和精力维护脚本。”


还有一位来自北京的开发者说:“公司测试部门人不少,与业务有很多隔阂,公司的很多测试主要针对历史生产系统。有些系统变更,我们会与测试打交道,如果出了问题,大家一起背锅。我们团队有四五个开发,一个测试,测试水平低,纯手工测试。”


即使同一个行业,不同企业的情况也是相差巨大。


以 Google 为代表的互联网巨头公司正逐渐推行“去 QE,开发自己测试”的全新模式。


大公司则从原来的“自动化测试为辅”变成“以自动化测试为主”,而中小企业使用最多的还是手工测试。但是,手工测试问题多,不仅效率低,而且效果不理想。


在这个行业,我们观察到:一方面,自动化测试得到越来越多的重视,企业对测试人员的要求已经从低端的功能性测试转变为更高级的自动化测试。另一方面,非功能性测试的需求不断增加,包括性能测试、安全测试等。此外,软件行业盛行的 DevOps 理念强调整个开发、测试和运维的连贯性。


有测试人员直言,“个人觉得,从初期的黑盒测试到后来要求灰盒和白盒测试,测试开始重视性能测试、安全测试。同时,UI 和接口自动化测试已经是常态。并且,软件对测试人员、测试平台的开发能力等方面都有挺高的要求。”

从传统的模式到互联网的模式


为什么会有这些变化?因为软件测试现今所处的行业已经发生改变——从传统模式演变到互联网模式。


何为传统模式?软件最早主要供企业内部使用,只要它具备一定的功能,能用就行,所以并未对用户体验有太多关注。


据飞算云智副董事长、总裁陈定玮解释,“以前,软件主要是功能的实现,其环境不是很复杂,既不会有很大的高并发,也不用玩转大量数据。因此,只要满足功能需求就行。”


而互联网模式在于,互联网发展起来后,软件变得越来越重要,甚至软件定义一切。并且,越来越多的软件开始向 C 端拓展,它要面对大量用户,导致容易出现高并发、安全等问题。因此,企业对软件质量的要求就变得非常高。


这就倒逼软件要改变,并且,从开发、测试到运维都应有相应的变化。然而,事实上,这一切并没有发生很大变化。


软件现在的生产依然跟传统的模式一样,企业要招聘大量工程师去开发软件,开发完成后,由测试人员进行测试。某种意义上,软件质量主要靠有经验的工程师予以保障。在陈定玮看来,“这就变得不可控制,因为每个人对每个东西的理解不一样。”


更重要的是,当今,越来越多的企业开始引入敏捷开发或 DevOps 模式,软件交付周期越来越短。并且,随着大数据、AI、云原生等技术的应用,软件复杂度不断提升。相应地,企业对测试人员的要求也越来越高。


随之而来的问题是企业招聘难,因为企业无法招到很多有丰富经验的工程师。即使招到资深技术人员,一旦离职,企业可能又面临挑战,一方面,交接工作难;另一方面,资深技术人员的工作经验无法传承给企业,知识无法沉淀到企业。


“以前,我们公司流传过一句话:开发多久,测试就要多久。如果开发三个月,那么测试就要三个月。这样,半年就过去了。因此,整个成本非常高。并且,产品、开发和测试人员的思维模式和视角不同,沟通难度不小,最终搞得大家怨声载道。"


关键是大家对需求的理解不同。研发人员对需求有一种理解,而测试对需求又是另一种理解。这就导致产品经理、研发和测试三方常常‘打架’。


事实上,测试人员最头疼的事就是“需求不明确,或者临时改需求,以及改了需求,只同步开发人员,不告知测试同学”。

软件测试人员的“福音”:全自动测试平台


能解决上述问题的工具可能就是全自动测试平台。据了解,它是飞算 SoFlu 全自动软件工程平台的一个组成部分,飞算 SoFlu 全自动软件工程平台是于 2020 年发布的新一代 JAVA 开发工具,截至目前已为包括医疗、金融、制造、零售等在内的八大行业的上百家机构提供了技术服务,被数千位专业人士使用体验。


令人印象深刻的是该平台为一家大型国有企业开发的“百万人使用级别的电商平台”项目,项目涵盖商品推荐、下单、客服、秒杀等众多单元。此前,该企业组建的数十人团队花费了一年完成开发,上线后却在功能性、稳定性、安全性等方面问题不断,且无法在短期内修复。在使用飞算 SoFlu 全自动软件工程平台后,该企业仅投入 6 位研发人员 45 天就高效完成开发、测试、联调、上线全流程任务。


飞算全自动测试平台


此次发布的全自动测试平台与全自动开发平台和全自动运维平台共同组成飞算 SoFlu 全自动软件工程平台,实现了软件工程开发、测试、运维全流程自动化,且自动测试平台随开发平台联动,开发测试一键关联,自动生成测试用例完成软件测试,1 人就即可完成开发、测试整套流程。


测试平台中点击“关联项目”



实现开发、测试一键协同


利用全自动测试平台,一方面,软件质量可以通过工具、流程和管理予以保障,而不再依靠有丰富经验的软件工程师。另一方面,可以进一步降低沟通成本,提升沟通效率。


以工具为核心,制订好管理流程,利用科学的管理方法,让测试人员操作工具时有规可循,按照步骤来,就不会犯错误,从而降低整个的管理风险和沟通风险。


并且,它还能解决企业招聘难问题。全自动测试平台降低了行业门槛,不仅普通测试人员能操作,而且连大学应届毕业生都能轻松上手。这样,企业招人相对更加容易。


依托平台的测试用例自动生成特性,用户通过录制工具把操作过程记录下来,平台自动识别相关接口并创建相应的测试用例场景。如此,测试人员无需编写脚本。



此外,全自动测试平台具备几大特性:一是测试生命周期管理。它提供测试用例管理、测试用例评审、测试计划跟踪和测试报告生成等测试生命周期管理相关功能。二是测试数据管理。全自动测试平台基于测试脚本与测试数据分离的思路,方便研发测试协同、方便自动化测试中的测试数据使用,支持 UI、接口等自动化工具中快速可重复地使用。三是精准回归测试。它在项目测试时,可以自动识别所有变动的接口,自动查找接口关联的所有测试用例,进行精准回归测试。


一名软件测试人员称,“我最期待的就是精准回归测试。如果能实现精准回归测试,那么在很大程度上,可以提高我的工作效率,节约时间。”


不管什么功能或特性,其目的是让软件测试变得更简单。陈定玮总结出其五个价值点:第一,统一测试规范;第二,可以管控测试流程,无需人操作,用工具、流程和管理来执行;第三,实现测试自动化;第四,可以量化测试成本;第五,可以建立测试的用例库,实现知识和经验的沉淀。他说:“所有的一切回归到一个点就是降本增效。除了满足所有测试的场景和功能外,整个产品的核心点在于做整个的管理,建立统一的标准。”


当然,仅仅解决测试问题还不够,“不管是测试,还是运维,所有的一切问题都源自开发。因为开发是本,是源头,所以要解决源头问题”。


陈定玮表示,“我们先推出开发平台,再推出测试平台。只有先把开发动作规范化,后面的测试才真正有用。真正的核心点是开发。因此,在开发过程中发现问题和解决问题,把动作前置,比如在开发中埋入与运维相关的技术,像链路追踪、服务发现等,在开发时就介入,而非到运维环境再去发现和解决问题。”


某种意义上,SoFlu 全自动软件工程平台的核心是自动化开发平台。它提供基于接口设计的可视化配置能力,通过组件可视化窗口界面以拖拽的方式开发接口。并且门槛低,配置灵活,普通开发人员也能轻松上手。


此外,平台提供大量组件库,比如 SQL 组件、事务组件、上传组件、下载组件等。支持用户根据自身需求开发自定义组件,丰富组件库,提高开发效率。


目前,多家企业在使用 SoFlu 全自动软件工程平台。

写在最后


从众多企业的多个项目反馈上可以看出,SoFlu 全自动软件工程平台有两大价值。首先,它可以降低准入门槛。其次,让技术的事情变简单,对人的依赖性更小,从而降低人力成本和沟通成本。基于该平台,企业可以快速开发一个东西,极大提升效率。针对业务的快速变化和提出的新需求,软件可以快速迭代,降低试错成本,业务就能大胆创新。“以前,开发人员要用近一年才能开发出的软件或系统,现在,用这个平台可能只花两个月就能搞定”。并且,它不需要非常资深的开发者,普通开发者在经过培训后也能上手。“我们现在非常重视顶层设计,设计的越好,对需求的理解越到位,开发过程就越好。同时,出现 bug 的几率越低”。

2021-11-02 18:238112
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 334.5 次阅读, 收获喜欢 1794 次。

关注

评论 1 条评论

发布
用户头像
BSN专业区块链平台,海量案例(防伪溯源、供应链金融、采购招投标...)
2021-11-05 14:43
回复
没有更多了
发现更多内容

手撕编译原理:汇编语言不会编

贾献华

JAVA后端学习路线

敖丙

Java 学习 程序员 Java25周年

缓存与存储的一致性策略:从 CPU 到分布式系统

伴鱼技术团队

缓存 系统设计 cpu 系统架构 架构模式

Flink Weekly | 每周社区动态更新-20200520

Apache Flink

大数据 flink 流计算 实时计算

这场大数据+AI Meetup,一次性安排了大数据当下热门话题

Apache Flink

大数据 flink 流计算 实时计算

计算机超全核心技术知识

cxuan

后端 计算机基础

Shell 文本处理一则

wong

Shell sed grep

奈学教育:Hadoop源码编译全流程分享

奈学教育

Kafka的生产者优秀架构设计

奈学教育

kafka 分布式

读懂才会用 : 带你见识 Redis 的 zset

小眼睛聊技术

redis 学习 程序员 架构 redis6.0.0

吉德热泵烘干机解放阳台,引领生活品质新风尚

infoq小陈

入门到放弃:理清前端技术概念

大伟

Java ecmascript 大前端 Node

产品的本质,知道却看不到

Neco.W

产品 产品经理 需求 产品开发

一周信创舆情观察(5.25~5.31)

统小信uos

基础软件 操作系统 新基建

一文让你快速上手 Mockito 单元测试框架

mghio

Java spring 单元测试 Mockito

2020年6月3日 对象与类

瑞克与莫迪

Java 走过的创新25年

田晓旭

Java25周年

千万别学编译原理

池建强

编译原理

MyBatis之启动分析(一)

ytao

面试 mybatis

Mobaxterm (安装 、汉化、使用)入门教程

Geek_Offset

Docker 容器优雅终止方案

米开朗基杨

Docker

Flink 1.10 SQL、HiveCatalog 与事件时间整合示例

Apache Flink

大数据 flink 流计算 实时计算

原创 | TDD工具集:JUnit、AssertJ和Mockito (十六)编写测试-有条件执行测试

编程道与术

Java 编程 TDD 单元测试 JUnit

CSS Tricks网站创始人作序推荐,这本书助你成为Web开发高手

图灵社区

CSS Web 开发 设计思维

普通二本,毕业三年,北漂之后,我是怎么成为程序猿的。

why技术

个人成长 程序人生 随笔杂谈 北漂

如何挑选一份工作

池建强

求职 找工作

浅谈敏捷开发中的设计

czjczk

敏捷开发

分享一份阿里架构师 651 多个技术分支的脑图

奈学教育

大数据

女朋友跟我吐槽Java中ArrayList遍历时删除元素的各种姿势

NotFound9

Java 架构 面试 编程语言 后端

如何更好的交谈(以英语为例)

董一凡

学习 生活

我的个人知识管理方法

lidaobing

个人成长 知识管理 PKM

简单、易用、易学,这个全自动测试平台真香_软件工程_万佳_InfoQ精选文章