HI @olagoke.alli
My recommendation is to design the repository as if it will support multiple applications, multiple QA engineers, and future growth, even if the team is small today.
You have multiple applications:
- Hospital Registration
- Covenant Compliance
- Edible
- Dale
And a team of 3 QA engineers.
The biggest mistake beginners make is creating separate Katalon projects for every application and then struggling to maintain common code, utilities, test data, and CI/CD pipelines.
A better approach is to create one centralized automation repository with a clear application-wise structure.
Automation-Framework
β
βββ Test Cases
β βββ HospitalRegistration
β β βββ Smoke
β β βββ Regression
β β βββ Integration
β β
β βββ CovenantCompliance
β β βββ Smoke
β β βββ Regression
β β βββ Integration
β β
β βββ Edible
β β βββ Smoke
β β βββ Regression
β β
β βββ Dale
β βββ Smoke
β βββ Regression
β
βββ Object Repository
β βββ HospitalRegistration
β βββ CovenantCompliance
β βββ Edible
β βββ Dale
β
βββ Test Data
β βββ HospitalRegistration
β βββ CovenantCompliance
β βββ Edible
β βββ Dale
β
βββ Test Suites
β βββ HospitalRegistration
β βββ CovenantCompliance
β βββ Edible
β βββ Dale
β
βββ Test Suite Collections
β
βββ Keywords
β βββ Common
β β βββ BrowserUtils
β β βββ DatabaseUtils
β β βββ APIUtils
β β βββ ReportUtils
β β βββ WaitUtils
β β
β βββ HospitalRegistration
β βββ CovenantCompliance
β βββ Edible
β βββ Dale
β
βββ Profiles
β βββ DEV
β βββ QA
β βββ UAT
β βββ PROD
β
βββ Include
Why This Structure Works
Application Isolation
Each application has its own:
- Test Cases
- Object Repository
- Test Data
- Test Suites
This prevents accidental changes affecting another application.
The best practice would be to share Reusable Components amongst teams
Store reusable code under:
Keywords/Common
Examples:
BrowserUtils.groovy
DatabaseUtils.groovy
ExcelUtils.groovy
ApiUtils.groovy
Instead of creating the same code four times, all applications reuse common utilities.
This follows the DRY (Donβt Repeat Yourself) principle.
Team Collaboration Model
Suppose there are 3 QA Engineers.
| Engineer |
Responsibility |
| QA 1 |
Hospital Registration |
| QA 2 |
Covenant Compliance |
| QA 3 |
Edible + Dale |
All engineers work in the same repository.
Example:
QA1
βββ Test Cases/HospitalRegistration
QA2
βββ Test Cases/CovenantCompliance
QA3
βββ Test Cases/Edible
βββ Test Cases/Dale
Shared utilities remain under:
Keywords/Common
and are reviewed before modification.
Azure DevOps Repository Structure
A single repository is usually sufficient.
Example:
Azure DevOps
β
βββ Katalon-Automation
β
βββ Test Cases
βββ Object Repository
βββ Keywords
βββ Profiles
βββ Test Suites
Benefits:
- Single source of truth
- Easier maintenance
- Shared framework
- Easier onboarding
Avoid:
HospitalRepo
ComplianceRepo
EdibleRepo
DaleRepo
unless applications are completely unrelated and maintained by different teams.
Branching Strategy
A simple Git flow works well.
main
β
βββ develop
β
βββ feature/hospital-registration
βββ feature/compliance
βββ feature/edible
βββ feature/dale
Workflow:
Feature Branch
β
Pull Request
β
Code Review
β
Develop
β
Main
This prevents engineers from overwriting each otherβs work.
Azure DevOps Pipeline Structure
Create one pipeline per application.
Example:
Pipelines
β
βββ HospitalRegistration-Pipeline
βββ CovenantCompliance-Pipeline
βββ Edible-Pipeline
βββ Dale-Pipeline
Each pipeline executes only its applicationβs test suites.
Environment Management
Use Katalon Profiles.
Example:
Profiles
βββ DEV
βββ QA
βββ UAT
βββ PROD
Store:
baseUrl
username
password
apiEndpoint
Example:
GlobalVariable.baseUrl
This eliminates hardcoded values.