So, let’s talk automation , which is literally the software industry.

I am gonna talking about automation in context to Testing/Quality. I am writing this post, as reference point , that I can come back at a later point of time , and measure my progress. This would work as a Rubric.

Guidelines :

  • Do you understand the concepts of
    • Test Pyramid
    • CI /CD
    • BDD
    • TDD
    • Writing Unit tests, Integration tests and E2E tests . Identifying the differences between them.
  • Language Dexterity / Comfort Level :
    • How comfortable are you with a given language e.g. : Java , Python , Scala, Erlang
    • Do you understand how to manage dependecies 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 & Conatiners & 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, PageObject, CleanCode)
    • Dependency Managment
    • 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
    • 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 implmentation
    • Youtube Channels, Conferences & Talks
    • Blogs
    • Tech Guides
    • Documentation
    • Github
    • Follow people on twitter, from whom you can learn.
    • Expermient and fail. You learn a lot from failures.

    One can build a huge mind map for each language ecoSytem essentially , using the above info. Build yours and keeep track of it. I use Notion.so for my stuff.

    P.S. : Feedback is always welcome. You can tweet me at : @vaikuntj .