慣性聚合 高效追讀感興趣之博客、新聞、科技資訊
閱原文 以慣性聚合開啟

推薦訂閱源

L
LangChain Blog
宝玉的分享
宝玉的分享
酷 壳 – CoolShell
酷 壳 – CoolShell
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
T
Tailwind CSS Blog
Google DeepMind News
Google DeepMind News
Jina AI
Jina AI
J
Java Code Geeks
Recent Announcements
Recent Announcements
The Cloudflare Blog
D
DataBreaches.Net
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
Vercel News
Vercel News
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
雷峰网
雷峰网
H
Help Net Security
博客园 - Franky
S
SegmentFault 最新的问题
T
The Blog of Author Tim Ferriss
博客园_首页
C
Check Point Blog
腾讯CDC
美团技术团队
Martin Fowler
Martin Fowler
The GitHub Blog
The GitHub Blog
M
MIT News - Artificial intelligence
Apple Machine Learning Research
Apple Machine Learning Research
P
Proofpoint News Feed
U
Unit 42
人人都是产品经理
人人都是产品经理
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Engineering at Meta
Engineering at Meta
M
Microsoft Research Blog - Microsoft Research
阮一峰的网络日志
阮一峰的网络日志
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
B
Blog
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
博客园 - 聂微东
云风的 BLOG
云风的 BLOG
H
Hackread – Cybersecurity News, Data Breaches, AI and More
李成银的技术随笔
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 叶小钗
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知

DEV Community

Optic is dead. A 2026 migration guide for OpenAPI breaking changes Smart Blind Stick, Mini Project The NSA just published an MCP security playbook. We created Agent Trust Transport Protocol ATTP - Implement today with MCPS Symfony 8 AWS Secrets Bundle What RepoSignal Surfaced in React — and Why Review Alone Doesn't Catch Everything LeetCode Solution: 1752. Check if Array Is Sorted and Rotated Breaking the Matrix at 15: How I Built a Cyber-Aesthetic AI Assistant Core Powered by Gemma 4 Разработка Android Kiosk приложения Trafik Cezaları Platformları Geliştirirken Öğrendiğim Teknik Dersler The Myth of Low Latency: Why Event Meshes Make Your System Slow Building EIDOLON OS — A Local-First AI Cognitive Operating System qrrot - database with AI I Built a Local Gemma 4 Reviewer for Merchant Registry Evidence Compass v1.1.0 · we shipped a memory plugin that catches its own consumption drift How to build your first MCP server in 10 minutes Expo SDK 56 Is Out, and a Few Things Finally Clicked Into Place Building a 100ms Browser-Native WebSocket Clipboard Cómo solucionar `docker run` con `Exited (1)` en Raspberry Pi Why Claude Code Sessions Diverge: A Mechanism Catalog When One AI Agent Is Not Enough: A Practical Delegation Pattern for Enterprise Systems Cómo solucionar el bucle infinito en `useEffect` con objetos y arrays 🛢️ The Dangote Chain: What a Blockchain-Native Refinery IPO Would Look Like Build a "Where to Watch" feature in 50 lines with the StreamWatchHub API Gemma 4 on Android: Tricks for Faster On-Device Inference Your AI agent has amnesia. You've just normalized it. 🚀 Reviving My Women Safety System – From Idea to Real-Time Smart Safety Solution I built an AI that reviews every PR automatically (because nobody was reviewing mine) 🌿 Git Mastery: The Complete Developer Guide Bringing Gemma 4 E2B to the Edge: Building a Privacy-First Dream Analyzer with Flutter & LiteRT Google I/O 2026 Wasn’t About Features — It Was About AI Becoming the Developer Environment Building an AI Vedic Astrology App in 25 Days — What Actually Worked (and What Didn't) Hermes Agent Has Four Memories — And That's Why It Doesn't Forget You Pressure Isn't Killing You -Your Relationship With It Is 🐳 How to Run Any Project in Docker: A Complete Guide AccessLens — a blind person's lanyard, powered by Gemma 4 on-device Glyph v0.2: the release is the joinery How I Built a Blazingly Fast, Privacy-First Batch Image Converter in the Browser Using OPFS and Web Workers Cómo solucionar \"Text content does not match server-rendered HTML\" en Next.js App Router FCoP 3.0: Why AI Agents Need a Track, Not a Brake Fibonacci: Quiz app which anyone can make revenue by viewing ads to the quiz contestants. The Subconscious Powered by Edge AI GPU Utilization Is Becoming the New Cloud Waste Crisis Cómo solucionar `docker run` con exit code 1 en Raspberry Pi JWT is a scam and your app doesn't need it 7 Agent Skill Packs That Actually Make AI Coders Better More Control, More Cost: Why Commanding AI Isn't Delegation SecureScan Synthadoc: We Built an AI Judge for Our AI Wiki Compiler - Here's What We Learned Cómo solucionar el error de permiso al ejecutar `pip.exe` en entorno virtual (Python 3.10 en Windows) Postgres-grade Serializable at 20k+ ops/s — on a laptop. Don’t try this at home.
无需手写测试:吾以Gemma 4化GitHub仓库为完备测试套件 🎯
Arjun Sharma · 2026-05-24 · via DEV Community

此乃应Gemma 4之赛之投递:以Gemma 4筑之


所筑何物

吾筑Scriptless.ai——一由人工智能驱动之测试工场,使汝自"吾有GitHub仓库""吾有运行之浏览器测试并具失效分析"不亲撰一字之测试码。

诚言其事:吾所睹之众团队,皆视测试为事,行于既疲于撰制功能之后。测试之覆失,渐积;质验之滞塞,叠起;旦夜二时,Debug CI之败,唯睹赤格,无境无由。Scriptless.ai,乃吾欲全易此局之尝试也。

其要在此:

  1. 联接尔之GitHub仓库 — OAuth入,择一仓库,毕.
  2. 以Gemma 4生测试之例。 — 此模读尔实源文件与文件林,乃生结构、路线特定之测试案(UI、认证、表单、API、边界案、整合),悉合尔确代码林。非泛泛Lorem Ipsum之测试——乃真知尔路线与文件之测试。
  3. 于真云浏览器中行。 — 每一测试皆化身为 Playwright 脚本,于 Browserbase 实时会话中运行。真浏览器,真网络,真 DOM.
  4. 视觉察之败. — 测试若败,Gemma 4 之视能分析败时页面之截图,告汝所见,所失之由,及当何以修正。不复盲掘日志之古.
  5. 声控万般 — 以 Speechmatics 之能,可令言「运行失败测试」或「仅显通过」,而界面应之。无需持器,即可验质。

此乃全栈之制:Next.js 为前端,Neon Postgres 配 Drizzle 以存,Clerk 为认证,Stripe 为计费之基,Vercel 以部署。用户之积分,随生成与执行而减,计费之构已备,可应订阅之约。


示例

🚀 实时应用: https://scriptless-ai.vercel.app/

以Clerk登录→授权GitHub→连接仓库→点击生成测试,观Gemma 4之作为.

初试何物:

  • 连接汝所拥有之任何公共Next.js或React仓库
  • 点击生成测试用例,察其模型如何构架针对尔文件树之测试
  • 运行测试——Browserbase会唤起真Chrome实例
  • 若其败,则卷至视觉分析之节,观Gemma 4之诊断


代码

📦 GitHub: https://github.com/Arjunhg/scriptless-ai

值得探究之要件:

文件 其功用
lib/featherless/client.ts 无羽之客配置,模型别名指向gemma-4-31B-it
lib/featherless/generateTests.ts 调用Gemma 4以工具调用生成结构化测试案例
lib/featherless/analyzeScreenshot.ts 将失败截图发送至Gemma 4视觉诊断
lib/featherless/prompts/testGeneration.ts 转化Gemma为质检工程师之系统提示
app/api/generate-test-cases/route.ts API 路径,读取 GitHub 文件 → 调用 Gema → 存入数据库
app/api/test-cases/run/route.ts 执行流程:脚本生成 → Browserbase → 视觉备选
hooks/useVoiceCommands.ts Speechmatics 实时流程 + 语句最终逻辑
lib/speechmatics/commandParser.ts 基于词元的 NLP 命令解析器(词干提取、停用词、同义词)

吾如何使用 Gema 4

吾正在使用google/gemma-4-31B-it(三十一密指令调适之变体),经由Featherless AI OpenAI相容之API而得。Gemma 4于此应用中,助成二种迥异、实别之用场:

1. 🧠 测试案例之生成(文辞+工具呼召)

既而用户点击"生成测试用例",则后端自GitHub取其仓库之文件树,并滤取源文件之属,悉送诸Gemma 4,附以结构化之系统提示,并工具调用定义,以应submit_test_cases之需。

// lib/featherless/client.ts
export const FEATHERLESS_TEXT_MODEL = "google/gemma-4-31B-it";

// lib/featherless/generateTests.ts
const response = await featherlessClient.chat.completions.create({
  model: FEATHERLESS_TEXT_MODEL,
  messages: [...messages],
  tools: [TEST_CASE_TOOL_DEFINITION],
  tool_choice: { type: "function", function: { name: "submit_test_cases" } },
});

全屏模式入 全屏模式出

此模返回一JSON载,含五至八测试案,每案具一titledescriptiontype(ui/auth/form/api/integration/edge-case)、prioritytargetRoutetargetFilesexpectedResult。其解汝之应用结构于境——不妄生无路之径或无文之件,盖因汝示其实文件林也。

吾择31B者,盖结构输出之信实为要。小模往往偏离工具调用之范式,或产不备之JSON,尤以大仓之复杂数树为甚。31B之模,纵千词输入,亦恒保结构之信。

2. 👁️ 失败视域之析(多模)

若试运行败,则Playwright脚本于败处摄一屏。此屏遂递于Gemma 4之视能:

// lib/featherless/analyzeScreenshot.ts
const response = await featherlessClient.chat.completions.create({
  model, // google/gemma-4-31B-it
  messages: [{
    role: "user",
    content: [
      { type: "text", text: `You are a QA engineer analyzing a browser test failure screenshot.\n\nTest case: ${testDescription}\n\nDescribe what is visible on the page, what likely went wrong, and suggest concrete next steps...` },
      { type: "image_url", image_url: { url: screenshotUrl } },
    ],
  }],
  max_tokens: 512,
});

入全屏模式 出全屏模式

其果乃三至五句之诊,直呈于试运行之卡。非“败——元素未觅”,而得若此:"此页显四十四之误。其途/dashboard/analytics尚无。此试引一导航之行,恐近时一改已删之。当议更其目标之途,或增一引。"

此乃吾于开物时,实所惊异——Gemma 4之视析甚锐。非惟状此页,且思其故,及何由。 若以是页为靶,则试之必败。

何故选31B密?

  • 工具调用之信: 小型模型常于重压下破结构化输出之范。31B则恒常。
  • 长文推理之能: 试生之辞,可含三千至五千之符,并载文件之文。31B模型从容应之。
  • 界面截图之视效:浏览器截图,其界面元素繁密。三十一亿参数之视效模型,能正确辨识组件、错误状态及布局之瑕疵,此中小型模型往往遗漏或描述过于泛泛。
  • 一体两用:以同一模型家族处理文与视,使整合简明,行为于二事皆可预判。

独建于Gemma 4之赛。凡基设、提旨、声流、界面,皆所设计所运。