What is automated testing?

Devy Azkia
5 min readSep 1, 2021

Hi,
I will share a little story behind the automated test, what is actually the automated test, and how to automate the test? This article is about basic knowledge of QA and automation test.

First, we need to know clearly “what is software testing?” software testing is a process to test the application (mobile or web) to make sure that the application works as it should. the other definition about software testing I found from here (ibm.com)

Software testing is the process of evaluating and verifying that a software product or application does what it is supposed to do. The benefits of testing include preventing bugs, reducing development costs and improving performance. — source: www.ibm.com

That’s the software testing definition.
The other thing that we need to know is “Why do we do the test?”, you know we already know, when we deliver a broken application to users, users will be angry, and nobody using our app, and the application will be useless because there’s no any user want to use the broken application, right? — yes —

And How do we do the test in our cycle development? I’ll give you a short story

The illustration for the development process (designed in Canva)

Short story behind the picture above:

The initiator said “I have an idea to make an application for call and video call”
Business Analyst, “Great, I will design it for development, and give it to developer team, and the QA/Testers team”
The Developer, “Let’s do it!”
The QA, “Let’s start creating test cases”
The Developer, “Hi, The application is ready for test”
The QA, “yup, the test case also ready, I will test it, and give the result to you”

the initiator give a new fature and the developer also add the feature to the app and QA make the test case for it
The QA, “we need to make sure that the existing feature is working well, but the test time execution continuously increase”

the processes will be repeated, and QA needs to ensure that the new features are working well without impacting the existing feature.

Checking the existing feature should be done every new change or new thing added to the app so that It will take a lot of the QA time 😢. How to handle it?
— yes, you’re right. We need something to make the test faster, easy to run repeatedly.
We need The Automation Test. okay, let’s start the automated test.

Let’s start the automation test!

How to automate the test case?

If you are a QA, maybe you’re already familiar with a test case, and if you’re not a QA, here’s a simple example for you.

Title: Login to facebook
pre-condition: the user have a facebook account
post-condition: the user success login to facebook
Steps:
1. visit the facebook link page (facebook.com)
2. fill the email
3. fill the password
4. click login button (result: success login)

— from the test case above, we can transform the step into the test script like this

def test_login_facebook(page): 
page.goto("https://facebook.com") -- (step 1)
page.fill(email_field, "test@test.com") -- (step 2)
page.fill(pass_field, "test@test.com") -- (step 3)
page.click(login_button) -- (step 4)
assert page.inner_text('h1') == 'Example Text' -- (assertion)

Look, both look similar right, the step in the test case and in the test script automation have the same step; this is the effortless way to transform the test case into a test script.

How to the test case be automated?

The simple way to decide the test case for automated is by the test case type; remember that we have the test case type ( Acceptance and regression), which is the type that repeatedly? — obviously, the Regression test.

Regression testing is re-running functional and non-functional tests to ensure that previously developed and tested software still performs after a change. If not, that would be called a regression — wikipedia (read more)

We need to automate the test cases from the Regression test type since the test is repeated periodically.

Types of automated test

There are 3 main types of automation tests, Unit test, Integration test, and End to End test.

differences of the unit, integration, and end to end test

Unit Test is a software testing method by which individual units of source code. (source Wikipedia)
Integration Test is the phase in software testing in which individual software modules are combined and tested as a group. Integration testing is conducted to evaluate the compliance of a system or component with specified functional requirements. (source Wikipedia)
End to End Test is a technique that tests the entire software product from beginning to end to ensure the application flow behaves as expected. (source Katalon blog)

Yup, The unit test only tests the single component, the integration test for testing the combination of component and database. The end-to-end test is for testing the whole application from end to beginning with the user's point of view.

The test pyramid

All the main test types can be illustrated as a pyramid; it calls Test Pyramid

pyramid of test

As you can see, the End to End test is the most integrated test, but it is slower than the other test type; if we take a look at the purpose of Software testing, we want to make sure that the application has a very good quality, and the user will be happy with the application 😃. So the best testing to make sure that the application has a good quality is End to End test

— This is the end of my article; the conclusion is Automation will help testers a lot :)
I hope you guys like it, please give me any feedback to improve my article in the future.

Thanks. have a Niceday!

References:
https://martinfowler.com/articles/practical-test-pyramid.html

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

Devy Azkia
Devy Azkia

Written by Devy Azkia

Project Manager and QA Engineer

Responses (2)

Write a response