[Discussion] What are the essential skills that an automation beginner should have?

Hi everyone,

I’d love to hear your thoughts on what you believe are the most essential concepts and abilities that someone new to automation testing should know. For example, the abilities to create solid locators and create/execute test cases are often seen as fundamental—but what else do you think is crucial for beginners to learn in order to work in most companies?

Your insights and experiences could be incredibly helpful for others who are just starting their journey into automation testing. We will try to incorporate what you share into our learning materials, which I believe will be super helpful and beneficial to our testing community.

There’s no right or wrong answer, so feel free to share your thoughts, opinions, or experiences!

3 Likes

I’d like to suggest some specific topics that could be valuable for intermediate and advanced users of Katalon Studio. These skills can enhance our courses and provide learners with a deeper understanding of automation:

Suggested Topics:

  1. Integrating Katalon with Version Control Systems (e.g., Git)
  2. Using Katalon’s Built-in Functions and Libraries
  3. Implementing Test Case Design Techniques (e.g., BDD)
  4. Creating Dynamic Object Identification Strategies
  5. Integrating Katalon with External APIs for Testing
  6. Building and Managing Custom Test Frameworks
  7. Optimizing Test Execution Performance and Parallel Testing
  8. Implementing Advanced Reporting and Analytics with Katalon

These topics can help bridge the gap between basic knowledge and advanced capabilities, providing our community with valuable insights and skills.

2 Likes

Hey Sanket,

What about at the beginner level? Let’s say someone wants to enter automation at the very beginner, what skills should you think they should learn and obtain?

Hey Viet,

I think it’s important for beginners to start with a solid grasp of Manual Testing Concepts. They should have a basic understanding of languages like Java, or JavaScript, which is essential. They should also get familiar with Control Structures (Loops, Conditionals, etc.) and some Object-Oriented Principles for writing scalable and maintainable scripts. Next, understanding locators is crucial, creating solid locators using CSS, XPath, and IDs is key for UI automation. They should also familiarize themselves with version control tools like Git.
(Optional): Knowing how to work with test automation tools, basic debugging, and reading test reports will give them a good foundation before moving on to more advanced topics.

2 Likes

Hi Folks,
For beginners and experienced testers who are just starting up with automation, some essential concepts and abilities that they should focus on include:

  1. Understanding of Testing Fundamentals: Before jumping into automation, it’s crucial to have a strong grasp of manual testing principles—like different types of testing (functional, regression, integration), test case design, and the software development lifecycle (SDLC).
  2. Locators and Object Identification: Knowing how to create robust and efficient locators is key. This includes working with XPath, CSS selectors, IDs, and attributes to ensure scripts can interact with the web elements reliably across different builds.
  3. Version Control (Git): Automation testers need to collaborate with development teams, so familiarity with Git (or other version control systems) to manage code repositories, resolve conflicts, and work in a collaborative environment is critical.
  4. Test Data Management: Learning how to generate, manage, and clean up test data for automated tests ensures that scripts run independently and don’t fail due to data issues.
  5. Scripting and Basic Programming Skills: Whether using Selenium, Cypress, or any other tool, even a low code/no-code tool for that matter, having a foundational understanding of programming languages (Java or JavaScript) and concepts like loops, conditions, and functions is necessary to write and debug test scripts.
2 Likes

Here are some essential skills that an automation beginner should have and should understand

  1. Basic Programming Knowledge

    • Understanding of basic programming concepts like loops, conditional statements, variables, and data types is essential. Most automation tools, including Katalon, use scripts (Java, Groovy, Python, etc.).
    • Recommend focusing on languages like Java or JavaScript for automation as they are widely used in automation tools.
  2. Familiarity with Test Automation Tools

    • Beginners should explore popular tools like Katalon Studio, Selenium, or Testim to understand the mechanics of test automation.
    • Katalon Studio is a great entry point due to its user-friendly interface and rich set of features for both beginner and advanced users.
  3. Knowledge of Manual Testing Concepts

    • A solid understanding of manual testing fundamentals, like different types of testing (functional, regression, unit testing), is crucial to designing effective test cases.
    • Automation is built on top of solid manual testing practices, so understanding how to write good test cases manually is key.
  4. Understanding of Automation Frameworks

    • Basic knowledge of different types of test automation frameworks (Data-Driven, Keyword-Driven, BDD, Hybrid) is essential. Katalon’s Keyword-Driven framework can be a great starting point.
  5. Version Control Systems

    • Beginners should familiarize themselves with version control systems like Git. Understanding how to manage automation scripts in a collaborative environment is important.
    • Most teams rely on Git for managing test automation projects.
  6. Basic Understanding of CI/CD

    • Knowledge of Continuous Integration and Continuous Delivery (CI/CD) pipelines is important for automation beginners. Understanding how automated tests fit into the CI/CD cycle (with tools like Jenkins or GitLab CI) can enhance their skills.
    • Katalon integrates seamlessly with CI tools, making it easier for beginners to adopt these practices.
  7. Debugging and Troubleshooting

    • Beginners should develop the skill to debug their scripts effectively. Knowing how to locate, analyze, and fix errors in test scripts is a key skill for any automation engineer.
    • Encourage beginners to use Katalon’s inbuilt debugging tools and error logs for this purpose.
  8. Understanding Test Data Management

    • Automation beginners should learn how to handle test data, especially in Data-Driven Testing.
  9. Focus on Building Modular Test Cases

    • Automation beginners should be encouraged to build reusable and modular test cases to avoid redundancy.
  10. Soft Skills

  • Strong problem-solving skills and logical thinking are essential for automation beginners. They need to be able to break down complex scenarios into simpler test cases.
  • Communication skills are equally important since collaboration with developers, manual testers, and other team members is part of the job.
3 Likes

I would say that in my experience, the difficult part when getting started in the world of test automation is understanding WHY I want to automate something. Then, with the scope clear, I put all my attention on the HOW I can automate. Technical skills are easier to learn (and even more so with no-code tools like Katalon).

Within my top 3 skills, I would suggest:
1- Objective Oriented: Be able to clearly identify and specify the goals of automation.
2- Process Mindset: Automation is like other testing activities, you need to find and configure some process within your testing lifecycle. Don’t let automation happen only in free time. Make it an established activity in your testing process.
3- Organized and structured: Keep things simple, organized and well structured. Starting a structured, well-organized, and simple automation project is the best way to avoid overtime maintenance hours in the future.

Then, after those things, you can open Katalon and let the magic happen!

2 Likes

Hi there @gmarichal, interesting take on the why and how parts. Could you share more details on your personal experiences? Why did you start automation? Any challenges you faced? And how did you overcome? How do you think you would do better if you re-started the journey again?

I think many beginners around here will benefit and learn from your sharing!

Awesome insights @sanket @ravikanth.edamakanti @sanket7843. I see that you guys have shared many skills in common. What about your personal experiences when starting out on the automation journey?

Any challenges you faced? And how did you overcome? How do you think you would do better if you restarted the journey again? How would you learn differently? Any particular areas you would focus?

Hi @kazurayam, @grylion54, @Russ_Thomas. How are you doing? I’ve read many of your sharing in different forum topics on what to learn and found it super helpful.

So I’d like to invite you to this thread. I think your deep automation experience would help a lot of beginners in this community.

I would recommend you to read the classic essay “Test Infected” by Kent Beck & Eric Gamma.

It was published approximately 30 years ago. It describes the principal idea of “software testing”. It is the origin. All testing frameworks and tools nowadays are the variations of SUnit invented by Kent.

2 Likes

Sure! Happy to help…

In my personal experience, many automation projects have failed to meet the expectations of managers, stakeholders, or team members due to the amount of hours and effort invested at the beginning and the lack of clear goals throughout the automation lifecycle. For example, starting automation without clear objectives—such as the number of test cases to automate per cycle, the hours dedicated to automation, and the expected completion date for test cases—can lead to issues.

As I often emphasize in the training courses I provide, test automation should be a formal activity within the Testing Lifecycle. It should not be treated as a task to do in your spare time. Test automation projects should have a plan, a defined scope, and clear goals. I recommend using the S.M.A.R.T. approach for goal definition.

Based on these goals and plans, testers should analyze and select which test cases needs to be automated. Automating everything is not feasible, and some test cases are not worth automating. Create a list of feasible test cases to automate, track their progress, once you finish, mark them as completed, and share them with colleagues, etc. Make those test cases a live asset in your project.

Once you have a considerable number of test cases and the System Under Test (SUT) undergoes continuous changes, test cases maintenance and updates will be necessary. Consider how to refactor these test cases for upcoming changes to minimize future work and effort. Use parameters, variables, create reusable scripts, and leave comments for your future self.

Regularly track the status of the test cases and compare them with your initial plan. How many test cases have been implemented so far? What about the schedule? What is the status of my defined goals? These questions will help you understand the state of your automation project and guide decision-making. For example, you might need to speed up test case authoring, reduce the time and effort spent on maintaining test cases, or postpone some test cases.

As you can see, I am not discussing the technical aspects of automation because those skills are generally easier to acquire compared to the strategic considerations mentioned above. There is a wealth of information, tutorials, and training on how to use automation tools. For example, in the Katalon ecosystem, we have Katalon Academy, Katalon Docs, forums, YouTube channels, etc. However, there is less information on how to implement a well-defined automation project or how to start automating in a real long-term project.

In regard to your initial questions, I began my journey in test automation without any of this advice, so you can imagine that my first projects were the opposite of what I describe above: no plan, no scope and leaving automation for spare time (which I never had). Over the years, these have been valuable lessons learned for me.

I hope this helps new automation testers. :blush:

1 Like

Hi @gmarichal, thank you for the very detailed sharing! It’s definitely helpful to not only to beginners but also to those who want to advance to the manager role.

By the way, you mentioned “the training courses I provide”, I’m curious what courses you’re providing? What topics are you provide training on? Are those your personal or work projects?

Mainly they are trainings I provide in the name of the company I work for.
The topics includes: Test Automation trainings in Katalon, Selenium and other automation tools; Performance testing trainings; Accesibility testing trainings, etc.
Some of the topics are in my linkedin profile.

Bests!

1 Like

Hi Viet, So right from the onset of my automation journey, it was extremely challenging to navigate through the numerous tools and frameworks available out there and decide which ones needed to be mastered first and applied in real scenarios. It was tough not only to build a deep understanding of scripting languages but also to keep track of updates coming to the toolset. To this, I divided my learning into smaller tasks: mastery of one tool at a time then freedom to try others, and now getting real-world insights from the forums and webinars. If I were to do it over, I would definitely focus more on core programming concepts around data structures and algorithms, and encourage hands-on practice early on by working on real projects instead of just theory. I also would have sought out mentoring sooner to learn from experience and not make mistakes. CI/CD and API testing would also have been a focus for me because the knowledge of how automation plays into the DevOps lifecycle makes one much more effective much earlier on.

1 Like