Framework Folder Structure

What a Framework Is

A test automation framework is the set of folders, base classes, utilities and conventions that every test uses. A new team member should be able to write a test in an hour without asking where the driver is created or how screenshots are taken.

shopease-ui-tests/
├── pom.xml                         dependencies + surefire plugin
├── testng.xml                      suites: smoke, regression
└── src/
    ├── main/java/com/shopease/
    │   ├── pages/                  LoginPage, SearchPage, CartPage, CheckoutPage
    │   ├── components/             HeaderComponent, ProductCard
    │   ├── driver/                 DriverFactory (ThreadLocal), BrowserType
    │   ├── config/                 ConfigReader
    │   └── utils/                  WaitUtils, ScreenshotUtils, TestDataUtils
    └── test/
        ├── java/com/shopease/
        │   ├── base/               BaseTest (setup / teardown)
        │   ├── listeners/          TestListener, RetryAnalyzer, RetryTransformer
        │   └── tests/              LoginTest, SearchTest, CartTest, CheckoutTest
        └── resources/
            ├── config/qa.properties, staging.properties
            ├── testdata/users.csv, products.xlsx
            └── log4j2.xml

Common Framework Types

TypeIdeaUsed when
Data-drivensame test, many data rows (DataProvider, Excel)login/registration with many inputs
Keyword-drivensteps written as keywords in Excel (click | #login-btn)manual testers write tests without code
BDDGherkin feature files + step definitions (Cucumber)business people read the scenarios
HybridPOM + data-driven + some BDDmost company frameworks

Tip: In interviews, describe your framework in this order: language and tools → folder structure → driver handling → test data → reporting → CI.