Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add vuralserhat86/antigravity-agentic-skills --skill "testing"
Install specific skill from multi-skill repository
# Description
Kapsamlı test stratejileri ve 2025 test araçları. Unit, integration, e2e ve visual testing.
# SKILL.md
name: testing
router_kit: FullStackKit
description: Kapsamlı test stratejileri ve 2025 test araçları. Unit, integration, e2e ve visual testing.
metadata:
skillport:
category: quality
tags: [architecture, automation, best practices, clean code, coding, collaboration, compliance, debugging, design patterns, development, documentation, efficiency, git, optimization, productivity, programming, project management, quality assurance, refactoring, software engineering, standards, testing, utilities, version control, workflow] - quality-assurance
Testing Skill - Kalite Güvence ve Test Stratejileri
Yazılım kalitesini sağlamak için sistematik test yaklaşımları.
2025 modern test araçları ve piramit test stratejisi.
📋 İçindekiler
- Test Piramidi
- Unit Testing (Jest)
- Integration Testing
- E2E Testing (Playwright)
- Visual Regression Testing
- TDD (Test Driven Development)
- Test Yazım Kuralları
- Kontrol Listesi
- Yapma Listesi
- Mutlaka Yap Listesi
1. Test Piramidi
/ \
/E2E\ ← En az (Yavaş, Pahalı, Kırılgan)
/-----\
/ INTEGR\ ← Orta (Hız ve Güven dengesi)
/---------\
/ UNIT \ ← En çok (Hızlı, Ucuz, İzole)
/-------------\
| Tip | Kapsam | Hız | Maliyet |
|---|---|---|---|
| Unit | Fonksiyon/Component | ⚡⚡⚡ | 💸 |
| Integration | DB/API/Module arası | ⚡⚡ | 💸💸 |
| E2E | Tam kullanıcı akışı | ⚡ | 💸💸💸 |
2. Unit Testing (Jest)
2.1 Temel Test Yapısı
import { sum } from './math';
describe('sum function', () => {
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
test('handles zero correctly', () => {
expect(sum(0, 0)).toBe(0);
});
});
2.2 Mocking
// Service mock'lama
jest.mock('./apiService');
import { fetchData } from './apiService';
test('should use mocked data', async () => {
(fetchData as jest.Mock).mockResolvedValue({ id: 1, name: 'Test' });
const data = await getServiceData();
expect(data.name).toBe('Test');
});
3. Integration Testing
3.1 API Integration
import request from 'supertest';
import app from './app';
describe('POST /api/users', () => {
test('should create a new user and return it', async () => {
const response = await request(app)
.post('/api/users')
.send({ email: '[email protected]', name: 'Test' });
expect(response.status).toBe(201);
expect(response.body.email).toBe('[email protected]');
});
});
4. E2E Testing (Playwright)
4.1 Login Akışı
import { test, expect } from '@playwright/test';
test('user can login successfully', async ({ page }) => {
await page.goto('/login');
await page.fill('input[name="email"]', '[email protected]');
await page.fill('input[name="password"]', 'password123');
await page.click('button[type="submit"]');
await expect(page).toHaveURL('/dashboard');
await expect(page.locator('h1')).toContainText('Hoş Geldiniz');
});
5. Visual Regression Testing
// Playwright visual test
test('dashboard visual comparison', async ({ page }) => {
await page.goto('/dashboard');
await expect(page).toHaveScreenshot('dashboard.png');
});
6. TDD (Test Driven Development)
- RED: Testi yaz ve başarısız olduğunu gör.
- GREEN: Testin geçmesi için gereken minimum kodu yaz.
- REFACTOR: Kodu ve testi temizle, standartlara uygun hale getir.
7. Test Yazım Kuralları
- AAA Pattern: Arrange, Act, Assert.
- Isolasyon: Testler birbirinden bağımsız olmalı.
- Hız: Unit testler çok hızlı çalışmalı.
- Readable: Test ismi neyi test ettiğini açıkça söylemeli.
- Deterministic: Aynı girdiyle her zaman aynı sonuç.
🔄 Workflow
Kaynak: Spotify's Testing Pyramid & Playwright Best Practices
Aşama 1: Strategy & Test Plan
- [ ] Define Coverage Scope: Kritik kullanıcı akışlarını ve test gerektiren logic'leri belirle.
- [ ] Choose Level: Test piramidine göre (Unit -> Integration -> E2E) doğru test seviyesini seç.
- [ ] Infrastructure Setup: Vitest/Jest veya Playwright ortamını yapılandır, gerekli mock'ları hazırla.
Aşama 2: Implementation & Interaction
- [ ] Unit Tests: Fonksiyonları ve UI bileşenlerini izole (Stub/Mock kullanarak) test et.
- [ ] Integration Flows: Servislerin ve veritabanı/API katmanının uyumunu doğrula.
- [ ] E2E Scenarios: Playwright ile gerçek tarayıcı üzerinde "Login -> Checkout" gibi tam akışları simüle et.
Aşama 3: Verification & CI/CD
- [ ] Coverage Audit: Test kapsamını (Line/Branch coverage) analiz et ve boşlukları doldur.
- [ ] Visual Regressions: Arayüzdeki beklenmedik değişiklikleri "Snapshot Testing" ile yakala.
- [ ] Automated Pipeline: Tüm testlerin CI/CD aşamasında (Check-in'den önce) çalıştığından emin ol.
Kontrol Noktaları
| Aşama | Doğrulama |
|---|---|
| 1 | Testler "Flaky" (bazen geçen bazen kalan) özellikten arındırıldı mı? |
| 2 | Mock veriler gerçek dünya senaryolarını (Edge cases) yansıtıyor mu? |
| 3 | E2E testleri production ortamını birebir simüle ediyor mu? |
Testing v2.5 - With Workflow
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.