What is test automation?

What is test automation?

  • Automated testing means using an automation tool to execute your test case suite on different versions and environments of SUT. By setting preconditions, executing tests, and comparing actual and expected outcomes.
  • Test automation helps you to answer the question: Do any changes we make breaks the previous functionality? So, that let’s us to concentrate on writing the code instead of manually checking. It is like solving LeetCode algorithms.
  • Formal: Automation software can also enter test data into the system under test, compare expected and actual results and generate detailed test reports.
  • https://www.youtube.com/watch?v=RbSlW8jZFe8

Activities in test automation

To begin testing, the following assets must be finalized and available:

  • Software: The specific build or version of the application under test.
  • Documentation: Requirements, design specs, and the Test Plan.
  • Test Cases: Documented scenarios with clear steps and expected results.
  • Test Environments: Properly configured hardware, software, and network settings.
  • Test Data: The specific inputs (files, database records, user accounts) needed to run the tests.

Core activites:

  • Test Case Implementation: Finalizing the scripts and preparing the environment for active testing.
  • Test Execution & Control: Running the manual or automated tests and monitoring the progress against the test schedule.
  • Results Management: Observing system behavior, interpreting outcomes, and logging results.
  • Defect Reporting: Formally documenting any discrepancies found between actual and expected results.

Goal of test automation

The main goals are time and money:

  • increase speed of testing, faster feedback
  • reducing the cost manual testing
  • reducing the time required for releases
  • risk reduction (human error)
  • reducing the number of defects
  • early bug detection

Why is this direction in demand today?

It is important for a business to deliver changes to users as soon as possible, to stay ahead of competitors. This is possible thanks to flexible development methodologies, as well as practices such as continuous integration and continuous delivery. The latter involve the use of automated testing.

By running automated tests on a regular basis, you have confidence that the application works the way you expect it to be. And if problems arise, you will find out about them as soon as possible.

What are the pros and cost of automation?

  • Early detection of bugs, TA provides faster validation and smaller feedback cycle. So, increased efficiency.
  • Save time because automated tests are reusable. And executing usually faster. They save time that leads the shorter time-to-market of product.
  • Cost saving in long run by reducing number of manual testing.

Disadvantages:

  • Cost, development time

Manual testing

Advantages

  • Good for dynamically changing requirements
  • reCaptcha
  • The project is short-term

Disadvantages

Manual testing is time-consuming, not reliable (human error), dev have to wait long time until testing is finished.

  • Time taking
  • High risk of human error
  • Reusability

What to know?

  • The test pyramid
  • Unit, integration, and UI tests
  • Creating an automation strategy
  • Choosing test tools
  • Deciding what to automation
  • Identifying the risks and cost of automation
  • Implementing test automation
  • Using continuous integration
  • Measuring code coverage

References

SuperMade with Super