testing-procedures

bartoszwarzocha's avatarfrom bartoszwarzocha

Testing procedures for Kalahari project. Use for running tests and analyzing results.

⭐0stars🔀0forks📁View on GitHub🕐Updated Jan 1, 2026

When & Why to Use This Skill

This Claude skill provides a comprehensive framework for managing testing procedures within the Kalahari project. It streamlines the software quality assurance process by automating build commands, test execution, and result analysis across Windows and Linux platforms. By integrating Catch2 BDD-style testing and structured reporting, it helps developers maintain high code quality and prevent regressions throughout the development lifecycle.

Use Cases

  • Automated Test Execution: Running Catch2-based BDD tests on multiple operating systems to validate project builds and core logic.
  • Regression Testing: Utilizing the post-implementation checklist to ensure that new feature updates do not negatively impact existing functionality.
  • Structured Result Reporting: Generating standardized JSON-formatted test reports to provide clear, actionable feedback on test passes and failures.
  • Manual Quality Assurance: Following guided procedures for UI verification, user interaction flows, and responsiveness checks that cannot be fully automated.
  • Troubleshooting & Debugging: Identifying and resolving common build failures, dependency issues, and flaky tests using the built-in troubleshooting guide.
nametesting-procedures
descriptionTesting procedures for Kalahari project. Use for running tests and analyzing results.

Testing Procedures

1. Build Commands

Windows

scripts/build_windows.bat Debug

Linux

scripts/build_linux.sh

NEVER

  • Run cmake directly
  • Use WSL for Windows builds

2. Test Execution

Windows

./build-windows/bin/kalahari-tests.exe

Linux

./build-linux/bin/kalahari-tests

3. Test Framework

  • Framework: Catch2 v3
  • Style: BDD (Behavior-Driven Development)
  • Location: tests/

4. Result Interpretation

Output format

[PASS] TestName
[FAIL] TestName - expected X, got Y

Summary

===============================================
All tests passed (42 assertions in 15 test cases)

or

===============================================
test cases: 15 | 14 passed | 1 failed
assertions: 42 | 40 passed | 2 failed

5. What to Check

After implementation

  • All existing tests still pass?
  • No regressions (previously passing tests)?
  • New tests added for new functionality?

Test coverage

  • Core business logic tested?
  • Edge cases covered?
  • Error handling tested?

6. Manual Testing

When needed

  • UI changes (visual verification)
  • User interaction flows
  • Theme switching
  • Panel resizing/docking

Steps

  1. Run application: ./build-windows/bin/kalahari.exe
  2. Test the specific feature
  3. Verify visual appearance
  4. Check responsiveness

7. Reporting Results

Pass

{
  "decision": "pass",
  "tests": "42/42 passed",
  "summary": "All tests pass"
}

Fail

{
  "decision": "fail",
  "tests": "40/42 passed",
  "failures": [
    "TestSettings::save - expected true, got false",
    "TestDocument::load - file not found"
  ],
  "summary": "2 tests failed"
}

8. Common Issues

Build fails

  1. Check CMake output for errors
  2. Verify vcpkg dependencies
  3. Check for missing includes

Tests fail

  1. Read failure message carefully
  2. Check if test assumptions still valid
  3. Verify test data/fixtures

Flaky tests

  1. Check for timing dependencies
  2. Look for shared state between tests
  3. Verify test isolation