何老大谈云开发过程自动化测试的感想表达!

xzdxmynet 发布于 2024-03-19 阅读(41)

今天和何老师的交流,引发了我内心长久以来的一些感受的表达,主要是对我们发展过程的一些幻想,最后给出了一个标准化的实现方式。

1.云开发平台

我们的开发人员整天忙碌,重复最多的就是写代码->编译->简单测试->修改代码->编译……

云开发平台就是为了解决这个问题而诞生的。 它是什么?

所谓云就是对用户透明,所谓云开发平台是指对我们开发人员(测试人员)几乎透明的编译和调试环境。

你要做什么?

告诉它你的项目地址并告诉它你的编译方法。

它对你有什么帮助?

1. 监控您的项目,提交时为您编译,并返回编译结果。

2、准备环境,提供从云端返回的编译好的主机(我们的测试机)。 您可以登录SSH进行测试。

2. 开发过程的自动化测试

我们现在正在向前测试,甚至介入需求阶段。 这里我不会重点讨论需求的测试方法。 我只讲如何向前测试? 我们现在强调早期代码审查测试和早期逻辑检查。 这些是白盒,但静态检查。 我觉得这些都可以做得很好,但只是为了早期测试,能暴露的问题有限。 更多时候,我们需要依赖更多的编码经验。

开发人员在编码时花费更多时间进行调试(大约80%并不夸张)。 这部分工作其实是可以减少很多的,而且大家都知道,如果花更多的时间去设计和编写高质量的代码,测试的工作量也会少一些,这样可以有效的提高整体的研发效率。 当前的问题是开发人员不知道如何使用工具来改进开发流程。

开发过程的自动化测试是指提供一个易用的框架,利用自动化测试的优势,对流程中的重复性工作实现自动化测试,对每次需要验证的测试点进行自动化验证。

效果是:

开发设计完成,开发编码。

推进测试、准备测试点并编写自动化用例。

使用统一平台实现自动化交付。

难点一:对测试人员的要求较高,但我们可以培训他们。

难点二:开发有一定的常规限制,但每一个限制如果利用得好,都可以带来更大的自由(好处)。 如今街头流行的智能手机难道对键盘的使用没有限制吗?

最后也是最雄心勃勃的。

3、研发管理平台:

流程越来越多,文档越来越复杂,IT系统越来越混乱。 通常,一个帐户无法记住,而另一个帐户也无法登录。

像申请序列号这样的小事,就需要助理来处理。 想象一下,如果我们有一个完整的认证系统,那不是可以自动颁发序列号吗? 系统会记录得更清楚。 使用它的人也会得到最快的响应。

开发商在没有通知我的情况下更改了要求! ! !

我忘记了xx文件的svn地址! ! ! 询问别人是一件很尴尬的事情,有时你不能立即得到答案,这会影响别人。

SQA孜孜不倦地收集各种信息,但可能仍然会受到大家数据的质疑。

整个研发体系引入了流程更新,但实际实施时大多数人还是忘记了。

。 。 。

问题变得更加突出。 我们应该做什么?

研发管理平台正是我们所需要的。

其核心特点:

1.统一准入认证体系。 保证内网的安全可靠,提供完整的日志。

2、整合研发流程,提供从需求到发布的流程跟踪。 可以强制执行开发经理和测试经理的活动。 并实现智能提醒。 (想象一下,作为一名开发经理,我只需要每天登录系统就知道下一步该做什么,每天只需要提交一次日常进度,并且可以随时检查项目成员的代码提交质量时间;而项目负责人不需要太多信息,项目信息可以通过研发管理平台收集)

例如,可以简化需求流程,只需输入一次需求。 未来,每当需求发生变化时,所有相关人员都会自动收到电子邮件,并且任何需求流程都会被记录下来。 系统会提供发布前的需求完成情况,并自动形成可发布文档。

3. 集成自动化测试,提供统一的静态扫描以及与ATM的接口。 它提供了一个可以随机构造有效数据的数据仓库,并提供了虚拟化的硬件平台。 任何人都可以一键获取测试主机,以便在需要时快速进行访问验证。

4、具备数据分析甚至挖掘能力,并为决策提供一定的SQA职责。

我们先来初步分析一下

1.云开发平台

实现难度:中(监控svn应该不是问题。提供调试和编译环境。这个可以通过部门虚拟设备来解决。我们的自动化基本解决了虚拟设备的克隆、打开、关闭、甚至修改IP的问题)执行任何命令。剩下的下一个问题是工作量和需求,另一个难点在于解决不同环境下部署的约束)

实施工作量:低

实现效果:可以让每个开发者免于重复操作和容易出错的问题。

限制:需要开发者配合实现代码文件存储和命名约束,并细化相关需求。

2. 开发过程的自动化测试

实施效果:合约发行和测试回归速度大规模提升

实施难度:中

实现工作量:中(在于如何设计一个简单易用的框架来快速编写和执行自动化。这里与ATM平台的区别在于它是轻量级的,更容易完成非关键字级别的验证。并且支持更多语言。)

3、研发管理平台

达到最佳效果。

这个我就不分析了,你可以一步一步来。

你为什么想到这个?

首先,测试和开发是密不可分的。 我们测试的目的是保证版本质量,还有一个很重要的就是提高测试效率。

开发的目的是快速发布高质量、高可维护性的新版本。 仔细想一想,提高测试效率并不仅仅在于测试过程,而是在于整个开发过程; 而高开发和快速发布部分依赖于测试的快速测试。 除了高可用架构之外,还依赖于快速有效的自动化和高效率。 的工具。

否则,每次开发迭代10%开发、110%测试验证的功能情况就无法改变。 我们会很辛苦、很累,但不会得到结果。

为什么我们的项目中单元测试执行失败?

1.没有好用的工具。 如果有一个只需要编写业务测试代码、由专家集成的单元测试框架,何必担心没人用呢?

2、没有明确的目标,或者目标效果太严格。 我们缺乏非常有效的数据测量和经验丰富的人员。 这些项目单纯依靠人的意识基本上很难实施成功。

关于开发语言,

大多数人,和大多数人一样,倾向于选择大多数人使用的语言,什么叫“最佳实现”……

如果我说,学习一门脚本语言,你可能会说,你没听说过图灵等价吗? (意思是任何计算机语言的表达能力都是等价的,理论上是如果一种语言能完成一个事件,另一种语言也一定能完成。)脚本语言是不是太弱了? 就不能开发大项目吗?

事实上,目前世界上主要是类似 Lisp 的语言。 从perl开始,ruby不再只是用来开发小项目了。 大家在使用的时候,你知道上面写的是什么吗? 事实上,从它的网页到它的启动脚本都使用它。 它已经流行很长时间了,最​​新的Node. js从前端开发到后端。

是什么原因? 高效的开发效率、强大的表达能力、更少的代码往往意味着更少的维护成本。 有兴趣的同学可以跟随笔者这位硅谷投资之父揭秘快速发展的秘密。

我们可以尝试在一些内部项目中采用它。

标签:  自动化测试 测试过程 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。