828-2026.08.26.e2e

Posted on Aug 26, 2026

今天的课程呢应该比较简单啊,只向大家介绍一个简单的概念,叫E to e啊,and to end啊端到端测试。

e2e, End To End,端到端测试

这个东西呢啊也是写软件的时候用的。
但实际上呢,你把它道理想明白之后呢,你就会发现说它其实是可以用到任何工程里面的啊,所谓的啊端度端到端测试指的是什么呢?
比如说哈你写一个呃呃GUI软件。
那么你写完之后呢,你要有用眼睛哈去看那GUI写的是不是你要的样子。

但是呢我们的肉眼呢常常情况下是不太够用的对吧?
而且效率是比较低的,所以呢就需要有一些程序化的啊工具来帮助我们。

playwright, tauri mcp, osscript…

因为我是用map的,所以呢呃这个我用的哈端到端的测试的工具啊,基本上都是啊map的对,当然你在windows上也可以用了啊,像playright和那个啊ry mCP啊都是可以在这个啊mac和windows上同时用的啊,像OS
script啊,这个呢就是apple script,那么就是mac的东西了。

这个playright,还有ry mCP,还有这个OS script啊,这些呢都是可以由AI驱动的。
所以呢嗯他会帮助你啊快速的啊这个这个测试,并且计算啊,某些地方对还是不对啊,尤尤其是你去改javascript或者是去改这个CSS的时候啊,他们是极端有用的。

呃,去年年底我开始写V mark的时候呃,不管三七21啊,我那个功能还没写全呢,我就先给他写了一个哈最简单的MCP啊,为什么呢?
因为那样的话呢,我可以直接在AI里面去驱动啊我的V mark,然后呢就会减少大量啊,我来回切换,来回观察的工作,。

写跨平台程序,我喜欢用try的一个重要原因哈呃,除了他众所周知的一些好处之外,当然他也有一些坑。
呃,我比较喜欢用的原因是什么呢?
就是他自己有一个比较好的哈ryMCP啊,这样的话呢就是说啊做这个端对端测试的时候呢,嗯他是比较快捷的啊,AI在背后干啊,我有的时候都看不清楚他在干什么,但是他该干的一下就能干完。

另外一个呢就是呃你可能哈为了开发软件的时候呢,需要有第二台机器啊,甚至不同系统的机器,对吧?
为什么呢?
因为他在驱动你的程序,然后呢开始做测试的时候做端对端测试的时候,他有可能哈打开一个窗口,他有可能啊把焦点放到一个窗口的某个控件上,他可能去移动你的鼠标,他可能去模拟键盘,对吧?
一旦他开始做这样工作的时候呢?
你就你的电脑就被独占了嘛,对吧?
那这个时候你就干不了别的事情了。

所以呢啊当我写vi码的时候呢啊它的端到端测试都是在另外一台机器上完成的啊,不可能在我正在使用这台电脑上去完成,对吧?
啊,所以呢我得有第二台mac,对吧?
然后呢,我还得有一个windows,对吧?
然后呢我可能还得有一个linux啊,这样才能写哈的跨平台的软件,。

除此之外呢,你可能还需要这个有这个这个叫什么呀啊,什么IOS的模拟器呀,android的模拟器呀啊这些呢都相对比较好办。
啊,但有的时候呢啊这个刚才说的就是啊桌面端的软件想做端对端测试的时候啊,他有可能哈独占系统,对吧?
那这样的话呢,你就只好有第二台机器。

在没有AI之前哈,搞这些事情是真的非常非常麻烦的。
你想啊你总得一个人哈在几台机器之间跑来跑去,对吧?
哪儿设置出了一些问题哈,你就要折腾半天啊,有的时候可能一整天啊,没解决任何其他问题,光解决机器机器的兼容性问题来着和机器的维护问题啊,浪费很多时间但是今天有了AI之后呢,这些活呢都不用你干了啊,你你你你其他机器甚至都没有打开过,对吧
?
啊,屏幕是按着的,但他该在干的活全都干完了,你远程都可以干完。

这个端对端测试和TTD开发啊,TDD开发就基于测试的开发稍微不一样在哪呢?
啊,一般来说哈TDD啊是在开始写代码之前啊,开始干活之前啊,制定一系列的这个这个限制限定条件。

而这个E toE呢端对端测试呢是代码完成之后啊,去观察它的结果,对吧?
然后呢,当然了,观测之后,结果之后呢,有一些错误也可以哈啊返回到TDD的阶段啊设定一些限制。

限制、实现、验收

所以你可以哈把TDD和coing和这个E toE啊理解为一连串的三个阶段。
当然他们可以循环哈。
一个呢你是要是要做一些限制,然后呢再去实现它,然后呢再去验收,对吧?
验收之后不合格呢,再返回来,对吧?
啊,继续做限制,继续实现,继续验收啊,验收合格了之后呢,发现之前的TDD不好的话,需要补充的话呢,再循环回来,然后继续哈发展所谓的发展就是啊继续做限制,继续做实现,继续做验收,?

其实呢我也是哈真正开始自己哈写一些软件啊,做一些工程啊,尝试着去学习工程啊,学习工程思维啊,才知道哈啊很多事情远比想象的复杂,对吧?
那还是以我自己写的这个V mark来做这个例子的话,就是我前前后后已经写了差不多有8个月了,对吧?
然后呢呃到现在我也没有把它变成一.
0版本,啊,这个不是我这个墨迹,是随着你哈不停的深入啊,你做的决策越来越多,对吧?
然后这些决策呢啊纠缠在一起,然后呢,需要做的判断呢就越来越复杂。

所以啊无论你做什么啊,做时间久了,他就一定是工程,对吧?
啊,然后呢,如果是工程啊,他就一定是你的命运和宿命啊,这句话请你仔细听好啊,就说为什么说哈无论是什么,你开始了啊,它就一定是工程。
而进而任何的工程都一定是你的宿命呢?
。

因为道理特别特别简单,你这你你你你要投入你的时间和精力,对吧?
然后你的时间精力是不可双花的对吧?
啊,用在这里就不能用在其他地方,对吧?
所以呢你做的每一样东西到最后都是你宿命当中的一部分,为什么它是宿命呢?
啊,宿命不是说啊啊未来怎么怎么样,而是说它既定的命运已经形成了,然后呢,你的未来会基于这个些既定的命运来这个啊拓展,对吧?
所以呢进而哈逐步构成你的宿命,。

所以呢你做到一定程度哈,你人生的价值观都会发生变化的。
啊,因为你知道哈你开始了一件事情,然后呢,它终将会变成一个工程,然后呢,他终将会变成你的宿命。
然后呢,你就会对待对待他的态度不一样啊,不是随便搞搞,随便玩一玩,对吧?
啊,然后呢,不是拍脑袋想一想,就开始做对吧?
我也是做了这个这个这过了这一年哈,我才清楚的认识到以前呢呃只能是隐约的猜这一次呢是清楚的认识到为什么我以前啊跟一些程序员说我的想法的时候,他们表现的并不积极,。

以前呢我以为哈是他们不屑一顾啊,今天呢我自己面临同样的情况。
如果谁啊有个想法,想让我帮他实现,对吧?
我可能反应也比较的迟钝,然后呢也会坐在这里仔细衡量,衡量完了之后呢,可能就不愿意做,为什么呢?
因为我知道的。
无论什么东西只要我开始了,对吧?
那就会变成我的工程,就会变成我的宿命,。

所以呢啊很难去做那些无法验证的事情啊,这句话很关键哈,我们很难懂工程之后,我们很难去做那些无法验证的选择。
呀,为什么呀?
因为我们性命啊。

从这个角度你就明白哈,为什么我们去写一个软件的时候,做一个工程的时候,到最后一定会有一个哈叫端对端测试啊,端对端验收。
对?
所以你不要以为哈他只是写软件的问题。

然后你再把它哈啊啊拓展开来,用AI的最基础也是这么一个呃要素构成的。
就是你问问题的时候,你要把你的问问题啊限定到一个特定的范围啊,你不能哈啊这个这个啊空泛的问哎,我怎么赚钱啊,啊他肯定胡说完道,对吧?
你你要有很多的限定范围,啊,我现在呢是买股票啊,我要买哪一个方面的股票,然后呢,你再去问那个答案就不太一样,对吧?
我现在呢是想开学校,对吧?
然后开哪一方面的学校,线上还是线下嗯,限定条件给了之后呢,啊,结果就不太一样。

然后呢,虽然给了限定条件,对吧?
但是在问之前,你可能问的是怎么实现,但是你要跳过一个步骤,对吧?
你要自己先想清楚我怎么去检验这个这个这个实现的结果,对吧?

所以有的时候我甚至会提前问这个AI,就是你先别回答我这个问题,你先告诉我我如何才能衡量这个问题的答案的质量。
对吧?
我说我准备问一个这样的问题。
那请问我如何进进行限定,啊,才能够得到高质量的答案呢,他会给你一个答复,然后呢,你说别着急回答,那么请问面对这样的问题,面对这样的限定,我用什么方法去验证这个答案的质量呢,他又给你一大堆。
然后你再跟他说,那综合这些啊限定和这个验收标准,对吧?
你给我一个pro吧,然后你再打开一个新的线程,对吧?
然后把那个pro扔扔进去,对吧?
所以你的哪怕跟AI随便聊天的质量都变得极为不同。

第一步模版:

我想问一个问题:__________________
但是,你先不要回答我的问题,请问,我应该加上怎样的限定,才能得到更高质量的答复呢?你可以通过反问,来了解我的真实需求

第二步模版:

好了,我现在已经接受了这些限定。
但是,你先不要回答我的问题,请问,我应该用什么样的标准去判断答案的质量呢?

第三部:

第一步模版:

我想问一个问题:__________________
但是,你先不要回答我的问题,请问,我应该加上怎样的限定,才能得到更高质量的答复呢?你可以通过反问,来了解我的真实需求

第二步模版:

好了,我现在已经接受了这些限定。
但是,你先不要回答我的问题,请问,我应该用什么样的标准去判断答案的质量呢?

第三步模版:

好了,那现在根据这些限定和判断标准,给我一个完整的可用来交给 AI 的提示词。

然后,你再开一个新的线程,粘贴给 AI

所以你看哈到最后呢,其实还是工程思维在起作用。
只要你有了足够好的工程思维呢,那么你跟AI交流的质量是不一样的,他干活的质量是不一样的。
然后呢,你的判断标准也是不一样的对吧?
所以它不仅仅是开发软件的东西对吧?
它只是一种思想,。

而你呢今天就多学了一个词叫E to e。
所以呢下次你展开一个项目的时候呢啊你不要着急先开始哈向他描述需求啊,让他开始写写这个这个写代码,对吧?
你可以先跟他讨论需求,然后呢让他去设帮你设置哈,帮你去搭建啊TDD的系统啊,最后呢你也要跟他说,那请问啊我这样的一个东西啊,都需要哪些啊e to e toolss啊,就需要哪些端对端测试的工具呢?
你帮我搭建好,对吧?
然后呢,最后你还要再加上一步,就是这个端端对端的测试,不是每一次都要进行的。
是under就在我需要在我让你做的时候,你才做否则的话就会很浪费时间。

on demand

你看无论干什么,他都是有一整套框架的对吧?
那你可能是外行没有关系,对吧?
你只需要知道一件事情,就是无论干什么都有一套框架,所以呢你冲新任何一个领域的时候呢,你先去问AI,我都需要哪些框架,对吧?
今天我讲给你们听的啊,也都是我现学的对吧?
当然了,不是一天学是花了一整年时间哈,在这折腾对吧?
啊,探索归纳整理试错,对吧?
啊,然后限定时限,然后验收对吧?
。

好,今天的分享呢就到这里啊,只讲了一个特别简单的啊这个概念一图E对吧?
然后呢,又告诉你另外一个字叫on demand啊,就是啊按需求来实施,对吧?
好,我们下次分享再见。