30 Days of Automation in Testing Day 6 : Share what skills a team needs to succeed with automation in testing


(Ramakrishna) #1

Day 6 - #30daytestingchallenge
Challenge - Share what skills a team needs to succeed with automation in testing.

Technical Skills

Beginner:

Basic understanding on HTML/CSS i.e. ability to read and understand HTML source code and understand page structure and elements present on the page
Ability to write Locator expressions and testing them using the browser console i.e. Writing xpaths , CSS locators etc and testing them for validity
Core programming skill in one Object oriented language like Java , C# , Python etc.

Intermediate:

Core programming skill in one scripting language like JavaScript , Groovy etc.
Using out of the box testing frameworks like Junit , TestNG , Selenium Grid , Cucumber
Using build management tools like Maven , Gradle to drive batch execution of Automated test cases and managing the dependencies
Knowledge of on CI/CD tool like Jenkins to orchestrate continuous testing i.e. running automation on a schedule.
GIT Concepts

Advanced:

API / Mobile Automation
Whitebox testing with tools like Fitnesse
AI in Automation
Security
Performance


(Celine) #2

#30daytestingchallenge

Day 6- Share what skills a team needs to succeed with automation in testing.

Fundamentally, it would be knowing when to use manual testing and when to use test automation by possessing an understanding of how the system is supposed to behave according to the project and business requirments. Most of the time, the best way to gain that knowledge is through manual testing. Therefore, a team of experienced manual testers is likely to succeed in performing test automation because of exposure and familiarity with the system under test.

Since a team consists of group of individuals, each member who would like to succeed in test automation,according to this article, should pay attention to the following below. I have copied and summarized the contents of the article here to save time, should anyone wish to view the link at a later time ( I am not plagiarizing, just sharing the source).

  1. Don’t Ignore Manual Testing- in the industry, it is highly important to focus on manual testing concepts initially.

  2. Possess Technical Programming skills- knowledge of of C++/ Java/SQL/Python/XML/JavaScript,etc.

  3. Understand the Application well-Automated testing engineers need to comprehend the software application under testing inside and out.

  4. Experience the Automation Testing Tools-Experimenting with those tools will help you in gaining much knowledge about their architecture, environment, feasibility for your applications under tests, and much more.

  5. Determine ATLC Methodology- ATLC stands for Automation Testing Life Cycle.To understand and follow the ATLM, one needs to have experience of the following:

  • Decision making in automated testing.

  • Test automation tools.

  • Automation testing process.

  • Test planning, design, and development.

  • Test script execution and management.

  • Review and assessment of test programs.

  1. Create Automation Test Strategy-Automation strategy creation is considered to be a very crucial part as you would need to define and develop the path that will help you to reduce the manual testing hours and offer justice on the ROI of the clients.

  2. Stay Updated with the Testing Trends- The most trending best practices, tools, techniques, tips, and tricks will help you and your team to achieve the success in optimizing your test automation strategies and methodology.

Source: https://dzone.com/articles/7-quick-steps-to-become-a-great-automation-testing


(Jason) #3

Agreed. To add: a long list of skills is just that. Being able to design the solution, processes, frameworks and, ultimately, understanding how it all fits together, are all rather important (and should also help determine the actual skills required for the endeavour).


(David) #4

I’m thinking of an overlap (like a Venn diagram, which I didn’t have time to make) of these areas. Actually I ended up with a kind of ranking as well. So, maybe it’s more of a pyramid. Anyway…

Testing Skill:
Most important!

Automation comes after testing, which means all the critical thinking skills of a tester should be in place first, as well as knowledge of testing methodologies, how to function in a team, etc.

Technical Knowledge:
Testing tools, automation software, programming skills, API knowledge, HTML, CSS, maybe JavaScript (by no means necessary, but on the wish list).

If you put testing before automation, I think a really good tester can work with available tools, or make their own.

Domain Knowledge:
I almost think this could be more important than technical knowledge. You’re testing is for a company that does something. What does it do? What kind of people are using the software you’re testing? Perhaps there is a whole other set of technical or non-technical skills specific to your industry you need to know on some level, like payments, or ecommerce, or finance, etc.

Would love for someone to comment on the three areas I’ve mentioned.

  • Dave K

(Kumar) #5

From my perspective, I think below skills are essential for a team to succeed at automation in testing:

  1. From my experience teams and testers blindly decide to automate tests just because it’s cool. However, I find most teams and testers miss the point as to why and when we should implement test automation. Otherwise, the whole purpose of automation in testing is defeated!
  2. Team/ testers should have a basic understanding about the technology stack used in the application under test. Also, it is good for the tests to have sound understanding about the basic OOPS concepts. This will enable them to understand and code the tests effectively.
  3. With teams moving towards CI/CD, it is important for the team to identify where the automation test suite fits and how that can be achieved.
  4. Teams should have good interaction between the testers and developers so that the automation test suites can be built more effectively.
  5. Implementing context dependent test automation approach is essential rather than just going about automating test generically.

Read more here: https://qakumar.wordpress.com/2018/07/08/day-6-share-what-skills-a-team-needs-to-succeed-with-automation-in-testing/


(Trung) #6

Day 6 - #30daytestingchallenge
Challenge - Share what skills a team needs to succeed with automation in testing.

  • Basic/advance coding skill
  • Troubleshooting skill
  • Testing skills: Techniques, methodologies, STLC, SDLC, ATLC, time management…
  • Team work

(Darya ) #7

Agreed with all. I would like to add:
the ability to work in pairs, it helps a lot to make better solutions,
we should remembered that autotest is an independent software product, so the team must understand its importance and not neglect it: knowledge of the best development practices and use them, code review, planning, work with bugs…


(Heather) #8

Day 6 on Twitter:


(Karishma) #9

#Day 6 :Skills team need to succeed with Automation Testing
1.Automation Testing Life Cycle
Decision making in automated testing-What need to be Automated.
Test automation tools-Choosing Right Tools for Automation
Automation testing process.-Setting Right Framework with Technology Stack
Test planning, design, and development.
Test script execution and management.
Review and assessment of test programs.
2. Excellent Technical Programming Skill- Professional with Java/Python/Perl etc.
3. Configuration management-Project management skills also prepare testers to be accountable and answerable for their work to concerned stakeholders and also undertake responsibility and management the end-to-end testing project. This way, project management skills contribute to delivering quality results, improving the entire test process.
4.Agile, DevOps, and continuous delivery-With the pressing demand to meet delivery deadlines, testers need to learn Agile & DevOps methodology due to the fact it promotes collaborative and iterative working models. While Agile methodology imparts speed to the test project, DevOps helps with cross-functional teamwork right from the development, analysis, and QA which yields high-quality end product at a faster time-to-market. Moreover, learning these methodologies removes the role rigidity and silos, allowing teams to pay close attention to phase-wise development and continuous releases.
5.Reporting -This practice of reporting leads to better coordination of the overall test project and also gives transparency to the top management in terms of test cases executed, bug encountered, release timelines, etc. which eventually helps in taking the right decisions.
6.Stay Updated with the Testing Trends- Keeping up with the latest software testing and test automation trends is the most important part of this industry.


(PRACHI) #10

Agreed with first point- we automated many modules and then when it came to prioritising the functions to run overnight, we went back to why did we automate in the first place?


(Margot) #11

Any automation engineer needs coding skills as a base. But to excel I believe they need testing skills: Know what to automate (vs some that automate what is given to them), get to know the application and it’s integration to the extent a manual functional tester does.
Soft skills: Time management, communication.
Technical skills: Know many automation tools and technologies to the point you can suggest what’s best to be used, for example in case of a new project starting automation. Also, being able to start a full solid automation project from scratch (I know… I’m cheating, this is not just one skill but many required to be able to do that).


(Quang Le) #12

In my experience, a successful automation team will have:

  1. Scripting skills: it will be required for all automation teams, I will separate 2 kinds of QA: scripting QAs and framework QAs.
  2. Coding skills: it will be required for the framework QAs, to make the framework more powerful and easier for the scripting QAs to use. It will have some advance tasks for the framework QAs like: clean code, structure the framework for best performance. The framework QA will work like a developer and the architecture.
  3. Knowledge about your project:
  • If your project will be defined for Web, you should prepare knowledge about Web UI, Web Database, HTML, CSS…
  • API project: should have knowledge about JSON, web service, database…
  • Mobile project: should have knowledge about fragment, mobile UI, mobile web UI…
  • Performance project: have knowledge about load test, performance like: concurrent users, ram up ram down time…
  1. Management skills should be required for project manager to make teammate happy together to work
  2. Automation testing project.
  3. Currently, Scurm, Agile, DevOps, CICD are required for any project.
  4. Daily or Weekly Report the regression test. It will measure the stable of our test scripts.
  5. Sharing knowledge in team
  6. AWS, Micro-services are optional.

(Pablo) #13

#30daytestingchallenge
Building off of what @celinetester and @rk_manne have said (brilliant posts :slight_smile: ) …with regards to success in automation, teams succeed when each of the players knows their role. As it pertains to QA Engineers, there are definite skills that help, as listed below:

Technical Skills

  • Fundamental Knowledge in the SDLC - knowing what it takes to plan, develop and deploy. Also knowing the concepts of TDD vs BDD.

  • Requirements Gathering - while not necessarily technical, there are some technical aspects in terms of understanding the best script language to choose and why, how to work with the CI, and so on.

  • Programming Language - as has been stated, familiarity of a computer language is key. It also helps to work in the language of the developers so as to become part of the build process.

  • Knowing the basic differences between Unit and Integration tests, as well as Front-End vs Back-End testing

  • Page Object Modeling

  • Object-Oriented Programming

  • Continuous Integration - understanding how to deploy to a CI and maintain the scripts as the project grows

  • GIT - I can’t stress this enough that all QA Engineers need to have even the most basic of knowledge of the GIT workflow.

I can honestly tell you a lot of team success also relies on the inter-personal dynamics and non-technical aspects; the intangibles that make or break team unity:

Non-Technical Skills

  • Be Adaptable - as a QA Engineer, it is paramount that you are adaptable and willing to work outside of your comfort zone. Sure you know Python, but does that help the Devs if everyone is working in JS? Also, there must be the willingness to learn a new framework if the one you have experience with doesn’t work for your current project.

  • Be A Leader / Mentor - as a subject-matter expert, you must be willing to flex your “coach” muscles and pass on what you have learned. Its good that the junior members of the team can write page objects, but its on you to be able to coach them on why IDs are better than XPATH or how to better compose a test case.

    A good leader motivates the rest of the team and raise any flags that impede success.

    A good leader can also advocate for automation if it doesn’t exist, and can evangelize a particular framework or script language if the current one is not working. It takes the right manner of communication and tenacity to express your beliefs and what you honestly feel will work for the team. Have proof of concept if necessary.

  • Be Creative - as someone who was tasked to work with proprietary test framework last year, an application that required knowing JASMINE (something I’ve never been exposed to) it took a minute to gain a foothold. When I did, I found myself working with the team Automation Engineer who built the framework to create the kind of tests that were versatile and resilient to change. The end result was a fluid test harness that was tremendously advantageous as the project grew in size.

    The lesson learned: creativity goes a long way when it comes to writing the kind of tests you want in a way to make it easier to maintain.

    Example: if you know you have many tests relying on test data, find a way to map the test to a data-source and structure your test in a way that uses variables rather than hardcoded data. Simple, right?! But now imagine this is on a platform you’ve never seen before. What are you to do?

  • Be Positive - the hardest part of automation is the loop of write test -> run -> fix especially as project requirements change. It can be frustrating when the environment goes down causing you setbacks, or when page structure is updated and tests that once were passing are now failing.

    Overall, there are 1,000 different things that can impede your progress. But what you cannot do is get negative about it. The challenge is to persevere when things are tough. This is key in a team situation when your progress is contingent on the success of others.

  • Be Passionate - As the saying goes, a chain is only as strong as its weakest link; everyone on the project has their part to play. You may be called upon to test manually or give a demo on work performed. Whatever the case, be committed to the craft. Give 100% in everything you do.


(Tien Phan) #14

Agreed with all. I would like to add more about research skill and resolve problem when automating a test case. Before automating a test case, you should review the test case able to automate or not and define keyword and function need to call for the test case.