Art of Automation
Let's discuss automation, with a focus on Testing and Quality Assurance.
I intend this to be a personal benchmark - a reference point to revisit and gauge my progress over time. It aims to serve as a rubric, a structured framework for evaluation and improvement.
Guidelines :
Do you understand the concepts of
Test Pyramid
CI /CD
Behavior-Driven Development (BDD)
Test-Driven Development (TDD)
Writing Unit tests, Integration tests and E2E tests . Identifying the differences between them.
Language Proficiency: :
How comfortable are you with a given language e.g. : Java , Python , Scala, Erlang
Do you understand how to manage dependencies effectively and tooling provided for it in that particular language ecosystem.
Have you written / developed a working proof concept for the test automation framework.
Is there a way to enforce coding standards : Code Style Guides.
Cloud & Containers & Everything in between
Unlike 5 years ago, now we have Docker & the cloud offerings (GCP & AWS, etc.) have matured significantly. Hence, knowing these skills are important. The reasons being, more often than not,
You work in a team.
The technical skills you pick up are easily augmented by real world experience. You can gain nuance and context around technical implementation. This is true for any skill, not just this particular one.
Rate yourself on
Comfort level with a Cloud Provider(s). You can always go for more.
Spinning up Jenkins or Buildkite based CI/CD solution. First manually and then via code.
Kubernetes Expertise and Usage.
Have you written an
API Test Automation Framework
UI Test Automation Framework
Performance / Load Test Automation Framework (backend)
Front End Performance Test Automation Framework
Mobile Test Automation Framework from scratch using the below as guidelines
Did you use any design patterns and coding principles (SOLID, Page Object, Clean Code)
Dependency Management
Exception Handling
Test Reporting
Parallelisation
Improving Determinism of the api tests
Using a hermetic environment ( via containers) to improve determinism and speed up the tests further more.
Run the API tests in CI
Synthetic Production monitoring i.e. run tests in prod to ensure a business workflow is functioning.
Communication Skills
Mobile Testing
Figure out reasons when to go native approach such as Espresso and XCUITest & when to go something like Appium
CI/CD such as Bitrise.io
Comfort level around how app deployment and distribution works for an mobile ecosystem and any costs associated around it.
Resources to you use for learning and Exploring
Nothing like a real world implementation
YouTube Channels, Conferences & Talks
Blogs
Tech Guides
Documentation
GitHub
Follow people on twitter, from whom you can learn.
Experiment and fail. You learn a lot from failures.
One can build a mind map for each language ecosystem essentially, using the above info. Build yours and keep track of it.
- P.S. : Feedback is always welcome. You can tweet to me at : @vaikuntj .
Subscribe to my newsletter
Read articles from Jags directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Jags
Jags
I am Senior Test Automation Engineer, who is interested in Open Source & Quality at scale.