When I joined the FK IT Solution project, regression testing was taking 3+ hours per release cycle. Manual clicks through 50+ test cases, repeated every time a developer merged code. I proposed automating the critical path โ and by the end, we cut that time in half.
My Stack
- Selenium WebDriver (Java)
- TestNG for test management and reporting
- Maven for dependency management
- ChromeDriver (headless for CI)
Project Structure
src/
test/
java/
base/
BaseTest.java โ WebDriver init/teardown
pages/
LoginPage.java โ Page Object Model
ProductPage.java
CartPage.java
CheckoutPage.java
tests/
AuthTest.java
CartTest.java
CheckoutTest.java
Page Object Model โ LoginPage Example
public class LoginPage {
private WebDriver driver;
@FindBy(id = "email") private WebElement emailField;
@FindBy(id = "password") private WebElement passwordField;
@FindBy(css = "button[type='submit']") private WebElement submitBtn;
@FindBy(css = ".error-message") private WebElement errorMsg;
public LoginPage(WebDriver driver) {
this.driver = driver;
PageFactory.initElements(driver, this);
}
public void login(String email, String password) {
emailField.clear();
emailField.sendKeys(email);
passwordField.clear();
passwordField.sendKeys(password);
submitBtn.click();
}
public String getErrorMessage() {
return errorMsg.getText();
}
}
Data-Driven Testing with TestNG
@DataProvider(name = "loginData")
public Object[][] loginData() {
return new Object[][] {
{"valid@email.com", "validPass123", true},
{"invalid@email.com", "wrongPass", false},
{"", "", false},
{"sql@test.com", "' OR '1'='1", false},
};
}
@Test(dataProvider = "loginData")
public void testLogin(String email, String pass, boolean shouldSucceed) {
LoginPage loginPage = new LoginPage(driver);
loginPage.login(email, pass);
if (shouldSucceed) {
Assert.assertTrue(driver.getCurrentUrl().contains("/dashboard"));
} else {
Assert.assertFalse(loginPage.getErrorMessage().isEmpty());
}
}
What Automated, What Didn't
- Automated successfully:
- Login/logout flows
- Product search and filtering
- Add to cart, update quantity
- Coupon code application
- Kept manual:
- Visual/UI design checks
- First-run exploratory testing
- Payment gateway (sandbox limits)
The 50% time reduction came almost entirely from automating the cart and checkout regression suite โ those 12 test cases took 45 minutes manually and under 4 minutes automated.

