Skip to content

bg-playground/BGSTM

Repository files navigation

BGSTM - Professional Software Testing Framework

Backend CI Frontend CI Docker Build E2E Tests

BGSTM (Better Global Software Testing Methodology) is a comprehensive, professional software testing framework adaptable to various software development methodologies including Agile, Scrum, and Waterfall.

🎯 Overview

This framework provides a structured approach to software testing through six core phases, with detailed guidance for implementing testing practices across different project methodologies. It serves as both a knowledge base for testing professionals and a foundation for building multi-platform testing management applications.

πŸ“š Documentation

πŸ”„ Six Phases of Software Testing

  1. Test Planning - Define scope, strategy, resources, and timelines
  2. Test Case Development - Design and document test scenarios and cases
  3. Test Environment Preparation - Set up infrastructure and tools
  4. Test Execution - Execute tests and manage defects
  5. Test Results Analysis - Analyze outcomes and identify patterns
  6. Test Results Reporting - Communicate findings to stakeholders

πŸ”§ Methodology Guides

πŸ“‹ Templates & Resources

πŸš€ Key Features

  • βœ… Methodology Agnostic - Adaptable to Agile, Scrum, Waterfall, and hybrid approaches
  • βœ… Comprehensive Coverage - End-to-end testing process from planning to reporting
  • βœ… Professional Standards - Industry best practices and quality standards
  • βœ… Practical Templates - Ready-to-use templates for immediate implementation
  • βœ… Scalable - Suitable for projects of all sizes
  • βœ… App-Ready - Foundation for building testing management tools

πŸ’‘ Use Cases

For Testing Teams

  • Implement structured testing processes
  • Improve test coverage and quality
  • Standardize testing practices
  • Reduce defects and improve software quality

For Project Managers

  • Plan testing activities and resources
  • Track testing progress and metrics
  • Manage testing risks
  • Ensure quality standards

For Organizations

  • Establish testing standards
  • Train testing teams
  • Improve testing maturity
  • Build custom testing tools

For Developers

  • Build multi-platform testing management applications
  • Integrate testing into development workflows
  • Automate testing processes
  • Create testing dashboards and reports

πŸ› οΈ Building a Multi-Platform App

This framework can serve as the foundation for building comprehensive testing management applications. See our Multi-Platform App Integration Guide for:

  • Recommended technology stacks
  • Application architecture
  • Core features and modules
  • API design
  • Development roadmap
  • Implementation considerations

πŸš€ Quick Start

Get a fully working demo environment running with a single command:

git clone https://github.com/bg-playground/BGSTM.git
cd BGSTM
./setup.sh        # macOS/Linux
setup.bat          # Windows

The setup script will:

  • Check for Docker / Docker Compose
  • Create .env from .env.example automatically
  • Build and start all services (backend, frontend, Postgres)
  • Wait for every service to be healthy
  • Optionally load sample data
  • Open the browser to http://localhost
Service URL
Frontend http://localhost
Backend API http://localhost:8000
API Docs http://localhost:8000/docs
docker compose down      # stop services (or: docker-compose down)
docker compose logs -f   # view logs   (or: docker-compose logs -f)

πŸ“– Framework Quick Reference

New to BGSTM?

πŸ‘‰ Start Here: Getting Started Guide - Complete walkthrough for beginners

Quick Reference:

  1. Choose Your Methodology: Review methodology guides to select the best approach
  2. Understand the Phases: Read through the six testing phases
  3. Use Templates: Download and customize templates for your project
  4. Implement: Apply the framework to your testing processes
  5. Build (Optional): Use as foundation for custom testing tools

πŸ› οΈ Manual Setup

Frontend + Backend (Docker Compose)

# Clone the repository
git clone https://github.com/bg-playground/BGSTM.git
cd BGSTM

# Copy environment file
cp .env.example .env

# Start all services (database, backend, frontend)
docker-compose up -d

# Access the application
# Frontend: http://localhost
# Backend API: http://localhost:8000
# API Documentation: http://localhost:8000/docs

Frontend Development

To run the frontend locally for development:

cd frontend

# Install dependencies
npm install

# Start development server
npm run dev

# Access at http://localhost:3000

Backend Development

To run the backend locally:

cd backend

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Set up database (PostgreSQL)
# Update DATABASE_URL in .env file

# Run migrations
alembic upgrade head

# Start server
uvicorn app.main:app --reload --port 8000

πŸ§ͺ Testing

Backend Unit Tests

cd backend
pytest                     # Run all backend tests
pytest -v                  # Verbose output
pytest --cov=app           # With coverage report

Or inside Docker:

docker-compose exec backend pytest

Frontend Lint & Type Check

cd frontend
npm run lint               # ESLint
npm run type-check         # TypeScript type checking

End-to-End Tests (Playwright)

The E2E test suite uses Playwright to test critical flows against a fully dockerized stack (PostgreSQL + FastAPI backend + React frontend).

Quick start with Docker Compose:

# 1. Start the test environment (builds & seeds the database)
docker compose -f docker-compose.test.yml up -d

# 2. Wait for services to be healthy (~60-90s)
curl -sf http://localhost:8001/health   # backend
curl -sf http://localhost:3001          # frontend

# 3. Install Playwright (first time only)
cd frontend
npm ci
npx playwright install --with-deps chromium

# 4. Run the tests
PLAYWRIGHT_BASE_URL=http://localhost:3001 \
E2E_ADMIN_EMAIL=admin@test.com \
E2E_ADMIN_PASSWORD=password123 \
npx playwright test

# 5. View the HTML report
npx playwright show-report

# 6. Tear down
cd ..
docker compose -f docker-compose.test.yml down -v

Test suites:

Spec File Coverage
auth.spec.ts Registration, login, logout, protected routes
suggestions.spec.ts Suggestion dashboard, filters, accept/reject
crud.spec.ts Requirements & test case CRUD (create, edit, delete)
traceability.spec.ts Traceability matrix data, filtering, export buttons
exports.spec.ts CSV and PDF export downloads
rbac.spec.ts Role-based access: viewer, reviewer, admin
notifications.spec.ts Notification bell, mark-as-read, lifecycle

Useful commands:

npx playwright test --headed           # Watch in browser
npx playwright test --ui               # Interactive UI mode
npx playwright test auth.spec.ts       # Run a single spec
npx playwright test --project=chromium # Chromium only (default in CI)

Environment variables:

Variable Default Description
PLAYWRIGHT_BASE_URL http://localhost:3000 Frontend URL
E2E_ADMIN_EMAIL admin@test.com Seeded admin email
E2E_ADMIN_PASSWORD password123 Seeded admin password

Note: In CI, the E2E tests run automatically via the E2E Tests workflow on every push/PR to main that touches frontend/, backend/, or docker-compose.test.yml.

For full details, see the E2E Test README.

🀝 Contributing

Contributions are welcome! Whether you want to:

  • Improve documentation
  • Add examples
  • Share templates
  • Report issues
  • Suggest features

Please see our Contributing Guidelines for details on how to get started.

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ”— Related Resources

πŸ“ž Support

For questions, suggestions, or discussions, please open an issue in this repository.


Made with ❀️ for the software testing community

About

An all encompassing software testing approach, functional across a variety of software delivery methodologies, including Scrum, Agile and Waterfall.

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors