Test Master
Master your testing strategy with comprehensive automation and integration support
Test Master is an AI skill that provides comprehensive testing strategies and implementation patterns for software projects across all testing levels. It covers test pyramid design, unit testing best practices, integration test patterns, end-to-end test architecture, mutation testing, and test maintenance strategies that build confidence in software quality.
What Is This?
Overview
Test Master delivers systematic testing frameworks covering the complete testing spectrum. It addresses test pyramid strategy with appropriate investment at each level, unit testing patterns including mocking, stubbing, and assertion strategies, integration testing that verifies component interactions and data flow, end-to-end testing for critical user journeys with reliability patterns, mutation testing to validate that test suites actually catch real bugs, test data management strategies for reproducible test environments, and test maintenance practices that keep suites valuable as code evolves.
Who Should Use This
This skill serves developers establishing testing practices for new projects, QA engineers designing comprehensive test strategies, team leads defining testing standards and coverage targets, and architects evaluating test infrastructure requirements.
Why Use It?
Problems It Solves
Teams without testing strategy either write too few tests and ship bugs, or write too many slow tests and face long CI feedback cycles. Tests that pass but do not actually validate behavior give false confidence. Unmaintained test suites accumulate failures that teams ignore, making the entire suite useless.
Core Highlights
The skill designs test strategies based on risk analysis, investing more testing effort in critical paths. Unit test patterns produce fast, isolated tests that pinpoint failures. Integration tests verify real interactions without full environment setup. Mutation testing reveals weaknesses in test suites that coverage metrics miss.
How to Use It?
Basic Usage
import pytest
from unittest.mock import AsyncMock, patch
class TestOrderService:
@pytest.fixture
def order_service(self):
repo = AsyncMock()
payment = AsyncMock()
return OrderService(repo, payment), repo, payment
@pytest.mark.asyncio
async def test_place_order_charges_payment(self, order_service):
service, repo, payment = order_service
payment.charge.return_value = PaymentResult("txn_123", "success")
repo.save.return_value = Order(id=1, status="confirmed")
result = await service.place_order(
customer_id=42,
items=[{"product_id": 1, "quantity": 2, "price": 29.99}]
)
payment.charge.assert_called_once_with(amount=59.98)
repo.save.assert_called_once()
assert result.status == "confirmed"
@pytest.mark.asyncio
async def test_place_order_rolls_back_on_payment_failure(self, order_service):
service, repo, payment = order_service
payment.charge.side_effect = PaymentError("declined")
with pytest.raises(PaymentError):
await service.place_order(customer_id=42, items=[{"product_id": 1}])
repo.save.assert_not_called()Real-World Examples
import pytest
from testcontainers.postgres import PostgresContainer
@pytest.fixture(scope="session")
def database():
with PostgresContainer("postgres:16") as postgres:
engine = create_engine(postgres.get_connection_url())
Base.metadata.create_all(engine)
yield engine
@pytest.fixture
def db_session(database):
connection = database.connect()
transaction = connection.begin()
session = Session(bind=connection)
yield session
session.close()
transaction.rollback()
connection.close()
def test_order_persists_with_items(db_session):
repo = OrderRepository(db_session)
order = Order(customer_id=1, items=[
OrderItem(product_id=10, quantity=2, price=29.99)
])
saved = repo.save(order)
fetched = repo.find_by_id(saved.id)
assert fetched is not None
assert len(fetched.items) == 1
assert fetched.items[0].price == 29.99Advanced Tips
Use mutation testing tools like mutmut or Stryker to verify that your tests actually detect code changes. Implement test factories that generate realistic test data with sensible defaults. Separate fast unit tests from slow integration tests using markers so developers can run quick feedback loops locally.
When to Use It?
Use Cases
Use Test Master when establishing a testing strategy for a new project, when improving test quality on a project where tests pass but bugs still reach production, when optimizing CI test execution time by restructuring the test suite, or when training a team on modern testing practices.
Related Topics
Pytest and Jest test frameworks, test containers for integration testing, mocking libraries, CI/CD test pipeline optimization, and code coverage analysis tools all complement comprehensive testing strategies.
Important Notes
Requirements
A test framework appropriate for the project's language and ecosystem. CI infrastructure for automated test execution. Agreement on coverage targets and testing standards across the team.
Usage Recommendations
Do: test behavior and outcomes rather than implementation details for resilient tests. Use test fixtures and factories to reduce setup duplication. Run the fastest tests first in CI for quicker feedback.
Don't: aim for 100% code coverage as a goal, since high coverage does not guarantee meaningful tests. Mock everything in unit tests to the point where you are only testing the mock configuration. Ignore flaky tests, as they erode trust in the entire test suite.
Limitations
Test suites cannot prove the absence of bugs, only verify specific scenarios. Integration tests with external dependencies introduce environmental variability. Test maintenance requires ongoing effort as the application evolves, and neglected tests become liabilities rather than assets.
More Skills You Might Like
Explore similar skills to enhance your workflow
Identitycheck Automation
Automate Identitycheck tasks via Rube MCP (Composio)
Doppler Secretops Automation
Automate Doppler Secretops tasks via Rube MCP (Composio)
Clinical Decision Support
Clinical Decision Support automation and integration
Vercel Automation
Automate Vercel tasks via Rube MCP (Composio): manage deployments, domains, DNS, env vars, projects, and teams. Always search tools first for current
Activecampaign Automation
Automate ActiveCampaign tasks via Rube MCP (Composio): manage contacts, tags, list subscriptions, automation enrollment, and tasks. Always search tool
Discord
Use when you need to control Discord from Clawdbot via the discord tool: send messages, react