Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

666 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

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 plus an ETL semantic validation phase, 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

πŸ”„ BGSTM Testing Phases

  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
  7. ETL Semantic Validation - Validate ETL semantics using NATAegisFlow outputs

πŸ”§ Methodology Guides

πŸ“‹ Templates & Resources

  • Templates - Ready-to-use templates for test plans, test cases, reports, and NATAegisFlow artifact workflows
  • Examples - Practical examples and sample artifacts
  • Multi-Platform App Guide - Build testing management applications

πŸš€ 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
  6. Release Readiness: Use the Release Readiness Dashboard for Go/Caution/No-Go checks
  7. Quality Trends: Use the Quality KPI Dashboard for defect, pass-rate, module, and automation trend visuals

πŸ› οΈ 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
release-readiness.spec.ts Release readiness status banner, sign-off, and markdown export
quality-dashboard.spec.ts Quality KPI charts, window toggle, and release-readiness cross-link

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.

πŸ“ API Contracts & Specs

Spec Status Tracking
External Results v1 Draft BGSTM#299

Related projects

A monorepo of opinionated, domain-specific Playwright automation frameworks with native BGSTM traceability. Apache-2.0. Public.

Unlike generic Playwright starters, each domain pack ships with:

  • Pre-built page objects for the common entities of that domain (e.g. CRM: Lead, Opportunity, Account)
  • Realistic test data factories for fast, repeatable test setup
  • Multi-step workflow helpers that model real business flows
  • BGSTM-native reporting β€” every test result, step, and artifact is automatically linked back to a BGSTM requirement and test case via the Reporter API

Packages

Package Description Status
@bgstm/playwright-core Shared fixtures, base POM, BGSTM reporter 🚧 Stub
@bgstm/domain-crm CRM domain pack (Leads, Opportunities, Accounts) 🚧 Stub
@bgstm/domain-accounting Accounting domain pack (Ledgers, Journals, Reconciliations) 🚧 Stub

Linking tests to BGSTM requirements

The BGSTM reporter reads bgstm:requirement annotations from each test and forwards results to BGSTM:

import { test } from '@playwright/test';

test(
  'login redirects to dashboard',
  { annotation: { type: 'bgstm:requirement', description: 'REQ-LOGIN-001' } },
  async ({ page }) => {
    await page.goto('/login');
  },
);

Architecture

BGSTM            ← methodology + traceability platform (this repo, open-source)
   β–²
   β”‚ reports via the BGSTM Reporter API
   β”‚
bgstm-playwright-frameworks  ← Playwright execution scaffolding (open-source, Apache-2.0)
   β–²
   β”‚ runs at scale on
   β”‚
NAT              ← managed execution + AI-adaptive testing (commercial, https://nat-testing.io)

πŸ’Ό Looking for regulated-industry packs (Healthcare/HIPAA, Financial/SOX, GxP)? Those are available as part of NAT.

🀝 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

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages