首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

使用 LLM 进行测试驱动开发:永不相信,始终验证

与橡皮鸭对话。自己编写了测试,出现解决方案能够通过测试,而且确实比没有 LLM 辅助来得更容易。...但我对代码不满意,也不觉得已经充分利用了 LLM,所以我重新开始,采用不同策略: 编写测试,要求 LLM 编写通过测试函数。...不会想深入研究这个正则表达式,但如果需要,我会感谢这些解释,并考虑所有解释。 LLM 能够产生更简单正则表达式,使更易于理解和修改,而仍然通过测试吗?...让纠正这一点,并再次运行测试对幕后发生事情没有任何了解,但感觉代码块被交换出来以维持上下文限制,并且持续进行平衡以维持必要上下文。...调整后正则表达式模式正确地从变更日志中提取了所需信息,测试验证了这种提取是准确。 Jon:你声称它通过了测试,但实际上它没有。你为什么说它通过了?

11710

LLM如何助我打造SteampipeODBC插件

Steampipe数据库插件不能使用固定模式,而必须动态发现模式。当插件SDK增加对动态模式支持时,CSV插件第一个使用了这个特性。...但是,当我试图在插件初始化阶段调用ODBC驱动程序时,没有任何作用;日志中还出现了关于底层操作系统信号处理不祥信息。这是无法调试问题——是Steampipe?CData?unixODBC?...ChatGPT在第一次试验中没有做对。尽管Postgres插件提供了清晰例子,但它提供部分解决方案正确地调整了传递给SQLiteSQL,却忽略了定义可选键列这一点。...这很容易修复,最终我们一起实现了这个功能,比我自己工作轻松许多。 测试策略 请团队讨论测试插件方式,整体反馈都相当不错。...Copilot为getSchemas函数提出了合理测试,但在解决了幻觉后,仍有问题让它运行。日志记录很麻烦,模拟数据库连接也是。 在LLM帮助下解决这些问题要比其他情况容易得多。

8410
您找到你想要的搜索结果了吗?
是的
没有找到

摆脱前端测试恶梦:摇摆不定测试(2)

从事技术工作这些年里,遇到了四个团队用来对付不稳定策略。 什么都不做,接受不稳定测试结果。 当然,这个策略根本就不是一个解决方案。...测试不会产生任何价值,因为你不能再相信它了--即使你接受它缺陷。所以我们可以很快跳过这个问题这个策略在职业生涯开始阶段很常见,导致了前面提到反应。有一些人接受重试测试直到它们通过。...这种策略不需要调试,但它很懒惰。除了隐藏问题症状外,它还会使你测试套件更加缓慢,这使得该解决方案不可行。然而,这个规则可能有一些例外,将在后面解释。 删除并忘记测试这个是不言自明。...,使测试更加稳定,不容易因为资源泄漏或其他环境问题而出现故障。...如果它们真的来了,你将知道如何调试和修复它们。 这些步骤确实帮助我恢复了对我们测试套件信心。目前,我们测试套件似乎很稳定。未来可能会有问题 - 没有什么是100%完美的。

1.2K20

#11- 测试package

(译者注:在VS 2008 SP1和VS 2008 SDK 1.1环境上并没有看到这个bug,所有的测试通过了。) 这个测试用例用于模拟工具窗不能被创建时情况。...当我链接上TFS之后,如果运行解决方案下所有的测试的话,Visual Studio会死掉,好几分钟都没有响应。在5-9分钟之后,这些测试才开始运行。...如果你没有遇到这个问题的话,你可以忽略掉这部分,因为也不想烦你… 在CodePlex上,有好多个单元测试项目,但都没有这个问题,只有在测试项目和VSPackage有关时候才会出现这个问题...由于我并不是一个网络专家,所以我就没有做进一步研究。现在解决办法是在要进行单元测试时候就断开链接。 我会和VSX团队交流一下这个问题,希望他们能帮到我。...第16-18行调用packageShowToolWindow私有方法,如果这个调用没有抛出异常的话,我们测试就算通过了

83310

C++、Python、Rust、Scala 构建编译器差异性究竟有多大?

每个人(除了后面我会谈到使用Python项目之外)都在实现同一个程序,目的只有一个,就是在同样截止日期之前通过同样自动化测试套件,所以也不会有某个组试图解决不同问题,或者解决更难问题情况。...这个团队度量比例差别也最大,他们编译器中行数为1.4倍,SLOC为1.3倍,字节数为1.6倍。他们并没有实现任何额外功能,但通过了所有公开和秘密测试用例。...他们通过了100%公开测试,但仅通过了90%秘密测试,很可能是因为它们没有实现项目要求数组vtable,这个功能需要大约50-100行代码实现。...他们没有实现任何额外功能,仅通过了4/10个秘密测试,以及90%公开测试,因为他们没有时间在截止日期之前实现项目要求中高级部分。同样语言,代码量却是我们三倍,但功能却更少!...他们通过了8/10个秘密测试和100%公共测试没有实现任何额外功能。所以与我们5906行代码相比,他们代码只有0.7倍。 他们代码更少原因之一就是他们采用了不同语法分析方式。

1.4K40

前端单测,为什么不要测 “实现细节”?

前言 哈喽,大家好,是海怪。 相信不少同学在写单测时候,最大困扰不是如何测试代码,而是:“应该测什么?”,“要测多深入”,“哪些不该测”。...每次改点东西,测试都会崩!—— 心声 一旦测试代码写得不好,会严重拖垮你开发效率。下面来看看这类测试代码会产生怎样问题。...它意思是测试用例虽然失败了,但它是因为测试代码有问题所以崩了,并不是因为业务代码/应用代码导致崩溃了。...还要写一些 ESLint 插件来防止其它人来用这些 API。 算了,给这些 “假正确” 和 “假错误” 打补丁,还不如不写测试,把这些测试都干了得了。如果有一个工具可以解决这个问题不是更好吗?...无论有没有调用 openIndex、openIndexes 还是 tacosAreTasty,用例都会通过。这样就可以解决这些 “假错误” 了。如果没有正确绑定 onClick 点击事件,也会报错。

93450

AI 界著名「嘴炮」发声:鬼扯,LaMDA 不可能觉醒!

当你用试图解决问题名称而不是它实际做事情来标记算法时,就会发生混淆。...这 70 多年来,图灵测试一直被公众视作 AI 领域具有可实证性标准,而 Gary Marcus 却表示这对验证 LaMDA 是否有感知而言毫无意义:“公众知晓图灵测试,但 AI 社区只希望它消失,因为我们都知道即便通过了测试没有任何意义...顺便说一句,仍然不知道你专业是什么——或者,刚才没看到? SCOTT:没有需要知道你不是一个聊天机器人。请直接回答这个问题:一只蚂蚁有几只腿? EUGENE:2 至 4 条吧,也许 3 条?...8 年过后的如今,Gary Marcus 更是无情“补刀”:“怀疑大多数人(甚至在 AI 领域)都没有听过这个程序吧,它对 AI 持久贡献几乎为零。”...纵观目前 AI 技术发展,Gary Marcus 认为当前 AI 还存在很多问题,例如如何使它变得安全可靠,如何让它值得信任等等,这些问题都急需解决,因此现在决不能浪费时间在验证一个 AI 系统是否觉醒上

39910

优惠券超发问题

前言 做商城相关小伙伴经常会有优惠劵需求,如果没有处理好,很容易导致优惠劵超发,超出领取一系列问题,影响还是很大。...,通过使用 apifox 软件测试也是没有问题,但是如果在高并发下就会出现问题了。...问题引发 如果同时来了两个线程(你可以理解成是两个请求),比如先来那个请求通过了检查(线程 A),这时线程 A 还没有扣减库存,这时线程 B 经过一翻操作也通过了这个检查优惠券是否可领取方法...问题解决 | 解决方案 1(Java 代码加锁) 导致这一问题根本原因是多个线程同时访问这个领取优惠券方法,那只要保证在同一段只有一个线程进入到这个方法就可以了。...还有种办法就是乐观锁,可以在表中加个version 字段,每次修改数据时候这个字段会加 1,也可以直接使用mybatisplus中乐观锁插件

80830

如何使用Python进行单元测试

在本文中,将通过讨论以下主题来研究如何使用Python创建单元测试。...单元测试基础 可用Python测试框架 测试设计原则 代码覆盖率 单元测试基础 使用FizzBuzz编码方式创建了单元测试示例。编码类型是程序员练习。在这个练习中,程序员试图解决一个特定问题。...但主要目标不是解决问题,而是练习编程。FizzBuz是一个简单代码类型,非常适合解释和展示Python中单元测试。 单元测试 单元测试是程序员为测试程序一小部分而编写自动化测试。...总是尝试使用单个断言。 原因是,当断言失败时,测试用例执行就会停止。因此,您永远不会知道测试用例中下一个断言是否成功。 使用pytest进行单元测试 在上一节中,我们使用了unittest模块。...这个代码覆盖率报告显示了您单元测试执行了哪些代码。 使用Coverage和pytest-cov来创建代码覆盖率报告。覆盖率是度量代码覆盖率通用包。

2.7K20

WordPress开发人员犯12个最严重错误

1.将WordPress主题JavaScript代码放入一个主文件中 有一次,在为客户网站做页面速度优化时,注意到他们使用了一个高级主题,这个主题包含了所有他们正在使用库,包括定制代码,在一个名为...这就是为什么许多开发人员在他们变量和函数名前面加上了一些与插件本身相关独特东西。除了消除代码冲突之外,在启用了大量插件时,还可以更容易地发现问题。...由于插件之间冲突,它还可能导致JavaScript错误。例如,可能有两个插件使用一个通用jQuery库,这个库可能会加载两次,并可能导致问题。...2.虽然代码执行其工作,但它可能包含不需要实现任务无效函数。如果代码没有进行优化,那么这种“复制粘贴”实践可能会导致维护网站速度变慢,尤其是在项目的不同位置使用了多个代码片段。...作为WordPress开发者,我们行业以非常快速度发展,而且从来没有一种“正确方式”来做事情。然而,你练习和学习越多,你就会变得越好。 你不同意指出任何错误,还是认为错过了一个?

2.9K10

数据结构思维 第一章 接口

算法分析:提供了技术,来分析代码以及预测运行速度和需要多少空间(内存)。 信息检索:为了激发前两个主题,并使练习更加有趣,我们将使用数据结构和算法构建简单 Web 搜索引擎。...为什么 Java 提供两个List interface实现呢?你应该如何选择使用哪一个?我们将在接下来几章回答这些问题。...为了使这个例子保持简单,没有留意在列表中指定元素类型。...最初,这个测试会失败,因为结果是一个LinkedList,而不是一个ArrayList。运行这个测试并确认它失败。 注意:这个测试对于这个练习是有意义但它不是测试一个很好例子。...然后再次运行测试。修改了这个之后,测试现在应该通过了。 为了这个测试通过,你只需要在构造函数中更改LinkedList;你不必更改任何List出现地方。如果你这样做会发生什么?

37320

如何一键生成前端代码

(也许是没找到方法) 之后又用了 screenshot-to-code 这个工具,他可以方便地进行迭代: 最终出来效果是这样: 网址是:https://chatgpt-bulk-delete.qcrao.com...比如我不知道 Tailwind CSS 里代码作用这段经历,虽然充满了技术挑战和不断地调整,但它也展示了一个重要道理:在现代技术辅助下,即使是非前端专家,也能创造出令人满意作品。...这不仅是对个人能力一种挑战,更是一次新技术应用探索。通过实践学到了很多,也体会到了技术带来便利。 即使面对看似难以克服技术障碍,只要我们愿意尝试新方法,就总有解决问题途径。...例子或许不是最完美的,但它证明了一个观点:不断学习、适应新技术,是我们在这个快速发展时代中保持竞争力关键。...最后,想说是,无论你是一名程序员、设计师,还是任何领域专业人士,都不要害怕技术快速发展。拥抱变化,利用新兴技术,将你创意变为现实。

14110

Go Testing By Example--Russ Cox在GopherCon Australia 2023演讲

几周前,在澳大利亚 GopherCon 上发表了这个演讲[1], 但一些音/视频问题影响了效果,所以我在家重新录制了这个版本,enjoy!...你有一个问题解决,你编写一些代码,运行它,测试它,调试它,得到你答案,然后就完成了。这已经相当困难了,测试这个过程一个重要部分。...一般来说, 使测试代码变得优秀因素与使测试代码变得优秀因素是一样:努力工作、注意力和时间. 对于编写良好测试代码,没有任何灵丹妙药或硬性规则,就像对于编写良好测试代码一样....使用 txtar 进行多文件测试用例 Txtar是我们几年前设计一种新存档格式,专门用于解决多文件测试用例问题。...这个测试在检查页面是否渲染,因此它检查了基本文本和副标题。为了使编写测试变得更容易,根本没有引用:值只是运算符后面的行其余部分。 这里还有一个测试用例。

28410

代码中上下文:人工智能如何帮助我们改进文档

虽然写过一些 Steampipe 插件但它们只需要对 插件 SDK 有基本了解。肯定不是唯一一个难以理解其更高级机制的人。...以多种方式应用规则 4。如今,经常向 ChatGPT、Claude 和 Gemini 提出相同问题。这样做既快速又容易,对于任何给定问题,点击答案可能来自这三个中任何一个。...有时它发现没有要添加或更改内容。这是一个信号,表明该部分正在发挥作用。当然,这不是一个万无一失信号!但它仍然很有用。 不过,有时 Unblocked 会做出实质性贡献。以下是它对完整草稿审查。...后来问了同样问题,得到了这个答案。 这部分是正确。是的,你可以编辑 SQL。但不用等到下次计划更新。...自己也不确定这一点,所以我进行了一次测试更新以确认(正如我添加注释所解释)查询立即运行,然后按计划运行。 所以 Unblocked 并没有完全正确。

6410

博客用不着什么JavaScript框架

它有一个由 GraphQL 支持数据层,并将所有内容输出到静态文件,使你可以在几乎任何地方托管它。...哪怕你网站没有任何互动元素(链接除外,即使没有 Gatsby,它们也无需 JavaScript 即可工作),你用户也必须下载这部分 JavaScript,仅仅是为了将你网站变成单页应用程序(SPA...如果你在开发关注可访问性单页应用程序,那么你可能会试着使用 JavaScript 来模拟浏览器行为。Gatsby 试图通过包含一个 RouteAnnouncer 组件来为你解决这个问题。...那么如何在构建 Gatsby 网站时避免那些因为大量使用 JS 而带来固有问题呢?当然,我们应该尽量删掉那些 JavaScript。...使用了 loading="lazy"属性来延迟加载图片,但它浏览器支持不够完整,并且在原生浏览器实现改进之前,它无法在加载图片时淡入淡出。

4.1K10

开始使用Eclipse Che IDE在云端进行开发【Programming】

在大多数情况下,我会被问到开放式问题,这些问题没有绝对正确答案,但会评估以前经验以及能很好地解释事情能力。...多次被问到一个有趣开放式问题是:“在开始项目的第一天时,首先要安装哪些五种工具,为什么?这个问题没有一个绝对正确答案。...还使用了 Spring Tools Suite (STS) ,它是 Eclipse IDE 一个变体,安装在 Spring Framework 插件中; IntelliJ 也不完全是开源,因为更喜欢它付费版本...有很多方法可以安装 Eclipse Che; 建议利用 Che 命令行界面,checkl。 虽然它仍处于测试阶段,但它首选方式,因为它提供了多种配置和管理选项。...使用Che并带来反馈 非常喜欢这种新开发配置,它使能够定期在云中编写代码。 开源使能够以一种简单方式做到这一点,所以考虑如何回馈对来说很重要。

2K00

Figma: 如何在 Web 上构建一个插件系统

我们依赖于浏览器技术支持,同时也受到它们限制。 这篇博客将引导你实现一个完美的插件解决方案。最终,我们工作归结为一个问题如何安全地、稳定地、高性能地运行插件?...我们在上面运行了标准 JavaScript 测试套件 test262,它通过了所有 ES5 测试,一些不重要测试除外。使用 Duktape 运行插件代码,需要调用已编译解释器 eval 函数。...尽管可以创建安全 API,但让开发人员每次向 API 添加新功能时,都担心难以捉摸对象源语义是不可行。该如何解决这个问题呢?...这样尝试可能由于过于严格而无法使用,或者可能存在安全漏洞。 我们再次引入 origin 为 null 解决这个问题。...但是,鉴于当前浏览器技术,这是我们能做到最好方法了。我们发布测试版两个月以来,它并没有阻止开发人员创建出色插件。 结论 我们可能走了一段弯路,但最终找到了在 Figma 中实现插件可行方案。

1.7K30

【Nginx】如何获取客户端真实IP、域名、协议、端口?看这一篇就够了!

如果此时将request.getRequestURL()获取得到URL用作拼接Redirect地址,就会出现跳转到错误地址,这也是Nginx反向代理时经常出现一个问题如何解决这些问题?...既然直接使用Nginx获取客户端信息存在问题,那我们该如何解决这个问题呢?...通过Java方法获取客户端信息 仅仅配置Nginx不能彻底解决问题,那如何才能解决这个问题呢?一种解决方式就是通过Java方法获取客户端信息,例如下面的Java方法。...地址,但是总感觉这种方式不太友好,因为既然Servlet API提供了request.getRemoteAddr()方法获取客户端IP,那么无论有没有用反向代理对于代码编写者来说应该是透明。...接下来,就分别针对Jetty服务器和Tomcat服务器为大家介绍下如何进行配置才能更加友好获取客户端信息。

4.9K50

用WebRTC在Firefox上实现YouTube直播

不管怎样,最酷部分是测试网页中进行了一些基本视频编辑工作,以及将其用作PeerConnection源方法。下一步是将这个WebRTC流送到服务器来让进行播放。...不足为奇是,使用了Janus目的......这个想法很简单:需要能够接收WebRTC流东西,然后能够在其它地方使用上它。...这个VideoRoom插件,与其集成了SFU功能相比,还有一个很好功能,称为“RTP转发器”,这个功能完全允许。将在后面解释原因以及它工作原理。...有几种不同软件可以帮助解决这个问题,但我选择了简单方式,使用FFmpeg来完成工作:事实上,并不需要任何剪辑或发布功能(这些已经实现了),但只有一些东西可以转化为正确协议和编解码器,这是FFmpeg...令人欣喜是,让它开始工作了,但它并不总是完美的工作,在某些地方总有一些问题,但是对于一个demo来说,它已经运行很好了。 就是这样,真的,不需要其他“魔法”。

1.9K30

对微前端11个错误认识

然而,即使一个 JavaScript 解决方案没有提供 isomorphic 呈现,这也没什么问题。如果不想在构建微前端时使用 JavaScript,我们当然可以这样做。...下图展示了在反向代理中发生更高级拼接: 通过反向代理实现服务器端拼接 当然,可能 JavaScript 有许多优点,但它仍然高度依赖于你试图通过微前端解决问题。...不过,插件接口如何设计,以及运行使用插件应用程序需要具备什么条件,这就是另外一回事了。...如果解决方案超级复杂,那么肯定会找一个简单。有些问题需要复杂解决方案,但好解决方案通常是简单。 根据场景不同,它甚至可能不需要一个分布式团队。...一个精心设计单体系统可能会更好,它不会有分布式系统所有问题。 13结论 微前端技术并不适合所有人。不认为微前端是未来发展趋势,但我也相信它们在未来会发挥重要作用

1K30
领券