Art of Automation

JagsJags
3 min read

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 .
0
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.