From 2bd66dabd0890afe12e8bc018b162e741ee82c87 Mon Sep 17 00:00:00 2001 From: Thunder22020 Date: Sun, 20 Jul 2025 16:02:29 +0300 Subject: [PATCH] md files check --- docs/architecture/architecture.md | 74 ++++---- docs/automation/continuous-integration.md | 172 +++++++++--------- .../user-acceptance-tests.md | 140 +++++++------- 3 files changed, 193 insertions(+), 193 deletions(-) diff --git a/docs/architecture/architecture.md b/docs/architecture/architecture.md index 5923fe7..5752697 100644 --- a/docs/architecture/architecture.md +++ b/docs/architecture/architecture.md @@ -1,37 +1,37 @@ -## Tech Stack - -This project follows a client-server architecture with separate layers for frontend, backend API, and an AI service. - -| Layer | Technologies | Purpose | -|---------------|----------------------------------------------|------------------------------------------------------------| -| Frontend | Flutter 3.32.4 (Dart 3.8.1) | Cross-platform UI for test creation and result display | -| Backend (API) | Go 1.24, Clean Architecture | REST API, routing, business logic | -| AI Service | Python 3.11, FastAPI, OpenAI SDK | LLM-based test generation and natural language processing | -| DevOps | Docker, Docker Compose, GitHub Actions | Containerization, local development, CI/CD | -| Hosting | VPS (Ubuntu 22.04), nginx | Production deployment and reverse proxy | -| Testing | Go test, Pytest, Flutter test | Unit, integration, and end-to-end testing | - ---- - -### Technology Rationale - -#### **Go (Backend API)** -- High performance and static binaries simplify deployment. -- Clean Architecture enforces separation of concerns and testability. -- Built-in support for concurrency and scalability. - -#### **Python + FastAPI (AI Layer)** -- Easy integration with OpenAI SDK and external APIs. -- FastAPI offers high performance with simple async support. -- Ideal for LLM-based services and prototyping. - -#### **Flutter (Frontend)** -- Single codebase for web and mobile. -- Rapid UI development with strong test support. -- Dart offers good performance and modern tooling. - - -#### **Docker + GitHub Actions** -- Consistent environments across dev and prod. -- Automated CI/CD pipelines, testing, and deployment. - +## Tech Stack + +This project follows a client-server architecture with separate layers for frontend, backend API, and an AI service. + +| Layer | Technologies | Purpose | +|---------------|----------------------------------------------|------------------------------------------------------------| +| Frontend | Flutter 3.32.4 (Dart 3.8.1) | Cross-platform UI for test creation and result display | +| Backend (API) | Go 1.24, Clean Architecture | REST API, routing, business logic | +| AI Service | Python 3.11, FastAPI, OpenAI SDK | LLM-based test generation and natural language processing | +| DevOps | Docker, Docker Compose, GitHub Actions | Containerization, local development, CI/CD | +| Hosting | VPS (Ubuntu 22.04), nginx | Production deployment and reverse proxy | +| Testing | Go test, Pytest, Flutter test | Unit, integration, and end-to-end testing | + +--- + +### Technology Rationale + +#### **Go (Backend API)** +- High performance and static binaries simplify deployment. +- Clean Architecture enforces separation of concerns and testability. +- Built-in support for concurrency and scalability. + +#### **Python + FastAPI (AI Layer)** +- Easy integration with OpenAI SDK and external APIs. +- FastAPI offers high performance with simple async support. +- Ideal for LLM-based services and prototyping. + +#### **Flutter (Frontend)** +- Single codebase for web and mobile. +- Rapid UI development with strong test support. +- Dart offers good performance and modern tooling. + + +#### **Docker + GitHub Actions** +- Consistent environments across dev and prod. +- Automated CI/CD pipelines, testing, and deployment. + diff --git a/docs/automation/continuous-integration.md b/docs/automation/continuous-integration.md index e0601ee..9e32a85 100644 --- a/docs/automation/continuous-integration.md +++ b/docs/automation/continuous-integration.md @@ -1,86 +1,86 @@ -# Continuous Integration Guide - -This document describes the automated CI pipeline for the project, including the tools used and steps executed on each commit and pull request. - ---- - -## Overview - -Our CI system ensures that every code change is automatically built, tested, and validated before being merged into the main branch. - -CI is powered by **GitHub Actions** and defined in the following files: - -- `.github/workflows/flutter_ci.yml` -- `.github/workflows/go-ci.yml` -- `.github/workflows/python-ci.yml` - ---- - -## Tools Used - -| Tool | Purpose | -|-----------------|----------------------------------| -| GitHub Actions | CI runner | -| Docker | Containerized build/test | -| go test,golangCI| Backend unit tests and linting | -| Flutter | Frontend build & widget testing | -| pytest | Python backend testing | - ---- - -## Pipeline Steps - -### Backend (Go) -1. Run `go mod tidy` -2. Run `go test ./...` - -### Frontend (Flutter) -1. Run `flutter pub get` -2. Run `flutter test` - -### Python (LLM Service) -1. Run `black --check` -2. Run `isort --check-only` -3. Run `pytest` - ---- - -### Continuous integration - -Flutter: -- Used in-build flutter tools for testing -- Implemented unit-tests for widgets -- `frontend/test` contains all tests - -Flutter CI: -- Link to CI: https://github.com/cQu1x/Autotester/blob/main/.github/workflows/flutter_ci.yml -- Downloads flutter -- Runs tests -- Creates build for web application (important for code updates) - -Golang: - - Used in-build golang tools for testing - - Implemented unit test for cookies and validators. Implemented integration tests for handlers - - `tests/` contains all tests - -Golang CI: - - Link to CI: https://github.com/cQu1x/Autotester/actions/workflows/go-ci.yml - - Downloads Golang - - Runs tests and linting - -Python: - - Used python libraries (pytest) for testing - - Implemented tests for parser and LLM-connection - - `/test_1.py` contains all tests - -Python CI: - - Link to CI: https://github.com/cQu1x/Autotester/actions/workflows/python-ci.yml - - Downloads Python - - Runs tests - -## Triggers - -CI workflows run on: - -- Every pull request to `main, go-backend, fontend_branch` -- Manual dispatch via GitHub UI +# Continuous Integration Guide + +This document describes the automated CI pipeline for the project, including the tools used and steps executed on each commit and pull request. + +--- + +## Overview + +Our CI system ensures that every code change is automatically built, tested, and validated before being merged into the main branch. + +CI is powered by **GitHub Actions** and defined in the following files: + +- `.github/workflows/flutter_ci.yml` +- `.github/workflows/go-ci.yml` +- `.github/workflows/python-ci.yml` + +--- + +## Tools Used + +| Tool | Purpose | +|-----------------|----------------------------------| +| GitHub Actions | CI runner | +| Docker | Containerized build/test | +| go test,golangCI| Backend unit tests and linting | +| Flutter | Frontend build & widget testing | +| pytest | Python backend testing | + +--- + +## Pipeline Steps + +### Backend (Go) +1. Run `go mod tidy` +2. Run `go test ./...` + +### Frontend (Flutter) +1. Run `flutter pub get` +2. Run `flutter test` + +### Python (LLM Service) +1. Run `black --check` +2. Run `isort --check-only` +3. Run `pytest` + +--- + +### Continuous integration + +Flutter: +- Used in-build flutter tools for testing +- Implemented unit-tests for widgets +- `frontend/test` contains all tests + +Flutter CI: +- Link to CI: https://github.com/cQu1x/Autotester/blob/main/.github/workflows/flutter_ci.yml +- Downloads flutter +- Runs tests +- Creates build for web application (important for code updates) + +Golang: + - Used in-build golang tools for testing + - Implemented unit test for cookies and validators. Implemented integration tests for handlers + - `tests/` contains all tests + +Golang CI: + - Link to CI: https://github.com/cQu1x/Autotester/actions/workflows/go-ci.yml + - Downloads Golang + - Runs tests and linting + +Python: + - Used python libraries (pytest) for testing + - Implemented tests for parser and LLM-connection + - `/test_1.py` contains all tests + +Python CI: + - Link to CI: https://github.com/cQu1x/Autotester/actions/workflows/python-ci.yml + - Downloads Python + - Runs tests + +## Triggers + +CI workflows run on: + +- Every pull request to `main, go-backend, fontend_branch` +- Manual dispatch via GitHub UI diff --git a/docs/quality-assurance/user-acceptance-tests.md b/docs/quality-assurance/user-acceptance-tests.md index d3de6e6..734679a 100644 --- a/docs/quality-assurance/user-acceptance-tests.md +++ b/docs/quality-assurance/user-acceptance-tests.md @@ -1,70 +1,70 @@ -# User Acceptance Tests — InnoTest - -## MVP-0: UI Mockup and Basic Flow - -**Goal:** Validate interface layout and user flow without working logic. - -### UAT-001: Interface elements are visible -- **GIVEN** the user opens the prototype -- **WHEN** the interface is displayed -- **THEN** the user sees input fields for URL, test conditions, and a "+" button - -### UAT-002: Add new condition field -- **GIVEN** the user clicks the "+" button -- **WHEN** the interface is active -- **THEN** a new input field appears for entering a test condition - ---- - -## MVP-1: Core Functionality - -**Goal:** Ensure basic interaction between frontend and backend, and DOM parsing logic. - -### UAT-101: Submit a valid URL -- **GIVEN** the user enters a valid URL -- **WHEN** the user clicks “Check” -- **THEN** the system sends the data to the backend and displays the result - -### UAT-102: Add a condition and verify -- **GIVEN** the user inputs a condition like “Is there a 'Login' button?” -- **WHEN** the test is run -- **THEN** the system parses the DOM and displays ✅ or ❌ - -### UAT-103: Dynamically add multiple conditions -- **GIVEN** the user clicks the "+" button -- **WHEN** the interface is loaded -- **THEN** a new condition input field is added - ---- - -## MVP-2: AI Integration and Automation - -**Goal:** Validate templates and Selenium integration. - -### UAT-201: Load a test template -- **GIVEN** the user selects a template like “Authorization” -- **WHEN** the template is applied -- **THEN** the condition fields auto-fill with predefined checks - - -### UAT-202: Execute tests via Selenium WebDriver -- **GIVEN** all test steps are filled in -- **WHEN** the user launches the Selenium execution -- **THEN** the automation runs and test results are shown - ---- - -## MVP-3: Export and Usability Testing - -**Goal:** Validate result export and end-user usability testing. - -### UAT-301: Export test results to PDF -- **GIVEN** the user finishes testing -- **WHEN** the user clicks “Export to PDF” -- **THEN** a downloadable PDF with all test results is generated - -### UAT-302: UI/UX usability session -- **GIVEN** the user participates in usability testing -- **WHEN** the user completes 3–4 common tasks -- **THEN** the steps are clear and no external help is needed - +# User Acceptance Tests — InnoTest + +## MVP-0: UI Mockup and Basic Flow + +**Goal:** Validate interface layout and user flow without working logic. + +### UAT-001: Interface elements are visible +- **GIVEN** the user opens the prototype +- **WHEN** the interface is displayed +- **THEN** the user sees input fields for URL, test conditions, and a "+" button + +### UAT-002: Add new condition field +- **GIVEN** the user clicks the "+" button +- **WHEN** the interface is active +- **THEN** a new input field appears for entering a test condition + +--- + +## MVP-1: Core Functionality + +**Goal:** Ensure basic interaction between frontend and backend, and DOM parsing logic. + +### UAT-101: Submit a valid URL +- **GIVEN** the user enters a valid URL +- **WHEN** the user clicks “Check” +- **THEN** the system sends the data to the backend and displays the result + +### UAT-102: Add a condition and verify +- **GIVEN** the user inputs a condition like “Is there a 'Login' button?” +- **WHEN** the test is run +- **THEN** the system parses the DOM and displays ✅ or ❌ + +### UAT-103: Dynamically add multiple conditions +- **GIVEN** the user clicks the "+" button +- **WHEN** the interface is loaded +- **THEN** a new condition input field is added + +--- + +## MVP-2: AI Integration and Automation + +**Goal:** Validate templates and Selenium integration. + +### UAT-201: Load a test template +- **GIVEN** the user selects a template like “Authorization” +- **WHEN** the template is applied +- **THEN** the condition fields auto-fill with predefined checks + + +### UAT-202: Execute tests via Selenium WebDriver +- **GIVEN** all test steps are filled in +- **WHEN** the user launches the Selenium execution +- **THEN** the automation runs and test results are shown + +--- + +## MVP-3: Export and Usability Testing + +**Goal:** Validate result export and end-user usability testing. + +### UAT-301: Export test results to PDF +- **GIVEN** the user finishes testing +- **WHEN** the user clicks “Export to PDF” +- **THEN** a downloadable PDF with all test results is generated + +### UAT-302: UI/UX usability session +- **GIVEN** the user participates in usability testing +- **WHEN** the user completes 3–4 common tasks +- **THEN** the steps are clear and no external help is needed +