I was brainstorming about the automation practice setup. Before getting technical, I was looking at the mindset needed. Besides this, I was with a mentee Chidambara and answering the questions.
I'm sharing the gist of pointers that we discussed and which are essential for having the encouraging mindset towards getting started and value adding automation in testing.
Build the culture that supports and encourages the Testing and Automation
Communicate and Collaborate
With testers, developers, product owners, business teams
Build the relationship and trust; understand the system better; seek help when needed
Help the team to know the value they bring from their testing and automation
Learn the problem; understand the problem; step up to solve the problem
Ask, is this a problem worth solving for the business
Human is a key center of the engineering
Human is needed for developing
Human is needed for testing
Human is needed for automation
Human is needed for the maintenance of all above said
Humans cannot be removed from action saying automation takes care of all
Automation is not a replacement for Testing
Automation exists to assist the Testing and not to replace
Automation involves programming and is about programming to leverage the testing
The libraries as Selenium, Appium, Cypress, etc., are 30% to 35% of code in automation what we write
The rest of the code is about how we program to build, organize, scale, and maintain the automation
Practice programming to write better automation
Embrace Programming
Practice Object Oriented Programming and Design Patterns
Automate which has to be automated
Automate first what has to be automated
Do not automate everything – yes not to automate everything!
What needs to be tested by humans, has to be tested by human
Build the skills which will help you to do the Automation in Testing
This is very important and not to ignore it
Know and confirm what is expected out of automation from business and stakeholders
This helps to think and define the value return from the automation
Know what to automate, where to automate, and how to automate
Automating 100% is good to hear but it is not practical and logical
Figure out what to automate i.e. what cases or ideas to automate
Identify the right layer where it is appropriate to automate
Automating at UI layer is a cost; automate minimal at UI layer
Automate at service layer i.e. API layer
Encourage the Unit Testing practice and culture in the engineering
Automate at the lowest layer which returns the maximum value and that has a low probability of failing
Know what should be covered from Automation in Testing
Understand the system being tested and its internals
Without understanding the use cases and business expectations out of a system, writing automation might not return the expected value
Have the automation strategy in place than just having/working on the proof of concept
Know and understand the tech stack of the product
Learn the architecture of the product
Understand the DevOps operation of the product
Automation is a separate project within a project that builds the product
The time needed for thinking, setup, configuring, coding, maintaining, and collaborating within teams are unique tasks
This needs its time and it cannot be adjusted with the time available for Testing
Note that, Testing and Automation are two different activities though automation exists to assist the testing
Testing and Automation are two different activities that overlap
Have the deterministic testability and automatability attributes in the product to leverage the value of automation and Testing
Ask for it with product owners and developers
Be informed about the value returned from the automation and its limitation
Keep the stakeholders informed about the same
Testability is the foundation in a system for Testing and Automation in Testing
Automatability attribute together with Testability makes the system very responsive for testing and automation
Do not be scared of automation; encourage the team to start thinking about it and practice it
Listen to all groups who are for automation and who are not for automation
Understand what they mean for what is being said by them
Learn the context in which they are talking
Pick what works for you, but do not ignore and be away from the practice of automation
Automation is a need today and for coming days; it is a skill looked for and it helps a Test Engineer very much
Embrace automation!