name: testing-handbook-skills
description: "Application security testing toolkit from the Trail of Bits Testing Handbook. Helps the agent set up fuzzing campaigns, write fuzz harnesses, run coverage-guided fuzzers (libFuzzer, AFL++, cargo-fuzz, Atheris, Ruzzy), and triage crashes. Covers memory-safety sanitizers (AddressSanitizer, UBSan, MSan), static analysis with Semgrep and CodeQL, cryptographic validation using Wycheproof test vectors, and constant-time verification. Use when testing C, C++, Rust, Python, or Ruby code for vulnerabilities, improving code coverage, building seed corpora, creating fuzzing dictionaries, overcoming fuzzing obstacles, or integrating security checks into CI/CD with OSS-Fuzz."
Testing Handbook Skills
Comprehensive security testing toolkit generated from the Trail of Bits Application Security Testing Handbook.
When to Use
- Setting up fuzzing campaigns for C/C++, Rust, Python, or Ruby
- Writing fuzzing harnesses for target functions
- Analyzing code coverage to guide testing
- Running sanitizers (AddressSanitizer, UBSan, MSan) to catch memory bugs
- Performing constant-time testing for cryptographic code
- Using Wycheproof test vectors for crypto validation
When NOT to Use
- Smart contract auditing or chain-specific review work
- Writing custom static-analysis rules from scratch
- General code review outside a security-testing workflow
- Vulnerability hunting without a concrete testing plan
Sub-Skills (17 total)
Fuzzers
Techniques
Static Analysis
Cryptographic Testing
Infrastructure
Meta
Workflow
Starting a fuzzing campaign
- Choose a fuzzer based on your target language (see Fuzzers table)
- Write a harness using the harness-writing skill
- Build with sanitizers (AddressSanitizer recommended as baseline)
- Create a seed corpus with representative inputs
- Run the campaign and monitor coverage
- Analyze coverage to find uncovered code and improve the harness
- Triage crashes and deduplicate findings
Setting up CI/CD testing
- OSS-Fuzz for open-source projects (continuous fuzzing)
- Semgrep + CodeQL for static analysis in PRs
- Wycheproof test vectors for crypto validation
Quick Start by Language
| Language |
Fuzzer |
Harness |
Sanitizer |
| C/C++ |
libFuzzer or AFL++ |
LLVMFuzzerTestOneInput |
ASan + UBSan |
| Rust |
cargo-fuzz |
fuzz_target! macro |
Built-in sanitizers |
| Python |
Atheris |
atheris.FuzzedDataProvider |
N/A |
| Ruby |
Ruzzy |
ruzzy harness pattern |
N/A |
Source Material
Generated from the Trail of Bits Application Security Testing Handbook using the testing-handbook-generator meta-skill.