A comprehensive software testing portfolio demonstrating testing methodologies, tools, documentation, and automation skills. Built around CryptoTracker — a Go-based cryptocurrency portfolio tracker used as the System Under Test (SUT).
Testing_CT/
|
|-- sample-app/ # CryptoTracker - System Under Test
| |-- cmd/server/ # Go API server entry point
| |-- internal/
| | |-- handlers/ # HTTP handlers (REST API)
| | |-- models/ # Data models
| | |-- repository/ # Database layer (SQLite)
| | +-- service/ # Business logic & auth
| +-- web/ # Frontend (HTML/JS/CSS)
|
|-- docs/ # Test documentation
| |-- requirements/ # Software Requirements Specification
| |-- test-plan/ # Test Plan (MIL-STD-498 / ISO 29119)
| |-- test-cases/ # Detailed test cases (25 cases)
| |-- test-techniques/ # 10 testing technique guides
| |-- test-reports/ # Test execution reports
| |-- defect-reports/ # Bug reports
| |-- traceability-matrix/ # Requirements Traceability Matrix
| +-- tools/ # Tool documentation (JIRA, Testiny, etc.)
|
|-- tests/ # Test automation
| |-- api/
| | |-- postman/ # Postman collections
| | |-- python/ # Python/Pytest API tests
| | +-- soapui/ # SoapUI project
| |-- selenium/ # Selenium WebDriver UI tests
| |-- pytest/ # Pytest test suites
| |-- unittest/ # Python unittest examples
| |-- go/ # Go native tests
| +-- performance/ # Performance testing
| |-- locust/ # Locust load tests (Python)
| +-- jmeter/ # JMeter test plans
|
|-- ci-cd/ # CI/CD pipeline configuration
| |-- docker-compose.yml # Jenkins + SonarQube stack
| +-- sonarqube/ # SonarQube config
|
|-- .github/workflows/ci.yml # GitHub Actions CI pipeline
|-- Jenkinsfile # Jenkins declarative pipeline
|
+-- sdlc-docs/ # SDLC/STLC process documentation
A REST API + web application for managing a cryptocurrency portfolio.
Tech stack: Go, SQLite, HTML/JS
API Endpoints:
| Method | Endpoint | Auth | Description |
|---|---|---|---|
GET |
/api/health |
No | Health check |
POST |
/api/register |
No | User registration |
POST |
/api/login |
No | Authentication (returns Bearer token) |
GET |
/api/portfolio |
Yes | List portfolio items |
POST |
/api/portfolio |
Yes | Add cryptocurrency holding |
DELETE |
/api/portfolio/{id} |
Yes | Remove portfolio item |
GET |
/api/prices |
No | Market prices |
See sample-app/README.md for full details.
All documentation follows MIL-STD-498 and ISO/IEC/IEEE 29119 standards.
| Document | Description |
|---|---|
| Software Requirements Specification | 30 functional + 7 non-functional requirements |
| Test Plan (STP) | Strategy, scope, schedule, entry/exit criteria |
| Test Cases | 25 detailed test cases (positive, negative, security) |
| Traceability Matrix (RTM) | Bidirectional mapping: Requirements <-> Design <-> Tests |
| Test Report Template | Execution results and exit criteria evaluation |
| Defect Report | Sample bug report with severity/priority classification |
Guides for each technique with definitions, CryptoTracker examples, and interview Q&A.
| Technique | Key Concepts |
|---|---|
| Functional Testing | Equivalence Partitioning, Boundary Value Analysis, Decision Tables |
| Regression Testing | Impact Analysis, test selection strategies |
| Smoke Testing | Build Verification Test, critical path validation |
| Exploratory Testing | Session-Based Test Management, charter & session reports |
| E2E Testing | User journeys, testing pyramid |
| System Testing | V-Model, full SRS verification |
| Integration Testing | Top-down, bottom-up, stubs vs mocks |
| UI Testing | Manual vs automated, selectors, cross-browser |
| API Testing | REST conventions, tools comparison, contract testing |
| Performance Testing | Load, stress, spike, soak testing, metrics, tools |
| Category | Tools |
|---|---|
| Programming | Go, Python, C++ |
| API Testing | Postman, Python requests, SoapUI, curl |
| UI Automation | Selenium WebDriver (Chrome headless), Selenium Grid, BrowserStack |
| Test Frameworks | Pytest, Python unittest, Go testing |
| Performance | Locust, JMeter |
| CI/CD | Jenkins, GitHub Actions, SonarQube, Docker |
| Test Management | Testiny, Katalon Studio, Zebrunner |
| Project Tracking | JIRA, Confluence |
| Version Control | Git, GitHub |
| Process | SDLC (Agile/Scrum), STLC, MIL-STD-498, ISO 29119 |
CryptoTracker is deployed on a Digital Ocean droplet and publicly accessible for testing:
# Quick test — hit the live health endpoint
curl localhost:8080/api/healthJenkins and SonarQube are also running on the same server for CI/CD (not publicly listed for security).
# Clone the repository
git clone https://github.com/yusuftorun/Testing_CT.git
cd Testing_CT
# Run the server
make run
# Or build and run the binary
make build
./bin/cryptotracker
# Server starts on http://localhost:8080Requirements: Go 1.21+
Tests default to http://localhost:8080. To run against the live server, set the CRYPTOTRACKER_URL environment variable:
export CRYPTOTRACKER_URL=http://<server-ip>:8080# Start the server (required for API, UI, and unittest tests — skip if using the live server)
rm -f cryptotracker.db # clean database
./server &
# Go unit tests (25 tests, no server needed)
go test -v ./sample-app/internal/service/
# Python API tests — Pytest (42 tests)
source tests/api/python/.venv/bin/activate
pytest tests/api/python/ -v
# Python unittest (22 tests)
python -m unittest tests/unittest/test_service.py -v
# Selenium UI tests (23 tests, Chrome headless)
pytest tests/selenium/ -v
pytest tests/selenium/ -v --browser=firefox # override browser
# Postman collection (requires: npm install -g newman)
newman run tests/api/postman/CryptoTracker.postman_collection.json
# Performance tests against live server
locust -f tests/performance/locust/locustfile.py --host=http://<server-ip>:8080Total automated tests: 112 (Go 25 + Pytest 42 + unittest 22 + Selenium 23)
Load and stress testing with real results.
| Tool | Config File | Description |
|---|---|---|
| Locust | tests/performance/locust/locustfile.py |
Python-based load tests (20 users, 291 req, 0 failures) |
| JMeter | tests/performance/jmeter/CryptoTracker.jmx |
Importable test plan for GUI or CLI execution |
See tests/performance/README.md for details and results.
| Tool | Config File | Description |
|---|---|---|
| Jenkins | Jenkinsfile |
6-stage pipeline (Build → Test → SonarQube → Archive) |
| GitHub Actions | .github/workflows/ci.yml |
Auto-runs on push/PR to main |
| Docker Compose | ci-cd/docker-compose.yml |
Jenkins + SonarQube stack |
| SonarQube | ci-cd/sonarqube/sonar-project.properties |
Static code analysis config |
See ci-cd/README.md for setup guide.
Guides for industry-standard testing and project management tools.
| Tool | Documentation |
|---|---|
| JIRA & Confluence | docs/tools/jira-confluence.md |
| Testiny | docs/tools/testiny.md |
| Katalon Studio | docs/tools/katalon.md |
| Zebrunner | docs/tools/zebrunner.md |
| Git & GitHub | docs/tools/git.md |
sdlc-docs/sdlc-stlc.md — Covers SDLC models (Waterfall, V-Model, Agile, Kanban), STLC phases, testing in Scrum, sprint planning examples, entry/exit criteria, and the testing pyramid.
Yusuf Torun
- Background: Physics (BSc)
- Interests: Algorithmic crypto trading, music production, quantum computing