My TestVagrant Interview Experience 🚀
Tags: interview, interviewexperience, testinginterview, jobinterview
Published: 2023-08-30 12:57:15

My TestVagrant Interview Experience: Navigating Challenges, Embracing Growth 🌟

> Embarking on a journey to TestVagrant was more than just another interview process; it was a captivating exploration of my abilities, a showcase of my technical prowess, and a testament to my passion for quality software. Join me as I recount the exhilarating chapters of my interview experience, where I tackled coding riddles, unraveled technical conundrums, and shared my insights on API testing and beyond. From the highs of acing challenges to the lows of encountering unanswered questions, this narrative encapsulates my quest to leave no stone unturned. While the road took an unexpected turn with a rejection, it's a tale of resilience, growth, and the silver lining that shines even through closed doors.

- ROLE - SDET

---

## 0th Round: Task Completion 👨‍💻

In the preliminary round, I was presented with two coding questions that I had to complete within a day. The questions aimed to assess my logical thinking, coding proficiency, and analytical approach. These tasks were a fantastic opportunity to demonstrate how effectively I could translate concepts into code.

### Question 1: In-Memory Store for Recently Played Songs 🎵

The challenge was to create an in-memory store that could accommodate a set number of recently played songs per user. The store needed to maintain a list of song-user pairs, associate each song with a user, and automatically eliminate the least recently played songs as the store reaches its capacity. This question allowed me to showcase my data structure skills and problem-solving abilities.

**Example:**

Let's assume that the user has played 3 songs - S1, S2, and S3.

The playlist would look like -> S1, S2, S3
When S4 song is played -> S2, S3, S4
When S2 song is played -> S3, S4, S2
When S1 song is played -> S4, S2, S1

[GitHub Repository for Question 1 Solution](https://github.com/nitinkumar30/testVagrant_solution/)

---

## 1st Round: Technical Round 🔧


![1st round interview scheduled](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4wn9yocgmatj0dd62mmr.png)




### Question 1: Reversing a String Using Recursion 🔄

During the technical interview, I was tasked with reversing a string using recursion. This seemingly simple problem tested my understanding of recursion and string manipulation.

**Example:**

Original: Hello, world!
Reversed: !dlrow ,olleH

```python
def reverse_string(s):
    if len(s) == 0:
        return s
    else:
        return reverse_string(s[1:]) + s[0]

input_string = "Hello, world!"
reversed_string = reverse_string(input_string)
print("Original:", input_string)
print("Reversed:", reversed_string)
```

### Question 2: Shifting Array Elements within an Interval ⏲️

I was also asked to shift elements of an array within a specified interval. This question assessed my grasp of array manipulation and modulo arithmetic.

**Example:**

Array: [0, 1, 2, 3, 4, 5]

```python
def shift_elements(arr, interval):
    n = len(arr)
    shifted_array = [0] * n

    for i in range(n):
        shifted_index = (i + n - interval) % n
        shifted_array[shifted_index] = arr[i]
    return shifted_array

array = [0, 1, 2, 3, 4, 5]
shifted_array = shift_elements(array, 2)
print(shifted_array)
```

### Question 3: API Testing and Frameworks 🌐

The interview further delved into my experience in API testing, including an end-to-end approach. I discussed my familiarity with various testing frameworks and the strategies I employ to ensure robust API testing.

### Question 4: CI/CD and Agile Experience 🔄🏗️

The interviewer inquired about my experience with Continuous Integration and Continuous Deployment (CI/CD) pipelines, as well as my familiarity with Agile methodologies. I elaborated on how I've integrated testing practices within Agile workflows to achieve seamless software delivery.

### Question 5: Types of Assertions ⚙️🔍

The discussion extended to the types of assertions I use in testing scenarios. I explained how different types of assertions, such as equality assertions and exception assertions, play a vital role in verifying software behavior.

---

## 2nd Round: Technical Round 🛠️


![Round 2 interview scheduled](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/txucm8v3x0q63yaar65x.png)


### Question 1: Storing Student Details Using OOPs Concepts 📚

In this round, I had the privilege of being interviewed by TestVagrant's CTO. He posed an OOPs question that truly challenged my understanding. The question involved storing student details such as name, age, and marks in different subjects using OOPs concepts. This question was a testament to my object-oriented design skills.

```python
class Student:
    def __init__(self, name, age, marks):
        self.name = name
        self.age = age
        self.marks = marks

    def display_details(self):
        print("Name:", self.name)
        print("Age:", self.age)
        print("Marks:", self.marks)

student1 = Student("Nitin", 24, {"maths": 99, "science": 90})
student1.display_details()
```

### Question 2: Storing Details and Creating JSON 📄

When asked how to store the aforementioned details, I suggested using a JSON file. This led to an engaging discussion on the implementation of such a solution.

### Question 3: API Project and Testing Frameworks 🌐

The interview focused on my API project and any testing frameworks I've worked with. 


### Question 4: Pytest-BDD Framework and Reports 🔄📊

The CTO queried about my knowledge of the pytest-bdd framework and how we can generate reports from it. 


```json
StudDetails{
  'name': 'Nitin Kumar',
  'age': 24,
  'std'{
    'class': 8,
  'tests'{
    'unit_tests'{
      'maths_marks': 99,
      'science_marks': 90
    }
    'yearly_tests'{
      'maths_marks': 59,
      'science_marks': 70
    },

    'class': 9,
  'tests'{
    'unit_tests'{
      'maths_marks': 89,
      'science_marks': 93
    }
    'yearly_tests'{
      'maths_marks': 52,
      'science_marks': 73
    }
}
  }
}
```

## Rejection Email 💌

However, despite my enthusiasm and effort, I received a rejection email from TestVagrant. While it was disappointing not to move forward in the process, I remain positive and grateful for the insights gained from the experience. The interview journey taught me valuable lessons and showcased areas where I can further enhance my skills.

## Wrapping Up 🌟

My interview journey with TestVagrant was enlightening and engaging. From coding tasks that challenged my logical thinking to technical rounds that evaluated my expertise, the experience provided valuable insights into my strengths and areas for improvement.

These rounds not only tested my technical skills but also allowed me to showcase my experience in API testing, project management, and my understanding of testing frameworks like `pytest-bdd`. While I await further opportunities, I'm grateful for the chance to learn, grow, and explore new horizons in the world of software testing.

---

Experience shared by [Nitin Kumar](https://nitinkr.me/). 
Do connect with me on [Instagram](https://instagram.com/nitinkumar30.py) or [LinkedIn](https://linkedin.com/in/nitin30kumar).

---

*Stay curious, keep learning, and embrace every challenge!*