π¬π§ English
# Suitest β Platform Testing yang Bekerja untuk Semua Orang
> **Kolaborasi Suitest Cloud segera hadir.** Produk saat ini adalah platform
> self-hosted gratis. Semua provider model membuka fitur produk yang sama.
Kelola test case. Jalankan otomatis. Analisa dengan AI. Data tetap milikmu β tanpa biaya langganan.
---
## Apa itu Suitest?
**Suitest** adalah platform pengujian (testing) gratis yang bisa kamu pasang di komputer atau server sendiri.
**Bayangkan ini:** Kamu punya website atau aplikasi. Kamu ingin memastikan semua fiturnya berjalan benar β tombol bisa diklik, form bisa diisi, data tersimpan dengan baik. Dulu, kamu harus pakai Excel untuk catat test case, lalu jalankan test satu per satu secara manual. **Suitest menggantikan semua itu dalam satu aplikasi.**
### Apa yang bisa dilakukan Suitest?
| Kebutuhanmu | Solusi Suitest |
|-------------|----------------|
| π Catat semua test case di satu tempat | β
**Test Case Management** β buat, edit, organisir test case dan suite |
| π€ Jalankan test otomatis | β
**Automated Runner** β test browser, API, database secara otomatis |
| πΈ Dapat bukti screenshot & video | β
**Evidence Capture** β setiap test hasilkan screenshot dan video |
| π Lacak bug dari test yang gagal | β
**Defect Tracking** β bug otomatis tercatat saat test gagal |
| π Lihat laporan hasil testing | β
**Dashboard & Analytics** β pass rate, coverage, readiness dalam satu halaman |
| π Kaitkan requirement β test β bug | β
**Traceability** β setiap test terhubung ke requirement dan bug |
| π Integrasi CI/CD | β
**Webhook** β GitHub, GitLab, Jira, Slack |
| π€ Pakai AI untuk generate test | β
**AI (opsional)** β generate test dari PRD, diagnosis otomatis |
### Siapa yang pakai Suitest?
| Profil | Kebutuhan | Cara Suitest membantu |
|--------|-----------|-----------------------|
| π©βπ» **QA Engineer** | Kelola test case, jalankan otomatis, track defect | TCM, MCP runner, evidence, defect |
| π¨βπ» **Developer** | Pastikan PR aman sebelum merge, test cross-cutting | Workflow CI dan mixed-target test |
| π **Product Manager** | Lihat kesiapan release sebelum deploy | Readiness, analytics, traceability |
| π¦ **IT/Infrastructure** | Self-host untuk compliance | Infrastruktur, model, dan data milik sendiri |
| π **Startup / Indie Dev** | Hindari subscription dan vendor lock-in | Platform self-hosted gratis dengan BYO LLM |
---
## Mengapa harus pakai Suitest?
### vs TestRail / Zephyr
TestRail berbayar ($30/user/bulan) dan tidak punya automated runner. **Suitest menggabungkan TCM, automated runner, dan MCP plugins dalam satu platform self-hosted gratis.**
### vs Playwright (standalone)
Playwright cuma bisa test browser. **Suitest pakai Playwright sebagai salah satu plugin** + tambah TCM layer + traceability + multi-target (bukan cuma browser).
### vs TestSprite
TestSprite vendor lock-in (LLM mereka, cloud mereka). **Suitest: BYO LLM, self-host, universal MCP plugin (test API/DB/Infra/Mobile, bukan cuma browser).**
---
## Mulai dalam 3 Langkah
### β‘ Langkah 1: Install (1 menit)
**Yang dibutuhkan:**
- [Node.js](https://nodejs.org/) versi 18 atau lebih tinggi (unduh dari nodejs.org)
- [uv](https://docs.astral.sh/uv/) β package manager Python (install dengan: `pip install uv`)
**Cara cek apakah sudah terinstall:**
Buka terminal (Command Prompt / PowerShell / Terminal) dan ketik:
```bash
node --version # harus v18 atau lebih tinggi
uv --version # harus terinstall
```
**Install Suitest:**
```bash
npx @suiflex/suitest onboard
```
> π‘ **Apa itu `npx`?** Ini adalah bagian dari Node.js yang memungkinkan kamu menjalankan program tanpa install manual. `npx @suiflex/suitest onboard` akan mengunduh dan menjalankan Suitest otomatis.
### β‘ Langkah 2: Buka Dashboard (30 detik)
Setelah install selesai, Suitest akan memberikan alamat web (biasanya `http://localhost:4000`). Buka alamat tersebut di browser.
**Login pertama kali:**
- Email: yang kamu masukkan saat onboard
- Password: yang kamu masukkan saat onboard
> π‘ **Tip:** Jika lupa password, jalankan `suitest settings` di terminal untuk generate ulang API key.
### β‘ Langkah 3: Buat Test Case Pertama
1. **Login** ke dashboard
2. Klik **"+ New Project"** β beri nama project
3. Klik **"+ New Suite"** β beri nama suite (kumpulan test case)
4. Klik **"+ New Case"** β buat test case pertama
5. Tambahkan **steps** β setiap step punya action (klik tombol, isi form, dll)
6. Buka **Settings β LLM**, simpan provider, lalu klik **Test connection**
7. Klik **"Run"** β test akan dijalankan otomatis
> π‘ **Baru pertama kali?** Lihat [demo interaktif](http://localhost:3000) setelah menjalankan `make demo` β sudah ada test case siap pakai.
---
## Cara Install (Detail)
### 1. π Install Lokal β Satu Command (Recommended untuk Pemula)
```bash
npx @suiflex/suitest onboard
```
**Yang dilakukan command ini:**
Mengunduh dan menginstall semua komponen yang dibutuhkan.
**Mengelola Suitest setelah install:**
| Mau ngapain? | Command |
|--------------|---------|
| Mulai Suitest | `suitest up` |
| Hentikan Suitest | `suitest down` |
| Generate/refresh API key | `suitest settings` |
| Ganti port | `suitest onboard --port 5000` |
### 2. π MCP Server Saja (Tanpa Install Platform)
Jika kamu hanya butuh MCP server untuk IDE (Claude Code, Cursor, Codex):
```bash
npx -y @suiflex/suitest-mcp
```
> π‘ **Apa itu MCP?** MCP (Model Context Protocol) adalah standar yang memungkinkan AI agent (seperti Claude Code) menjalankan test. Dengan MCP server, kamu bisa generate test dari repo code kamu.
**Contoh konfigurasi untuk Claude Code / Cursor (`.mcp.json`):**
```json
{
"mcpServers": {
"suitest": {
"command": "npx",
"args": ["-y", "@suiflex/suitest-mcp"],
"env": {
"SUITEST_API_URL": "http://localhost:4000",
"SUITEST_API_KEY": "sk_suitest_..."
}
}
}
}
```
> π‘ **`SUITEST_API_URL` dan `SUITEST_API_KEY` wajib.** Saat startup, MCP memverifikasi key dan berhenti jika LLM workspace belum divalidasi di Settings. Kredensial provider tetap berada di server Suitest.
### 3. π³ Full Platform β Docker Compose
Jika kamu ingin menjalankan semua komponen (API, web, runner, database, Redis, MinIO):
```bash
git clone https://github.com/suiflex/suitest && cd suitest
cp .env.example .env
```
**Edit `.env`** β isi super-admin:
```bash
SUITEST_AUTH_SECRET=<32-char-random-hex> # generate: openssl rand -hex 32
SUITEST_SUPERADMIN_EMAIL=admin@example.com
SUITEST_SUPERADMIN_PASSWORD=
```
**Jalankan:**
```bash
make docker-up # pull images dan boot stack
open http://localhost:3000
```
> π‘ **Apa itu Docker Compose?** Docker adalah cara menjalankan aplikasi dalam "container" (wadah terisolasi). Docker Compose memudahkan menjalankan banyak container sekaligus. Jika belum punya Docker, install dari [docker.com](https://docker.com).
### 4. βΈοΈ Kubernetes β Helm
Untuk deployment di Kubernetes cluster:
```bash
helm install suitest infra/helm/suitest -f infra/helm/suitest/values.yaml
```
> π‘ **Butuh:** cluster Kubernetes + Helm + PostgreSQL/Redis/object storage sebagai external services.
### 5. π§ Local Development (Developer)
Jika kamu ingin contribute ke Suitest:
```bash
# Butuh: Python 3.12 + uv, Node 20 + pnpm, PostgreSQL/Redis/MinIO
make setup # copy .env β install deps β run migrations β seed DB
make dev # start API (:4000) + web (:3000) + runner bersamaan
```
**Command berguna lainnya:**
| Command | Fungsi |
|---------|--------|
| `make dev-api` | Start API saja |
| `make dev-web` | Start web saja |
| `make dev-runner` | Start runner saja |
| `make migrate` | Jalankan database migration |
| `make seed` | Isi data demo |
| `make ci` | Lint + typecheck + test (sama seperti CI) |
| `make help` | Lihat semua command |
---
## Satu produk Suitest
Suitest adalah satu produk self-hosted gratis. Login, pengelolaan workspace, LLM
Settings, dan Test Case Management manual tetap tersedia sebelum LLM terhubung.
Eksekusi MCP, test run, dan fitur AI aktif setelah administrator menyimpan dan
memvalidasi LLM workspace di **Settings β LLM**. Ollama, llama.cpp, vLLM, LM
Studio, Anthropic, OpenAI, Gemini, Groq, OpenRouter, dan endpoint
OpenAI-compatible membuka fitur produk yang sama.
Suitest Cloud adalah layanan kolaborasi hosted oleh Suitest yang akan hadir.
Layanan ini terpisah dari provider model yang kamu hubungkan.
---
## Test Case Pertama
Dari install kosong, kamu bisa bootstrap dan menjalankan test browser nyata:
1. **Login**, lalu buat project, suite, dan test case manual.
2. Buka **Settings β LLM**, simpan provider, lalu klik **Test connection**.
3. Tambahkan step executable dengan MCP provider seperti `playwright-mcp`.
4. **Klik "Run"** untuk menjalankan setiap step melalui MCP.
5. Tinjau live status, evidence, dan defect di halaman run detail.
> π‘ **Seluruh perjalanan ini diuji dengan Playwright suite nyata** β `make e2e-real`
---
## Hubungkan LLM Workspace
LLM dikonfigurasi **per workspace dari web UI** β `Settings β LLM` β bukan dari env vars.
**Cara mengaktifkan:**
1. Buka **Settings β LLM**
2. Pilih provider (Anthropic, OpenAI, Gemini, Groq, Ollama, dll)
3. Masukkan API key (akan di-encrypt AES-GCM, tidak ditampilkan lagi)
4. Klik **Test connection**; validasi yang berhasil mengaktifkan MCP, run, dan AI
**Provider yang didukung:**
| Jenis provider | Provider |
|----------------|----------|
| **Hosted API** | Anthropic, OpenAI, Gemini, Groq, OpenRouter, DeepSeek, dll (100+ via LiteLLM) |
| **Model self-hosted** | Ollama, llama.cpp, vLLM, LM Studio |
| **Custom** | URL OpenAI-compatible (gateways, routers, proxies) |
> Tidak ada LLM call sampai workspace mengkonfigurasi provider.
---
## Repository Structure
```
suitest/
βββ README.md β kamu di sini
βββ CLAUDE.md β aturan coding untuk AI agent
βββ Makefile β semua dev command (make help)
β
βββ apps/
β βββ web/ β Frontend (Vite + React 19)
β βββ api/ β Backend (FastAPI Python)
β βββ runner/ β Worker yang menjalankan test via MCP
β
βββ packages/
β βββ agent/ β AI agent (LiteLLM + LangGraph)
β βββ db/ β Database (SQLAlchemy + Alembic)
β βββ mcp/ β MCP client + registry + bundled providers
β βββ lifecycle/ β MCP server: analyzeβgenerateβrunβpublish
β βββ mcp-npx/ β @suiflex/suitest-mcp (npm launcher)
β βββ suitest-npx/ β @suiflex/suitest (one-command launcher)
β βββ shared/ β Shared Pydantic schemas
β βββ core/ β Capability resolver, autonomy, crypto
β
βββ sdk/
β βββ python/ β Python SDK (REST client)
β βββ typescript/ β TypeScript SDK
β
βββ infra/
β βββ docker/ β Dockerfile per service
β βββ helm/suitest/ β Helm chart
β
βββ docs/ β Dokumentasi lengkap
```
---
## Dokumentasi
**Mulai dari [docs/ROADMAP.md](./docs/ROADMAP.md)** β single entry point untuk semua fitur.
| Dokumen | Topik | Untuk siapa? |
|---------|-------|-------------|
| [ROADMAP.md](./docs/ROADMAP.md) | Milestones M0 β M15 + build status | Developer yang mau contribute |
| [PRODUCT.md](./docs/PRODUCT.md) | Vision, personas, user journeys | Product Manager, QA Lead |
| [ARCHITECTURE.md](./docs/ARCHITECTURE.md) | Stack, services, topology | Developer, DevOps |
| [DATA_MODEL.md](./docs/DATA_MODEL.md) | Database schema + entity diagram | Backend Developer |
| [API.md](./docs/API.md) | REST + WebSocket contract | Frontend Developer, API Consumer |
| [UI_SPEC.md](./docs/UI_SPEC.md) | Per-screen component spec | Frontend Developer, Designer |
| [MCP_PLUGINS.md](./docs/MCP_PLUGINS.md) | MCP registry + routing + security | Developer, DevOps |
| [GENERATORS.md](./docs/GENERATORS.md) | Generator design (deterministic + LLM) | QA Engineer, Developer |
| [AUTONOMY.md](./docs/AUTONOMY.md) | Per-workspace autonomy dial | Admin, QA Lead |
| [AI_AGENT.md](./docs/AI_AGENT.md) | Prompts + LangGraph + tool registry | AI/ML Engineer |
| [BLACKBOX_UI_TESTING.md](./docs/BLACKBOX_UI_TESTING.md) | Blackbox DOM engine | QA Engineer (test dari URL saja) |
| [DESKTOP_TESTING.md](./docs/DESKTOP_TESTING.md) | Desktop targets (computer-use, Electron, Slint) | QA Engineer (test desktop app) |
| [DEPLOYMENT.md](./docs/DEPLOYMENT.md) | Compose / Helm / air-gapped | DevOps, SRE |
| [TROUBLESHOOTING.md](./docs/TROUBLESHOOTING.md) | FAQ teknis & solve masalah umum | Semua |
---
## FAQ (Pertanyaan Umum)
### β Apakah Suitest gratis?
**Ya.** Suitest open-source (Apache 2.0 License). Tidak ada biaya langganan. Kamu bisa self-host tanpa batas.
### β Apakah saya harus bisa coding untuk pakai Suitest?
**Tidak.** Buat dan kelola test case melalui web dashboard. Eksekusinya membutuhkan LLM workspace yang tervalidasi dan MCP provider.
### β Apakah saya butuh AI/LLM untuk pakai Suitest?
**Untuk TCM manual, tidak.** Eksekusi MCP, test run, dan fitur AI membutuhkan LLM workspace yang tervalidasi.
### β Bagaimana cara install Suitest?
Lihat [Mulai dalam 3 Langkah](#mulai-dalam-3-langkah) di atas. Cukup satu command: `npx @suiflex/suitest onboard`
### β Apakah data saya aman?
**Ya.** Suitest self-host β data tidak pernah keluar dari server kamu. API key di-encrypt AES-GCM. Tidak ada telemetry wajib.
### β Apakah Suitest bisa test selain browser?
**Ya.** Suitest bisa test: browser (Playwright), API (HTTP/GraphQL/gRPC), database (Postgres/Mongo/MySQL), mobile (Appium), desktop (Slint, Tauri), infra (Kubernetes), dan MCP server lainnya.
### β Bagaimana jika saya stuck / ada error?
Lihat [docs/TROUBLESHOOTING.md](./docs/TROUBLESHOOTING.md) atau buka issue di [GitHub Issues](https://github.com/suiflex/suitest/issues).
### β Bagaimana cara contribute?
Baca [CONTRIBUTING.md](./CONTRIBUTING.md). Singkatnya:
1. Baca [CLAUDE.md](./CLAUDE.md) β aturan coding
2. Pick item di [ROADMAP.md](./docs/ROADMAP.md) yang belum selesai
3. Branch: `feat/-`
4. Commit: conventional commits (`feat(api): ...`)
5. Pastikan `make ci` pass sebelum push
### β Apakah ada demo yang bisa saya coba?
**Ya.** Jalankan `make demo` β buka `http://localhost:3000` β login `demo@suitest.dev` / `demo1234`
### β Port 4000 sudah dipakai, bagaimana?
Gunakan flag `--port`: `npx @suiflex/suitest onboard --port 5000`
### β Apakah Suitest bisa dijalankan di Windows?
**Ya.** Suitest mendukung Windows, macOS, dan Linux. Pastikan Node.js β₯ 18 dan uv terinstall.
---
## Perbandingan dengan Tools Lain
| Fitur | TestRail | Playwright | TestSprite | **Suitest** |
|-------|:--------:|:----------:|:----------:|:-----------:|
| Manual Test Case Management | β
| β | Partial | β
|
| Automated Runner | β | β
| β
| β
|
| Universal MCP Plugin Layer | β | β | Partial | β
|
| AI Generation / Diagnosis | β | β | β
| β
|
| Self-host | β
| β
| β | β
|
| BYO LLM (100+ providers) | n/a | n/a | β Locked | β
|
| Air-gapped | β
| β
| β | β
(model self-hosted) |
| Open Source | β | Runner only | β | β
|
---
## Release Notes
Seluruh workspace berbagi satu versi dan rilis lewat satu tag `vX.Y.Z`. Dua
package yang kamu install langsung:
| Package | Fungsi | Update dengan |
|---------|--------|---------------|
| [`@suiflex/suitest`](https://www.npmjs.com/package/@suiflex/suitest) (launcher) | Platform lokal: web dashboard + semua Python wheels | `npx @suiflex/suitest@latest onboard` |
| [`@suiflex/suitest-mcp`](https://www.npmjs.com/package/@suiflex/suitest-mcp) (MCP server) | IDE tools + lifecycle engine | `npx -y @suiflex/suitest-mcp@latest` |
**Release notes:** [suitest.suiflex.dev/docs/changelog](https://suitest.suiflex.dev/docs/changelog/)
---
## Contributing
1. **Baca [CLAUDE.md](./CLAUDE.md)** β aturan coding yang berlaku (termasuk untuk AI coding agent)
2. **Pick item berikutnya di [docs/ROADMAP.md](./docs/ROADMAP.md)** β satu PR = satu acceptance criterion
3. **Branch:** `feat/-`. **Commits:** conventional commits (`feat(api): ...`)
4. **Sebelum push:** `make ci` harus pass (ruff + mypy strict, tsc strict + ESLint, pytest async + vitest)
Lihat juga [CONTRIBUTING.md](./CONTRIBUTING.md), [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md), dan [SECURITY.md](./SECURITY.md).
---
## License
Apache License 2.0. See [LICENSE](./LICENSE).
## Acknowledgments
Built on [Model Context Protocol](https://modelcontextprotocol.io) (Anthropic), [LiteLLM](https://github.com/BerriAI/litellm) (BerriAI), [LangGraph](https://langchain-ai.github.io/langgraph/) (LangChain), [`@ai-sdk/react`](https://sdk.vercel.ai/docs) + assistant-ui (Vercel), shadcn/ui, TanStack, and the FastAPI / SQLAlchemy / Pydantic ecosystems.
---
Suitest is a Suiflex project β powered by Suiflex.