Abhijeet will be presenting the following session
filter_list help_outline
  • Abhijeet Vaikar

    Abhijeet Vaikar - End-end test code as a first class citizen

    45 Mins
    Case Study

    "All tests in today's automated regression run have been marked as Untested. What happened?"

    "No notifications are being sent for test runs on the channel"

    "I pulled latest code, and the framework dependency shows compilation error"

    "What does this new method in the framework do?"

    How often do you hear such things within your team?

    As Quality champions, we need to walk the talk. When we expect our developers to write quality code, write unit tests, build features without introducing bugs, the onus lies on us (as test engineers) to do the same. With almost every test engineering team writing automated tests to check functionality of their products and services, it becomes very important to ensure that the test automation framework and the test scripts are bug-free and follow good standards of software engineering.

    It cannot be stressed enough that test automation code should be as good as production code. In order to build production-quality test automation framework and scripts, a number of steps can be taken at:

    1. Code & System Level

    2. Process & People Level

    Our test engineering team went through a transition from having random & unexpected failing test runs to having greater confidence in the quality of the tests. Learn from this case study of our journey to ensure that end-end UI automated tests are built with quality in mind. We will also see demonstration of some of the use cases.

1. What got you started/interested in Testing?

I remember I started my career with giving my 1st ever interview at a startup for a developer position, and I ended up joining there as a Software Engineer in Test for building test automation capabilities from scratch.

Before I started working full-time, I did gain a fundamental grasp of testing concepts due to internships & courses I did in college which were immensely useful. So, as time passed by I started realising the large breadth of areas in software engineering I could have an impact on rather than being someone who would just build product features. I gained experience not just in software development, but also foundations of software quality across the quality spectrum. That was a big motivation for me to continue my career in testing. And I haven't looked back since then. With the career path I have built for myself, I get the satisfaction of driving quality, testing products and also writing code.

2. What has been your best moment/highlight working with Selenium?

I think it was probably the first time when I actually tried out Selenium's API in my first job. It was amazing for me to realise the power a tool like Selenium can provide me to automate not just tests but any repeating tasks on websites.

Another highlight I feel worth mentioning is the great community support I received whenever I faced issues adopting the API.

3. What do you think is the biggest challenge faced by Software Testers today?

I think the biggest challenge faced by software testers today is the rapidly changing landscape of software testing and the way software industry is looking at capabilities of testers. Gone are the days when software testers were expected to just write/execute procedural test-cases, give a test report & raise bugs.

The modern tester is expected to be highly technical and possess a large range of skills (including test automation) which according to me is definitely needed. The challenge here is for the traditional testers, as they will have to evolve at some point in time.

Another challenge testers face today, which again is an outcome of the evolved responsibilities is sufficient time and opportunity to play by their core strength which is analysing a system/product, it's risks and providing critical feedback from a user's perspective.

The solution I think is to:

- find a balance between different responsibilities

- build a smart strategy around test automation so that testers don't spend their entire time simply writing / maintaining automated tests.

4. What is your advice to testers, who are new to automation?

For testers who are new to automation, my advice is to first understand the technology that builds the system you are testing. I have seen this often where testers jump directly into writing automated tests without even knowing how the technology that powers the product/system works. So, before you even think about test automation, understand the tech stack of the product you are testing. Because that gives you a better understanding and perspective when you start writing automated tests against the system.

For example if you are automating tests for a web application, do a course on HTML, CSS, Javascript, Ajax, Browser dev tools & APIs. Build a small website in your free time. If you are automating tests for a mobile app, do a beginner's course on Android/iOS development. Build a small app that calls an API.

My 2nd advice is to be really good at at least one programming language. Pick any one and practice it everyday. Learn to write clean code with good design patterns. Learn version control.

My 3rd advice is to follow experts in the community and try to contribute back to the community in some way when you have gained enough from it.

5. Tell us about the session(s) you will be presenting at the conference and why did you choose those topics?

My session is about ensuring quality of test automation frameworks and test scripts.

A test automation framework and the actual test scripts together form a software product. This software product is used by testers/developers. So shouldn't this product be built with quality in mind? Just like any other software in production?

I chose this topic because we often treat automated tests as throw-away 2nd class citizens. But if we really want to get value out of our tests then we need to think about their quality too. Also there isn't much awareness in the testing community when it comes to adopting development like practices for test automation. Hence, I am going to present this topic with respect to a test framework built on top of Selenium and Appium.

6. What are some of the key takeaways from your session(s)?

Key takeaways will be:

  • The importance of quality while building or maintaining an end-end test automation framework and why your test code should be treated like production code.
  • What are various challenges and aspects of test quality that need to be kept in mind while writing end-end UI tests and a test framework (especially for those who have just started their journey in writing automated tests)
  • Tools and practices that will help you ensure quality and reliability of your framework and test code.
7. Which sessions are you most looking forward to attending at Selenium Conf?

I am looking forward to below sessions the most:

- Rajdeep's Joy of Green Builds

- Deepak Koul's The Quality Accountability conundrum

- Harinee Muralinath's Building security into CD pipelines

- Krishnan Mahadevan's Experiments with grid

- Tomasz Konieczny's ServerlessĀ  how to speed up tests over 300 times and achieve continuous feedback?

8. Any personal message/remarks you want to share with the Testing community in Asia?

I think the testing community in Asia is fantastic & always eager to learn & grow.

I think my advice is to be more involved with your local testing communities and also contribute back as much as possible. Let's not be just consumers of knowledge & tools. Share your experiences with others. That's how everyone grows.