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:
Solution: The team should go through the following stages:
Key features:
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.
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:
Cons:
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:
Cons: