property-based-testing skill 是什麼、怎麼安裝使用:Trail of Bits 的屬性測試 Skill(Hypothesis、fast-check、proptest)

property-based-testing 是 Trail of Bits 的屬性測試技能:編寫、評審和調試基於屬性的測試,覆蓋 Hypothesis、fast-check、proptest、jqwik 等庫,教智能體判斷代碼有沒有可測的「代數形狀」以及屬性測試是否真的斷言了東西。

Install · 安裝命令

/plugin marketplace add trailofbits/skills
/plugin menu

以 / 開頭的命令在 Claude Code 會話裏輸入,其餘在終端裏執行。Skill 可以帶可執行腳本,安裝前先看一遍倉庫裏的 SKILL.md。

NNathaniel bigo··原創首發·AI 輔助撰寫
3 分鐘讀完
資料核對於 2026-10-11 · 依據官方文檔與公開資料整理
本文根據 trailofbits/skills 倉庫裏該技能的 SKILL.md 與倉庫 README 整理,資料核對於 2026-10-11。所在倉庫 trailofbits/skills 在 GitHub 約 7462 Star(同日數據)。技能內容會隨倉庫更新,以倉庫為準。

這個 Skill 做什麼

普通的單元測試斷言一個點:輸入 3,輸出 9。屬性測試斷言一條規則:對任意輸入,編碼再解碼都得到原值,然後讓生成器去找反例。它能發現人想不到的邊界情況,但寫不好就成了「看起來在測、其實什麼都沒斷言」。property-based-testing 教智能體把它寫對。description:編寫、評審和調試屬性測試——Hypothesis、fast-check、proptest、jqwik、rapid,以及用於 Solidity 不變量的 Echidna 或 Medusa;當測試應當覆蓋整個輸入域而不是手挑的幾個例子時使用,典型對象有編碼與解碼、序列化與反序列化、解析器、規範化器、校驗器、數值類型、比較器與排序、數據結構和合約狀態不變量。

技能開頭有一段很清醒的話:這種交換隻在代碼具有「代數形狀」時才划算——存在逆運算、不變量或可對照的參考實現;沒有這種形狀的代碼就該寫示例測試,並且如實這樣說是一個有效的結論。

SKILL.md 本身很短,重點是一份屬性目錄(常見的屬性類型及適用對象)和「屬性測試什麼都沒斷言的兩種方式」,其餘細節分在五份參考文件裏:怎樣寫生成器、怎樣解讀失敗(區分屬性寫錯了還是真的發現了缺陷)、各語言的庫、重構、評審。另有一節講怎樣給還沒有屬性測試的項目引入它。

怎麼安裝

property-based-testing 在 trailofbits/skills 裏屬於 property-based-testing 插件。Claude Code 先登記市場,再在選單裏選擇要裝的插件(命令來自倉庫 README):

text
/plugin marketplace add trailofbits/skills
/plugin menu

Codex 用 codex plugin marketplace add trailofbits/skills,再執行 codex plugin add property-based-testing@trailofbits。

倉庫整體介紹和其他安裝方式,詳見本站《trailofbits/skills 是什麼、怎麼安裝:Trail of Bits 的代碼安全審計 Skills(靜態分析、差異評審、供應鏈檢查)》。

怎麼用

  • 「給這個 JSON 序列化模組加屬性測試」。
  • 「Hypothesis 給出了一個縮減後的反例,幫我判斷是屬性寫錯了還是代碼有問題」。
  • 「評審現有的屬性測試,哪些其實沒有斷言任何有意義的東西?」

適合誰 / 侷限

適合寫解析器、編解碼、金額計算、數據結構這類邏輯密集代碼的開發者。業務流程型、以讀寫數據庫和調接口為主的代碼通常沒有合適的屬性,技能自己也會這樣判斷;它不涉及二進制模糊測試,描述裏明確把那類工作排除在外。

注意事項

  • 許可:CC BY-SA 4.0,改編後須以相同方式共享。
  • 會執行測試命令;屬性測試運行時間比普通測試長。
  • 發現反例後先最小化並寫成迴歸測試,再修復。
需要開通或續費?ChatGPT Plus 充值 →

其他 Skill 庫

  1. 01

    ai-seo skill 是什麼、怎麼安裝使用:讓內容被 ChatGPT、Perplexity、AI Overviews 引用的 GEO / AEO Skill

    ai-seo 是 marketingskills 裏的 AI 搜尋優化技能:先做 AI 可見度審計,再從「結構、權威、存在」三個支柱優化內容,使其更容易被 AI 搜尋抓取、提取和引用,並涵蓋 llms.txt 等面向智能體的機器可讀文件。

    ClaudeCodex0
  2. 02

    gemini-api skill 是什麼、怎麼安裝使用:Google 官方的 Gemini API 開發 Skill(Agent Platform / 原 Vertex AI)

    gemini-api 是 google/skills 裏的 Gemini 開發技能:指導在 Agent Platform(原 Vertex AI)上用 Google Gen AI SDK 調用 Gemini,覆蓋 Python、JS/TS、Go、Java、C# 以及多模態、工具、緩存和 Live API。

    ClaudeGemini0
  3. 03

    writing-plans skill 是什麼、怎麼用:Superpowers 把需求拆成可執行實施計劃的 Skill

    writing-plans 是 Superpowers 的計劃技能:拿到設計或需求後、動代碼之前,寫一份「沒看過代碼庫的工程師也能照做」的實施計劃,寫明文件、接口、測試和提交點,存入 docs/superpowers/plans/。

    ClaudeCodex0
  4. 04

    lark-doc skill 是什麼、怎麼安裝使用:讓 AI 讀寫飛書雲文檔的官方 Skill(Docx / Wiki)

    lark-doc 是飛書官方 CLI 附帶的雲文檔技能:讓智能體通過 lark-cli 讀取、創建和編輯飛書文檔與知識庫頁面,插入或下載圖片附件,操作思維筆記,並內置會議紀要、PRD、彙報等多種文體的寫作參考。

    ClaudeCodex0
  5. 05

    deploy-to-vercel skill 是什麼、怎麼用:讓智能體把項目部署到 Vercel 的官方 Skill(預設只發預覽版)

    deploy-to-vercel 是 Vercel 官方的部署 Skill:先檢查項目是否已關聯、是否有 git 遠端和登入狀態,再選擇 git push、CLI 或免登入兜底方式部署;除非你明確要求,否則只發預覽部署。

    ClaudeCodex0
  6. 06

    verification-before-completion 是什麼、怎麼用:Superpowers「先拿證據再說完成」的 Skill

    verification-before-completion 是 Superpowers 的收尾檢查技能:在宣佈完成、修好或測試通過之前,必須在當條消息裏實際運行驗證命令並看到輸出,證據先於結論。

    ClaudeCodex0

查看全部 Skill 庫 →

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~