#1 India's Top IT Training Institute

×

About Uncodemy

Know more about who we are and what we stand for.

About Us

About Us

Discover our mission to equip individuals with essential IT skills and industry expertise.

Read More →
UnCodeMy Gallery

UnCodeMy Gallery

Explore highlights from our IT training sessions and success stories.

Read More →
×

Free Resources

Learn, practice and plan your career — bilkul free.

Tutorials

Tutorials

Step-by-step written tutorials to learn any technology at your own pace.

Read More →
Free Counselling

Free Counselling

Book a free video counselling session and pick the right course for you.

Read More →
Online Compiler

Online Compiler

Write, run and test your code online — no setup required.

Read More →

Interview Insights · Automation Tester

How I Spot a Copy-Pasted Automation Tester Project in Minutes

A copied automation project usually looks fine on GitHub. It takes only a few questions to see whether the candidate built it or downloaded it. Here are the signs I look for, and how to turn a tutorial project into one that is genuinely yours.

Tracks
Copied or Built? · Live Interactive
I look at
—
Part of the project
Copied sign
—
What gives it away
Owned sign
—
What shows real work
Repo→Question→Answer→Verdict
Click a part of the project to see what usually gives away a copied framework, and what shows the candidate actually built it.

Home / Tutorials / Career Guides / How I Spot a Copy-Pasted Automation Tester Project in Minutes

Interview Insights · Automation Tester

How I Spot a Copy-Pasted Automation Tester Project in Minutes

CHECK 1CHECK 2CHECK 3CHECK 4RepositoryCommits, READMEStructureLookCore classesBaseTest, utilsExplain a lineAskDecisionsWhy this wait,this locator?ProbeFailuresWhat broke andhow you fixedConfirm
In a few minutes, four quick checks usually decide whether an automation project is the candidate's own: the repo, the core classes, the decisions and the failures.

Quick summary — Copied projects

Copying a framework is not the problem; being unable to explain it is. Many automation testers learn by following tutorials, and that is fine. The trouble starts when the tutorial project goes on the resume unchanged, and the candidate cannot explain the code inside it. I do not need to read the whole repository. I ask about one utility class, one wait, one design choice and one failure. Copied projects fall apart on at least one of those. Owned projects get more interesting with each question.

In this guide you will learn:

  1. The repository signs that suggest a project was copied
  2. The questions about core classes that reveal ownership quickly
  3. Why design decisions are the hardest thing to fake
  4. How to make a tutorial project your own with real changes
  5. A checklist to test your own project before the interview

SECTION 01What the repository tells me before I ask anything

If a candidate shares a GitHub link, I spend a minute on it before the interview. I am not judging code quality yet. I am looking for signs of how the project was made. A single commit called 'initial commit' containing a full framework, a README copied from a tutorial, or a target site that every tutorial uses are all hints, though none is proof on its own.

These signs are not reasons to reject. They are reasons to ask more questions. A candidate who built on a tutorial and extended it will have good answers.

Repository signWhat it might meanQuestion I askGood answer sounds like
One large initial commitUploaded all at once from elsewhereHow did the framework grow over time?I started with one test, then added POM, then reports
Tutorial demo site as targetFollowed a course step by stepWhat did you add beyond the course?I added API checks and data-driven login
Unused classes and dependenciesCopied a template with extrasWhat does this ExcelUtils class do?It was from the template; I removed it later
README with no run instructionsNever run by anyone elseHow would I run this on my machine?Clone, set env vars, mvn test, report in target
# What I look at (you can run these on your own repo)

git log --oneline | head -20
#   Copied:  a1b2c3d initial commit
#   Owned:   f9e8d7c add retry-free wait for cart badge
#            c6b5a4e move login locators to LoginPage
#            b3a2f1e add data-driven invalid login cases
#            ...

git log --stat --follow src/test/java/base/BaseTest.java
#   Shows how the core class changed over time

git shortlog -sn
#   Shows who committed; a single unknown author
#   different from the candidate raises a question
repo-signals.txt

A 'known issues' section is one of the strongest ownership signals in any README. Only someone who has run the tests many times knows where they break.

Key insight: Your Git history tells a story. Small commits with clear messages show a project that grew through real work. If yours is one big upload, be ready to explain how it actually developed.

SECTION 02One line of BaseTest: the fastest ownership test

Every Selenium framework has core classes: a BaseTest or driver factory, a config reader, maybe a listener for screenshots and reports. In copied projects, these are the parts the candidate has never touched, because they 'just work'. So I open one and point at a line: why is this here, what happens if I remove it?

If you built or truly studied the framework, this is an easy conversation. If you did not, it is usually where the interview turns.

Line I point atCopied answerOwned answerWhy it matters
ThreadLocal<WebDriver>It is for the driverEach parallel thread gets its own driver instanceShows you understand parallel runs
driver.manage().timeouts().implicitlyWait(...)It makes it waitI removed it; mixing implicit and explicit waits gives unpredictable timingShows real wait knowledge
ITestListener onTestFailureTakes screenshotOn failure it saves a screenshot named after the test and attaches it to the reportShows you used it to debug
Reading config.propertiesReads valuesDefaults from file, overridden by system properties in CIShows you ran it in more than one place
public class BaseTest {
  public static WebDriver driver;

  @BeforeMethod
  public void setup() throws Exception {
    System.setProperty("webdriver.chrome.driver",
        "C:\\Users\\someone\\drivers\\chromedriver.exe");
    driver = new ChromeDriver();
    driver.manage().window().maximize();
    driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(30));
    Thread.sleep(3000);
    driver.get("...");
  }
}

// Signs: static driver (breaks in parallel), hard-coded
// path from another person's machine, a 30s implicit
// wait plus a sleep, and no teardown method at all.
BaseTest.java

Every difference between the two versions is a question I might ask: why ThreadLocal, why no implicit wait, why remove() after quit(), why no driver path. A candidate who made those changes themselves will answer each one with a reason, often with a story about what broke first.

Remember: Before your interview, open every core class in your framework and explain each line aloud. Any line you cannot explain is a line the interviewer may point at.

SECTION 03Decisions and failures: the parts nobody can copy

Code can be copied. Decisions and failures cannot. When I ask why you chose CSS selectors over XPath for a component, why your cart tests use API setup instead of UI clicks, or which test was the hardest to stabilise, a copied project has no story behind it. An owned one has several.

This is also the good news: you can turn a tutorial project into your own by making real decisions on top of it and recording what broke along the way.

Change you can makeDecision it createsFailure you will likely meetStory you can tell
Switch to your own target siteWhich flows matter on this siteLocators that change between pagesHow I chose stable locators
Add API setup for test dataUI vs API for preconditionsData clashes between testsWhy each test creates its own data
Run in parallelThread safety of the driverTests sharing a static driverMoving to ThreadLocal
Run in CI headlessConfig per environmentTests passing locally but failing in CIWindow size and timing differences
// Instead of clicking through the UI to fill a cart,
// create the cart through the API, then test the UI.

@Test
public void cartPageShowsItemsAddedViaApi() {
  String token = Api.loginAndGetToken("cart_user");
  Api.addToCart(token, "SKU-1001", 2);

  // Reuse the session in the browser
  driver().get(Config.get("appUrl"));
  driver().manage().addCookie(new Cookie("auth_token", token));
  driver().get(Config.get("appUrl") + "/cart");

  CartPage cart = new CartPage(driver());
  Assert.assertEquals(cart.quantityOf("SKU-1001"), 2);
}

// Assumes the app accepts the API token as a cookie.
// Check how your target app stores its session first.
decisions-and-failures.txt

The failure log is not for the interviewer to read. It is for you. When I ask 'what was the hardest test to stabilise?', the candidate with a log answers instantly, with detail, because they wrote it down when it happened.

Pro move: If your project started from a tutorial, say so. 'I started from a course framework, then replaced the target site, added API setup and made it parallel' is a strong, honest answer that leads straight to your own decisions.
How Uncodemy helps: If you want guided practice, Uncodemy's Automation Testing Training Course (classroom and online, Noida) pairs live projects with mock interviews, so you learn Automation Tester interview answers on work you actually built.

SECTION 04Make your automation project interview-proof

Use these three tabs to check your own project as an interviewer would, and to upgrade a tutorial project into something clearly yours. In Uncodemy project reviews, trainers use a very similar list.

Answer aloud, without opening the code:

[ ] How did the framework grow? First test to now.
[ ] What does each core class do? (BaseTest, Config,
    Listener, DriverFactory)
[ ] Why that wait strategy?
[ ] Why those locators on the trickiest page?
[ ] How do tests get their data?
[ ] How do you run it in CI?
[ ] Which test was hardest to stabilise, and why?
[ ] What would you change if you started again?

Fewer than six confident answers: spend a weekend
on the upgrade plan before applying.
project-ownership-kit.md

SECTION 05Habits that make a project unmistakably yours

These habits build ownership naturally while you work, so you do not need to invent it before the interview.

  • Commit every meaningful change — Small commits with messages like 'replace sleep with wait for cart badge' create a history that tells your story for you.
  • Delete what you do not use — Unused utilities from a template invite questions you cannot answer. Removing them is itself a decision you can explain.
  • Keep a failure log — Write two lines whenever a test breaks unexpectedly. It becomes your best source of interview stories.
  • Pick a less common target site — A practice site that tutorials rarely use forces you to write your own locators and solve your own problems.
  • Explain it to someone weekly — Walking a friend through one class a week keeps the whole framework fresh in your memory.
Pro tip: Ask a friend to open your repository, pick any file at random and ask 'what does this do and why is it here?'. If you hesitate, that file needs either your attention or deleting.

SECTION 06Interview Q&A — Copied projects

Q1Is it wrong to use a tutorial framework for my project?

No, as long as you understand it fully and say where it came from. Interviewers mind when a candidate presents copied work as their own and cannot explain it. Extending a tutorial with your own target site, data handling and CI makes it genuinely yours.

Q2Why use ThreadLocal for WebDriver?

When tests run in parallel, each thread needs its own browser. A static WebDriver would be shared, so one test could close or navigate another test's browser. ThreadLocal gives each thread its own driver instance, and calling remove() after quit() avoids leaks.

Q3Why should you not mix implicit and explicit waits?

Selenium's documentation warns that mixing them can cause unpredictable wait times, because both mechanisms can apply to the same lookup. I use explicit waits for specific conditions and keep implicit wait at zero.

Q4How do you set up test data for UI tests?

Where possible I create data through APIs before the UI test, such as adding items to a cart, because it is faster and more reliable than clicking. Each test creates its own data so tests do not affect each other.

Q5What was the hardest test to stabilise in your project?

Answer with a real example from your failure log: the symptom, what you checked, the root cause and the fix. For example, a cart badge assertion that ran before an async update finished, fixed by waiting for the expected text.

SECTION 07Test yourself — Copied projects quiz

Five questions. No sign-up.

0 / 5

Pick an answer to see why it is right or wrong.

SECTION 08Frequently asked questions

Can interviewers tell if a Selenium project is copied?

Often, yes. A few questions about core classes, wait choices, locator decisions and failures usually show whether the candidate built or studied the project deeply. Git history and README quality add further clues.

How do I make my automation testing project unique?

Use a less common practice site, write your own locators, add data-driven and API-supported tests, run in parallel and in CI, and document known issues. Commit small changes regularly so your history shows the work.

What should a Selenium framework project include?

A clear structure with page objects, a driver setup that supports parallel runs, config handling for environments, explicit waits, reporting with screenshots on failure, a README with run steps, and CI integration.

Should I put my automation project on GitHub?

Yes, if you can explain everything in it. Keep it clean, with a useful README and small meaningful commits. Never commit real passwords or keys; use environment variables instead.

What questions are asked about automation frameworks in interviews?

Expect questions on framework structure, page objects, driver management, waits, locators, test data, reporting, parallel execution, CI integration, and the hardest problems you faced while building it.

Where can I practise Automation Tester interview answers with expert feedback?

Yes. Uncodemy's Automation Testing Training Course in Noida (classroom and online) includes live projects, one-to-one mock interviews and resume reviews, so you practise Automation Tester interview answers with trainer feedback before the real interview. You can book a free demo class from this page to see how the sessions work.

Classroom & online · Noida

Build an automation framework you truly own

Our Automation Testing Training Course guides you through building Selenium and API frameworks step by step, with your own target apps, CI runs and project reviews, so every line is one you can explain.

Talk to a counsellor for current fees
  • Build your own framework
  • Selenium, TestNG & REST Assured
  • CI and parallel runs
  • Project review sessions