0% found this document useful (0 votes)
7 views13 pages

Summer Intern Jenjdef

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views13 pages

Summer Intern Jenjdef

Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

1|Page

TITLE: TESTING AND AUTOMATION OF REST APIs


& WORKING WITH ANDROID APPLICATION IN
CREDIT CENTRAL TEAM

A REPORT SUBMITTTED IN PARTIAL FULFILLMENT


OF THE REQUIREMENT OF B.TECH 6TH SEMESTER
SUMMER INTERNSHIP (ONSITE- BANGALORE)
BY
AYUSH GUPTA
COMPANY
PIRAMAL CAPITAL & HOUSING FINANCE

DEPARTMENT OF ELECTRICAL ENGINEERING


NATIONAL INSTITUTE OF TECHNOLOGY SILCHAR
2|Page
3|Page

ACKNOWLEDGEMENT

First and foremost, I would like to express my gratitude towards the Director and
CEO of Piramal Finance for offering me this great internship opportunity to earn
exposure and garner knowledge in their esteemed organization.

I wish to extend my sincere and heartfelt gratitude to my Mentor who supported


and encouraged me during the entire duration of internship. I would also like to
extend my sincere gratitude to The Training & Placement Cell of National
Institute of Technology Silchar, for providing me an opportunity to undergo my
summer internship in this esteemed organization.

Participating in this internship has been an incredibly valuable learning


opportunity. It was a lifetime experience working with the team in the firm,
learning new technologies and implementing them in a stipulated span of time.

Name: Ayush Gupta


Sc. Id: 2013087
4|Page

ABSTRACT

In this industrial training tenure, I was subjected to various new development


platforms like Postman, IntelliJ IDEA, Android Studio, also production level
code debugging for projects based on technologies for automation and testing. I
have worked in individual as well as team projects along with other trainees. I
was able to execute my tasks and successfully complete my software internship
at Piramal Finanace. I was also appreciated by the whole team, my mentor and
our senior manager.
5|Page

TABLE OF CONTENTS

SL.NO. TOPIC PAGE

1 Certificate 2

2 Acknowledgment 3

3 Abstract 4

4 Introduction 6

5 Technology Stack 7-9

6 Work overview(Testing) 10

7 Work Overview(Android) 11

8 Conclusion 12
6|Page

INTRODUCTION

1. Internship Domain

• Testing and automation of REST APIs by implementing E2E test


cases using Rest assured in Java

• Understanding the architecture of Credit Central android application


and adding some UI functionalities for Used Car Loan.

2. Company Details

• Piramal Capital and Housing Finance Limited is a non-deposit


taking housing finance company, headquartered in Mumbai with
branches in major cities across India. PCHFL was established to
enable access to economical housing finance to the lower and middle
income groups in semi-urban and rural parts of India and is the
second housing finance company to be established in the
country. The company also leases commercial and residential
premises.
7|Page

Technology Stack

• Rest assured
o Rest assured is a Java library used for testing RESTful APIs. It
provides a fluent interface to create HTTP requests, validate the
responses, and perform various assertions on the API endpoints.
It's commonly used in combination with testing frameworks like
JUnit or TestNG for API testing.

• TestNG
o TestNG (Test Next Generation) is a testing framework for Java
primarily used for unit, functional, and integration testing. It's
an open-source testing framework that is influenced by JUnit
and NUnit but introduces some new functionalities that make it
more powerful and easier to use.

• Postman
o Postman is a popular collaboration platform for API
development that offers a comprehensive set of tools for
designing, testing, and managing APIs. It provides an intuitive
user interface for making HTTP requests, testing API endpoints,
generating and managing collections of API requests, and
automating API testing and monitoring.

• Jenkins
o Jenkins is an open-source automation server used for building,
testing, and deploying software. It facilitates Continuous
Integration (CI) and Continuous Deployment (CD) by
automating the different stages of the software development
process. Jenkins is often used in conjunction with version
control systems like Git, build tools like Maven or Gradle, and
deployment tools for automation in DevOps processes.

• GitHub
o GitHub is a web-based platform that utilizes the Git version
control system. It provides developers with repositories to store,
manage, and collaborate on code. Offering essential features
like branching, pull requests, and issue tracking, GitHub fosters
efficient collaboration and enables the development of open-
8|Page

source and private projects. It's a hub for social coding, allowing
developers to share and contribute to a wide array of projects,
while also supporting continuous integration and deployment
processes.

• Java
o Java is a widely-used, object-oriented programming language
known for its platform independence and versatility. Developed
by Sun Microsystems (now owned by Oracle), Java's write-
once-run-anywhere approach allows programs written in Java to
run on any device that supports Java without the need for
recompilation. Its strong focus on security, robustness, and ease
of use has made it a cornerstone in software development for
various applications, from web and mobile to enterprise
systems. With its vast ecosystem of libraries, frameworks, and
tools, Java remains a popular choice for developers worldwide.

• Kotlin
o Kotlin is a modern, statically typed programming language
designed to be fully interoperable with Java and Android.
Developed by JetBrains, it aims to enhance productivity by
offering concise, expressive syntax, strong null safety, and
functional programming features. Known for its versatility,
Kotlin can be used for various purposes, including backend
development, Android app creation, web applications, and
more. Its simplicity and interoperability with existing Java code
make it a popular choice among developers aiming for concise,
safe, and efficient coding.

• Android Studio
o Android Studio is the official Integrated Development
Environment (IDE) for Android app development, developed by
Google. It provides a comprehensive set of tools for designing,
building, and testing Android applications. Based on JetBrains'
IntelliJ IDEA, Android Studio offers features specifically
tailored for Android development, such as a layout editor,
emulator, performance profiling tools, and support for Kotlin,
Java, and C++ programming languages. It's widely used by
developers to create innovative and feature-rich mobile
9|Page

applications for the Android platform, offering a user-friendly


environment for the entire app development lifecycle.

• MongoDB
o MongoDB is a popular NoSQL database known for its flexible,
document-based structure and scalability. Instead of traditional
tables and rows, MongoDB stores data in collections of JSON-
like documents, allowing for easy manipulation and versatile
data modeling. It's widely used in modern applications due to its
ability to handle large volumes of data and its support for high
availability and horizontal scaling. MongoDB's schema-less
design offers adaptability to changing data structures, making it
a preferred choice for projects requiring a flexible and scalable
database solution.
10 | P a g e

Work Overview
Task1: Automation and Testing

The role of a software tester is integral in ensuring the quality, reliability, and
functionality of software applications. Here's an overview of my responsibilities
and tasks:

1. Understanding Requirements: collaborated with developers and


stakeholders to comprehend software requirements, features, and
functionalities.
2. Test Planning: developed test plans and strategies, outlining the
approach for testing, defining test cases, scenarios, and identifying the
testing environment.
3. Test Case Creation: designed test cases based on software requirements,
outlining steps to be executed for testing the functionality of the
application.
4. Execution: executed test cases manually or using automated testing
tools, examining the software's behaviour to identify defects, errors, or
deviations from expected results.
5. Defect Reporting: documented defects found during testing, providing
detailed reports with steps to reproduce issues and their impact on the
software.
6. Regression Testing: After resolving defects, performed regression
testing to ensure that new changes haven't affected existing
functionalities.
7. Automation: They utilize automation tools to create automated test
scripts, increasing testing efficiency for repetitive tasks.
8. Performance Testing: Testers may conduct performance, load, or stress
testing to ensure the application can handle expected volumes of users
and data.
9. Collaboration: They work closely with developers, product managers,
and other team members, communicating test results and progress while
coordinating efforts to deliver a high-quality product.
10. Continuous Improvement: Testers contribute to process improvement
by providing feedback on testing methodologies, tools, and best practices
to enhance the overall quality assurance process.
In summary, created 70+ test cases for 20+ REST APIs from scratch with
appropriate assertions providing E2E automation for Used Car Loan and
Personal Loan.
11 | P a g e

Work Overview
Task2: Android Architecture

The architecture followed for credit central team is MVVM architecture. Here's
a brief breakdown of the components in MVVM:

1. Model: Represents the data and business logic of the application. It


encapsulates the data and exposes methods to manipulate that data. The
Model doesn't directly communicate with the View.
2. View: Represents the user interface, what the user sees and interacts with.
It's responsible for displaying the data and capturing user input. In
MVVM, the View is more passive and doesn't contain the business logic.
It observes the ViewModel for updates and binds to its properties.
3. ViewModel: Acts as an intermediary between the Model and the View. It
exposes data and commands that the View can bind to. The ViewModel
retrieves data from the Model and prepares it for the View, often
transforming or formatting it. It also handles user actions, such as button
clicks, and updates the Model accordingly. The key aspect of the
ViewModel is that it doesn't have any direct reference to the View,
promoting separation of concerns.
4. Data Binding: A significant feature of MVVM is the use of data binding
to connect the View and ViewModel. It allows changes in one part of the
architecture to be automatically reflected in the other without explicit
communication.

Key elements of the UI in an Android app include:

5. Layouts: XML-based files that define the structure and arrangement of


UI components such as TextViews, EditTexts, Buttons, ImageViews, etc.
Layouts, like LinearLayout, RelativeLayout, ConstraintLayout, etc., are
used to organize these components on the screen.
6. Views and Widgets: These are UI components that display information
or interact with users. TextViews for displaying text, EditTexts for user
input, Buttons for triggering actions, ImageViews for displaying images,
etc.
7. Activities and Fragments: Activities represent individual screens or
windows in an Android app. Fragments are smaller, reusable portions of
the UI within an activity. They can be added, removed, or replaced within
an activity.
12 | P a g e

8. Resources: Android apps use various resources like strings, colors,


dimensions, styles, and themes to maintain consistency and flexibility in
the UI design.
9. Navigation: Android apps often have a navigation structure allowing
users to move between different screens or sections within the app. This
could be managed through navigation components,
BottomNavigationView, Navigation Drawer, etc.
10. Event Handling: It involves responding to user interactions, such as
button clicks, swipes, or taps, by writing event-handling code to perform
the necessary actions.

In UI of the application, added layout for description activity(UCL) storing all


valid information according to the requirement under the guidance of senior
developers. Also, learned about the overall flow of data from database to
display on screen.
13 | P a g e

CONCLUSION
During this internship, I was exposed to many new areas of how things actually
work in an enterprise and how the theoretical knowledge on some technology
stacks are practically employed in use for businesses around the world.
I was also able to work on my team working skills. Evey time a task was
allotted to me I had to first gain some insights of that particular domain and
later on implement it within some prescribed time frame, so the challenges were
the best motivator for our work throughout the journey.
I got to interact with working professionals all around the globe. My work was
praised by the senior managers, software developers as well as the technical
head of the department.
All in all, it was a thrilling and great learning experience to get some insights of
the corporate world and having worked for client projects have their lows and
highs eventually at different circumstances.

Thank You
Ayush Gupta
Scholar ID: 2013087

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy