In October 2021, Neova Solutions provided an internship opportunity. It was a three-month program with 20 students from various institutions and fields. One of them was me.
This is about my journey from an intern to an employee.
During the program we were expecting the following:
- Workplace culture
- To create networking
- to get some hands-on experience
- Working on real-world projects
But it was even more than that.
On the first day, we were greeted warmly by all the employees. Sachin (the Head of Operations) provided us with an outline of the company’s environment and culture. He emphasized that “continuous learning” is the key to success. There were also many leads from various departments who discussed their roles and the spectrum of learning and development at Neova. They also discussed the internship training scope and the schedule for the following three months. We were all greeted with lovely welcome kits. Thanks to HR and the support team for always being there for us.
While this, we were introduced to a buddy system.
Buddy System: We were assigned one experienced employee for each group of three interns, who served as a mentor during our internship period.
We began by installing the Linux operating system, GIT hub, JIRA, and other necessary software. It was a moment of change for us, from reading books and getting marks in exams to reading data and putting it into practice.
After a week, the Java training began. It was about 3 weeks of training with some projects. After a month, React training began, and Java learning was completed.
React training also started from the basic concepts to advance implementation. We also got a chance to work on the front-end design for our respective projects. We had an external trainer for both Java and react. They were experienced and we learned a lot from them.
With so much to learn and so little time, we were all nervous about our projects and performances. Mayur (QA Manager) came to meet us during that time, encouraging us and explaining the scope of QA and what he expected from us.
I recall his remarks “I don’t care how many chores you’re doing; all I care about is that you understand ‘WHY’. Why are you doing this, and what other solutions do you have? Ask yourself and keep your hands dirty with whatever language you are learning”.
And at that point, QA training began with
- STLC (Software testing life cycle)
- Selenium with java
- API testing with postman & selenium java
- Manual testing
We had to do daily meetings with Navdeep and Swapnil in between this training. They kept us motivated and provided us with further information and help.
Soft skills session:
Prasad led the most exciting session of the internship, in which we conversed with one another and shared our stories.
We discussed soft skills and their importance.
- Ability to work under pressure and time management
- Conflict management
A session with Kalpesh (CEO):
Kalpesh was in Pune for a month and during that time, he communicated with us every day and encouraged us to tackle challenging times and problems. He also shared his previous experiences and also about Neova solutions. We got an opportunity to interact with him and learn about his ideology.
Neova’s training and development team often asked for feedback and conducted surveys to see how well the training program was working. When there were any problems, they quickly resolved them and made us feel extremely comfortable.
- Lack of time.
- Few sessions on React were online.
We had a lot of fun celebrating Diwali, Christmas, New Year, and Neovas 14th Anniversary during our internship.
We had proper evaluations done by the leads & managers. Our meetings were set up with the respective team leads of different departments. We were asked about our project execution and the things we learned in training.
That day, we were all tense in the conference room. We’ve all expressed our gratitude and shared our experiences.
The panel members told us “You certainly learned a lot about software here. whether you get selected or not, you will now have an experience that will help you achieve your goals.”
After that, they called us individually to announce the results, and we joined Neova Solutions.
Five Things I learned from this journey:
- Don’t be afraid to ask questions.
- Get involved and take responsibility.
- It is okay to make mistakes.
- Learn new technology.
- Keep an open mind and a positive attitude
Neova Solutions is the best place for continuous learning. Even today after 4 months of being an employee we are learning new things.
Be a part of our innovative team.
SuperTest, SuperAgent driven library for testing HTTP servers. It was authored by TJ Holowaychuk. It currently has around 11,992 stars, 768 issues, 73 maintainers and forked by 746 projects.
- HTTP Assertions
- Promise support
- The latest version of Node.js
- The latest version of NPM
Firstly, create a new project inside an empty directory and initialize it by running this command to create a default package.json file.
npm init -y
Once your project is initialized, you can use the following commands to set up the latest versions of the SuperTest, Mocha, and Chai libraries.
npm install –save-dev supertest mocha chai
Here I’m using mocha and chai but if you don’t like Mocha, there are similar frameworks like Jest or Jasmine. If Chai isn’t your cup of tea, other assertion libraries like should.js also work equally well.
That’s all you need to start creating automated tests for your API.
A request can be initiated by invoking the appropriate method on the request object, then calling .then() (or.end()) to send the request and in .set() we set the HTTP header attributes. For example, a simple GET request syntax looks like this:
First of all, we need to import the Supertest library and expect the library from chai to set up and start its respective functions in our tests. Headers for the request are set by using the set function.
It’s very simple to send a Post request with the test data by using the request function and then calling the post function and after that send function sends the request body. Then the function sends the request in response, body. Once the post request is sent successfully, all the data received in the response is validated using the expect function.
The data which we create asserted against the actual data coming in response, which assures that what we sent in post request is actually working or not from chai library.
Similarly, you can send a Get request by calling the Get function with the request function.
Once the get request is sent successfully, data is received in the response and status code 200 for validation using the expect function from the chai library.
For update, we use put request while this request we need to send the full body in the request like “name”, “gender”, ”email”, ”status”.
Here we are updating user/100 which we created previously. Once the Put request is sent successfully, assertions are done using the expect function from chai library, and values are compared using the expected property from data with actual values coming in response and status code 200.
Delete testing step is the easiest test compared to other tests, where we check by deleting users by delete request. We put assertions to check the status code as the data would be deleted once this request is sent. For a successful request, we expect status code 204.
- It can integrate nicely with other testing frameworks
- One of the nice things about SuperTest is that it can run tests without any additional tools.
- Supertest is great for implementing test assertions for HTTP API systems for both REST and GraphQL based backend middleware.
- It has a fluent API
- It makes HTTP assertions easy
- Can be mixed with different testing suites like Chai.js and Mocha.
- Old style callbacks are also supported.
- It doesn’t work on browsers.
- Poor Documentation.