Automated Testing (IT)Test Automation Engineer, Team Lead QA

How to implement automated testing in an existing project that previously used only manual testing?

Pass interviews with Hintsage AI assistant

Answer.

Implementing automated testing in an already existing project is a complex and multi-level task.

Background of the issue: In organizations where testing has been performed manually for a long time, processes, documentation, and code architecture may not always meet the requirements for automation. Testers may lack skills in automation tools, and the test architecture and applications themselves may not support the quick execution of automated tests.

Problem: The main challenges of implementation include:

  1. Lack of automation culture: there's no experience, tools, or processes.
  2. Complexity of legacy code: difficulties in integrating tests, absence of testable interfaces, and stable element structure.
  3. Lack of prioritization criteria: what should be automated first, and where will it have the most significant impact?

Solution: The team should go through the following stages:

  1. Readiness assessment: identify the most critical and frequently repeated manual tests that will save time.
  2. Pilot testing: choose a small section of the system and implement a pilot set of automated tests for quick hypothesis verification.
  3. Gradual implementation: as the pilot succeeds, expand automated test coverage while simultaneously training the automation team.

Key features:

  • It's advantageous to start automation with regression and "smoke" tests.
  • It is essential to integrate automated tests into the existing development process (e.g., running them on pull requests).
  • Communication must be considered — explaining the benefits and limitations of automation to the business and testers.

Trick Questions.

Can automated tests fully replace manual testing?

No. Even with high coverage, automated tests are only applicable to repetitive, deterministic scenarios. Undetectable usability bugs, exploratory testing, design flaws, and atypical "human" bugs are usually caught manually.

Should all test cases be automated without exception?

No. Not all test cases are justified to automate: low-frequency or complex scenarios are better left for manual testing due to cost and low return on investment.

Must testers be programmers for successful automation?

No, but a basic level of programming is desirable. The team is often built on a combination: an experienced tester as the test automation architect, and automation engineers as developers.

Common Mistakes and Anti-Patterns

  • Attempting to cover everything with automation at once without determining priorities.
  • Insufficient communication between manual testers and automation engineers.
  • Choosing tools "by word of mouth," rather than suitable for a specific project.
  • Lack of process for maintaining and updating automated tests: "set it and forget it."

Real-life Example

Negative Case

The company decided to automate all manual tests simultaneously without allocating a separate team or discussing priorities. They bought a trendy tool, but it did not support some necessary browsers. As a result, half of the tests stopped working after a quarter.

Pros:

  • Quick initial implementation, team enthusiasm.

Cons:

  • Huge costs, rapid disappointment, training expenses, and weak coverage of truly necessary scenarios.

Positive Case

The team manually selected the 10 most frequent regression scenarios. They conducted automation training in Python (Selenium) and added tests to CI. After six months, 70% of regression checks were run automatically, allowing manual testers to focus on creative tasks.

Pros:

  • Real time savings, team expertise growth, reduced human factor.

Cons:

  • Costs for updating automated tests with interface changes, long startup time.