INTERNSHIP REPORT
A report submitted in partial fulfillment of the requirements for the Award of Degree of
BACHELOR OF TECHNOLOGY
in
Computer Science and Engineering (Data Science )
by
ALOK KUMAR (Roll - 10330521005)
Under Supervision of Harismitha Srinivasan , POC at
Cognizant Technology Solutions India pvt. Ltd
DEPARTMENT OF COMPUTER SCIENCE AND ENGINEERING (DATA SCIENCE)
HALDIA INSTITUTE OF TECHNOLOGY
HALDIA, WEST BENGAL
1
DATE:05/06/2025
CERTIFICATE
This is to certify that Mr. Alok Kumar, a student of Bachelor of Technology in Computer Science and
Engineering (Data Science) at Haldia Institute of Technology, is currently undergoing his internship at
Cognizant Technology Solutions India pvt. Ltd .His performance and contribution during the internship
are satisfactory and met the expectations of the organization.This certificate is being issued as a part of his
academic requirement for the partial fulfillment of the degree.
________________________
Ms. Minakshi Sarkar (Faculty Mentor)
Assistant Professor
Dept. of Computer Science & Engineering (Data Science)
Haldia Institute of Technology
____________________________________
Dr. Sumit Kumar Maiti
Professor HOD
Dept. of Computer Science & Engineering (Data Science)
Haldia Institute of Technology
1 | Page
ACKNOWLEDGEMENT
I extend my sincere gratitude to Cognizant Technology Solutions for offering me the opportunity
to undergo an internship in the domain of Automation Testing. It was a valuable learning
experience where I was able to work with industry-standard tools and frameworks like Selenium
WebDriver, Java, TestNG, Apache POI, and the Page Object Model (POM) design pattern.
I am also grateful to my institution, Haldia Institute of Technology, and the Department of
Computer Science and Engineering (Data Science) for their support throughout the internship period.
I would especially like to thank my Head of Department, Dr. Sumit Kumar Maiti, all faculty
members, faculty members, and peers who motivated me throughout the journey.
2
ABSTRACT
The internship at Cognizant Technology Solutions focused on Automation Testing using Selenium
WebDriver with Java. The project aimed to develop a robust and reusable test automation
framework that supports cross-browser testing, report generation, and data-driven testing using
Apache POI for Excel integration.
The core idea was to automate the regression and functional testing of web applications to improve
efficiency, reduce human error, and support Agile practices. The internship helped me gain hands-
on experience with TestNG for test execution and management, POM (Page Object Model) for test
code modularity, and writing reusable, maintainable scripts. This report outlines the tools used, key
functionalities implemented, learning outcomes, and the results of the automation effort.
3
INDEX
S.no CONTENTS Page no
1. Introduction 7
2. Software/Hardware requirements specifications 8
3. Internship Experience 10
4. Project and code implementation 17
5. Results 22
6. Conclusion 24
7. References 25
4
Learning Objectives
The primary objective of this internship was to gain practical, hands-on experience in automated
testing of web applications using industry-standard tools and technologies. The internship provided
exposure to the software testing lifecycle, particularly the use of Selenium WebDriver in
conjunction with Java, TestNG, Apache POI, and the Page Object Model (POM) design pattern.
The key learning outcomes are summarized as follows:
1. Understanding of Automation Testing Concepts
○ Gained knowledge about different types of testing such as functional, regression,
smoke, and sanity testing.
○ Understood the benefits of automation over manual testing, especially in Agile
environments.
2. Selenium WebDriver Proficiency
○ Learned how to use Selenium WebDriver to automate web applications across
different browsers.
○ Implemented various user interactions like clicking buttons, filling forms, handling
dropdowns, and validating UI elements.
3. Java Programming for Test Scripting
○ Applied Java concepts such as object-oriented programming, exception handling,
and collections in the creation of test cases.
○ Built reusable test methods and utility classes to reduce code duplication.
4. TestNG Framework Implementation
○ Used TestNG annotations for organizing and controlling test execution flow
(@BeforeMethod, @AfterMethod, @Test, etc.).
○ Implemented assertions to verify expected outcomes.
○ Managed test case prioritization, grouping, and suite execution using testng.xml.
5. Page Object Model (POM)
5
○ Designed scalable and maintainable test frameworks using the Page Object Model.
○ Created separate classes for each page containing web element locators and
associated methods.
○ Enhanced code reusability and separation of concerns.
6. Data-Driven Testing Using Apache POI
○ Learned to integrate Apache POI to read and write test data from Excel
spreadsheets.
○ Developed test cases that executed with multiple sets of input data from external
Excel files.
7. Maven Build Management
○ Used Maven for dependency management and project structure organization.
○ Added Selenium, TestNG, and Apache POI libraries using the pom.xml
configuration.
8. Error Handling and Debugging
○ Identified and resolved issues related to element locators, synchronization (waits),
and runtime exceptions.
○ Used logging and console outputs to trace execution and debug failures.
9. Test Report Generation
○ Generated HTML reports using TestNG’s built-in reporting feature.
○ (Optional) Explored ExtentReports for customized and interactive reporting.
10. Version Control using Git
○ Maintained code versions and collaborated using Git and GitHub.
○ Learned basic Git operations like commit, push, pull, and branching.
6
1. INTRODUCTION
Software testing plays a critical role in the Software Development Life Cycle (SDLC), ensuring that applications
meet functional and performance requirements before they are released to users. In today’s fast-paced development
environments, automation testing has emerged as an essential practice to improve efficiency, accuracy, and test
coverage. It reduces manual effort, speeds up test execution, and allows for continuous integration and delivery.
During my internship at Cognizant Technology Solutions India Pvt. Ltd., I had the opportunity to work on
automation testing of web-based applications using Selenium WebDriver, Java, TestNG, Apache POI, and
the Page Object Model (POM) design pattern. The internship was focused on designing and implementing a
reusable and maintainable test automation framework to validate the functionality of various modules of a web
application.
The automation scripts were written in Java, leveraging Selenium WebDriver to simulate real user interactions
such as clicking buttons, filling out forms, navigating pages, and verifying UI elements. The use of the TestNG
framework allowed for better test case management, assertions, grouping, and reporting. Furthermore, Apache
POI was integrated to perform data-driven testing, where multiple sets of inputs were read from Excel files and
executed through the same test scripts. The Page Object Model was used to organize locators and interaction
methods in a modular structure, enhancing code readability and reusability.
This project helped me bridge the gap between academic knowledge and industrial practices. It provided a deep
understanding of automation workflows, best practices in testing, and real-world applications of test frameworks.
It also emphasized the importance of writing clean, scalable, and maintainable test code, which is critical in
enterprise-level projects.
Overall, the internship was a valuable learning experience that improved my technical and analytical skills, making
me more confident and prepared for a career in the software testing domain.
7
2. SOFTWARE/HARDWARE REQUIREMENTS
SPECIFICATIONS
System configurations
• To successfully develop and execute the automation testing framework, the following software and
hardware components were required. These specifications ensured a smooth development experience and
efficient execution of automated test cases during the internship.
Software Requirements:
Component Specification / Tools Used
Operating System Windows 10 / 11 (64-bit)
Programming Java (JDK 11 or above)
Language
Testing Tool Selenium WebDriver (Version 4.x)
Testing Framework TestNG (Version 7.x)
Excel Integration Apache POI (Version 5.x)
Build Tool Maven (For dependency management and project build)
IDE (Editor) IntelliJ IDEA / Eclipse
Browser Google Chrome, Mozilla Firefox (Latest versions for
testing)
Version Control Git and GitHub
Reporting Tool TestNG default HTML reports / ExtentReports (optional)
8
• Hardware Requirements:
Compone Specification
nt
Processor Intel Core i3 / i5 or higher (Quad-core recommended)
RAM Minimum 8 GB (Recommended: 16 GB for smoother parallel execution)
Storage At least 10 GB of free space for tools, scripts, and temporary files
Display Minimum 1366x768 resolution (Recommended: Full HD for better
workspace)
Internet Required for Maven dependencies, GitHub access, and browser drivers
9
3.Internship Experience
Weekly Training Report
Stage 1: Core Java
Course Segment: Java Basic Programming, Applying Object Oriented Concepts, Collections Framework,
Arrays & Strings, Exception Handling, Thread Handling, File Handling, JDBC Overview, Java 8 Basics,
Advanced Topics
Delivery Method: Self-Paced Learning/ILT
Duration: 67 Hours
Day-wise: Day 1 - 15
Hands-on: Tekstac / BU Driven Hands-on
Duration: 42 Hours
Assessments:
- Code Challenge: Group 1 (2 Hours)
- Code Challenge: Group 2 (2 Hours)
- ICT - CORE JAVA SKILL WAR - SKILL BASED ASSESSMENT (4 Hours)
SQL:
Course Segment: SQL Basics, Database Design & Data Analysis, Cross-Platform Installation Guides, SQL
Queries, Advanced SQL Functions, Aggregate Functions, Subqueries, MySQL Functions, Hands-on Tutorials
Delivery Method: Self-Paced Learning/ILT
Duration: 17 Hours
Day-wise: Day 16 - 19
10
Hands-on: Tekstac / BU Driven Hands-on
Duration: 8 Hours
Assessments:
- Code Challenge 2 - DDL, DML & Select Statement (2 Hours)
- Code Challenge 3 - JOINS and SUBQUERIES (2 Hours)
- Code Challenge 4 - Scalar, Aggregate (2 Hours)
Business Mentor Connect (Week 2 & 4): 4 Hours
Mock: 3 Hours (Day 17)
BH Training (Weekly 4 hours): 16 Hours
ASSESSMENT on JAVA (SBA): 18 Hours (Day 20 - 21)
Stage 2: Functional Testing
Course Segment: Functional testing, Agile and Jira, STLC, Types of Testing, Automated functional tests, Agile
Testing + Jira Tool, Cognizant templates for Agile deliverables
Delivery Method: Self-Paced Learning/ILT
Duration: 24 Hours
Day-wise: Day 22 - 26
Hands-on: Testing fundamental - STLC
Duration: 6 Hours
Assessments:
- Integrated Capability Test (ICT) - Functional Testing (4 Hours)
- Business mentor connect (2 Hours)
11
Selenium Automation:
Course Segment: Automation Concepts, Selenium configuration, WebDriver Basics, Selenium Automation
Techniques, Dynamic Xpath, Selenium Webdriver With POM and ApachePOI, Automation Testing - Selenium
with TestNG
Delivery Method: Self-Paced Learning/ILT
Duration: 64 Hours
Day-wise: Day 27 - 43
Hands-on: Tekstac / BU Driven Hands-on
Duration: 40 Hours
Assessments:
- Code Challenge - Automation Concepts, Selenium configuration, WebDriver Basics (2 Hours)
- Code Challenge - Selenium Automation Techniques, Dynamic Xpath (2 Hours)
- Code Challenge - Selenium Webdriver With POM and ApachePOI (2 Hours)
- Code Challenge - Selenium Automation Testing - Selenium with TestNG (2 Hours)
- Integrated Capability Test (ICT) - MOCK Selenium (4 Hours)
- Daily Mock interview (4 Hours)
Mini Project: 10 Hours
GenAI: Fundamentals of Gen AI (4 Hours, Day 24 & 27)
Interim Project and Interim Technical Evaluation: 18 Hours (Day 44 & 45)
Automation Framework: 10 Hours (Day 46)
Hackathon Project Completion: 8 Hours
Integrated Capability Test (ICT) - Selenium: 4 Hours
DevOps
Course Segment: GIT, Maven, grid, Jenkins
Delivery Method: Self-Paced Learning/ILT
Duration: 24 Hours
12
Day-wise: Day 47 - 54
Hands-on: Tekstac / BU Driven Hands-on
Duration: 19 Hours
Assessments:
- Business mentor connect (2 Hours)
- Hackathon Project (20 Hours)
BDD
Course Segment: Cucumber
Delivery Method: Self-Paced Learning/ILT
Duration: 18 Hours
Day-wise: Day 55 - 56
API Automation
Course Segment: POSTMAN, REST, SOAP & WSDL using tools, RESTASSURED
Delivery Method: Self-Paced Learning/ILT
Duration: 45 Hours
Day-wise: Day 57 - 61
DevOps Tools
Course Segment: Docker & Container
Delivery Method: Self-Paced Learning/ILT
Duration: 9 Hours
Day-wise: Day 62
13
Experimental - Field Trips
Course Segment: Weekly live project visit to understand real-time work environment and Test Lab visit
Delivery Method: ILT
Duration: 12 Hours
Final Project Evaluation
Course Segment: Final Project Evaluation + Final Technical Evaluation
Duration: 27 Hours
Day-wise: Day 63 - 65
BH Training
Course Segment: Weekly 4 hours training
Duration: 24 Hours
Tools and Technologies Used
TekStack
Platform for structured learning, hands-on labs, and assessments. It provides a comprehensive environment for
learners to engage with course materials, complete practical exercises, and undergo assessments.
Eclipse IDE
Integrated Development Environment used for Java development and debugging. It offers a robust set of tools
for coding, testing, and debugging Java applications, making it an essential tool for developers.
Selenium
Automation tool for web application testing. Selenium allows testers to write scripts in various programming
languages to automate browser actions, ensuring that web applications function correctly.
14
Apache POI
Java API for reading and writing Microsoft Office documents. It is used in Selenium projects to handle Excel
files, enabling automated tests to interact with spreadsheets for data-driven testing.
TestNG
Testing framework for Java, used for test configuration and reporting. TestNG provides advanced features like
parallel test execution, test configuration, and detailed reporting, making it a powerful tool for automated testing.
DevOps Tools
Includes Git, Maven, Jenkins, Docker, and Grid for CI/CD and automation. These tools facilitate continuous
integration and continuous deployment (CI/CD), version control, build automation, containerization, and
distributed testing, streamlining the development and deployment process.
2.c) Skills Acquired
● Explain features of Java and the model of the Java programming language.
● Describe and set environment variables to enable Java compiler and runtime functionality.
● Implement core Java fundamentals, control flow statements, operators, and object creation.
● Apply object-oriented concepts: constructors, access specifiers, encapsulation, inheritance, abstraction,
overloading, overriding, and polymorphism.
● Write Java code using variables, arrays, conditionals, and loops to meet program objectives.
● Handle exceptions effectively using Java.
● Use the String API to manipulate numeric, text, and string data.
● Utilize Collection and Utility APIs for dynamic programming in Java.
● Work with IO Stream and File APIs to manage data streams and file operations.
● Implement JDBC for database connectivity and operations using Java.
● Understand database concepts and design databases based on application requirements.
● Write and execute SQL queries to retrieve, update, and manage data.
● Use DDL, DML, and DCL commands in SQL.
● Apply SQL operators, functions, and clauses in queries.
● Perform joins, subqueries, and advanced SQL operations.
● Format and organize query results for reporting and display.
● Understand Agile methodology and various software testing types (unit, integration, regression,
system).
● Follow the functional testing lifecycle phases based on business requirements.
● Analyze and prioritize requirements.
● Identify testable and non-testable requirements.
● Define and document test strategies and plans.
15
● Design positive and negative test scenarios and derive test cases.
● Execute tests and log results.
● Define and manage defects through their lifecycle.
● Perform regression testing and understand its significance.
● Conduct test closure activities and reporting.
● Understand Selenium automation tool architecture and components.
● Develop proof-of-concept scripts and automate smoke and regression test suites.
● Use Selenium APIs for cross-browser web application testing.
● Apply locator techniques and tools for element identification.
● Work with TestNG and Apache POI for structured test automation and data handling.
● Externalize test data using JSON and XML for Selenium automation.
● Understand and implement Continuous Integration using Jenkins.
● Configure Jenkins for job creation and plugin management.
● Understand and implement Continuous Deployment using Maven.
● Configure Maven and understand its build lifecycle.
● Differentiate between Git, GitHub, and GitLab.
● Install and configure Git, manage files via CLI, and handle repositories.
● Use Selenium Grid for distributed test execution across platforms and environments.
16
4. Project and Code Implementation
Project Objective
To automate the EMI calculation process on MagicBricks Home Loan EMI Calculator using user input values
such as:
● Loan Amount
● Loan Tenure
● Interest Rate
● Property Finalization Status
and validate the calculated EMI output displayed on the webpage.
Key Functional Steps
1. Launch Browser & Navigate to Site:
○ The script uses EdgeDriver to launch the browser and open the MagicBricks homepage.
○ The window is maximized for optimal visibility and interaction.
2. Mouse Hover to Access Submenu:
○ Used Actions class to hover over the “Home Loans” menu and then click on the “EMI
Calculator” option under it.
3. Handle Multiple Windows:
○ As clicking the EMI Calculator opens a new tab, the script uses getWindowHandles() to switch to
the correct window based on the page title.
4. Input Loan Details:
17
○ Loan Amount: Clears and enters the new amount using keyboard actions (CTRL + A and
Backspace) for accuracy.
○ Tenure Selection: Opens the dropdown and selects "10 yrs" from the list.
○ Interest Rate: Clears existing value and inputs the custom rate.
○ Property Finalization: Selects “No” option via radio button.
5. Submit the Form and Fetch Results:
○ Clicks the “Calculate” button.
○ Waits implicitly for results to load.
○ Retrieves and prints the calculated monthly EMI from the output section.
Code Snippet Overview
EdgeDriver driver = new EdgeDriver();
driver.get("https://www.magicbricks.com/");
driver.manage().window().maximize();
1. Hover on 'Home Loans' and click 'EMI Calculator'
WebElement loan = driver.findElement(By.xpath("//a[normalize-space()='Home Loans']"));
WebElement emical = driver.findElement(By.xpath("//a[contains(@href, 'emi-calculator')]"));
Actions act = new Actions(driver);
act.moveToElement(loan).moveToElement(emical).click().perform();
2. Switch to new tab
18
Set<String> win = driver.getWindowHandles();
for(String sd : win) {
driver.switchTo().window(sd);
if(driver.getTitle().equals("Home Loan EMI Calculator - Calculate Year-wise EMI Repayment Details
Online")){
break;
3. Input Loan Amount
WebElement input = driver.findElement(By.xpath("//input[@id='amountRequiredEmiCal']"));
act.moveToElement(input).click().pause(500)
.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL)
.keyDown(Keys.BACK_SPACE).keyUp(Keys.BACK_SPACE).perform();
input.sendKeys("3456456");
4. Select Tenure
driver.findElement(By.xpath("//div[contains(@class, 'select')]")).click();
driver.findElement(By.xpath("//li[normalize-space()='10 yrs']")).click();
5. Input Interest Rate
WebElement rate = driver.findElement(By.xpath("//input[@id='interestRateEmiCal']"));
act.moveToElement(rate).click().pause(500)
.keyDown(Keys.CONTROL).sendKeys("a").keyUp(Keys.CONTROL)
19
.keyDown(Keys.BACK_SPACE).keyUp(Keys.BACK_SPACE).perform();
rate.sendKeys("8.85");
6. Select 'No' for property finalized
driver.findElement(By.xpath("//label[@for='emiPropFinalizedNo']")).click();
7. Submit and fetch EMI
driver.findElement(By.xpath("//a[@id='submitbuttonEmiCalid']")).click();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
System.out.println(driver.findElement(By.xpath("//span[@id='perMonthEmi']")).getText());
Automation Concepts Demonstrated
● Browser automation using Selenium WebDriver with Edge.
● Mouse hover and submenu selection using Actions class.
● Window/tab switching using getWindowHandles() and switchTo().window().
● DOM interaction and element manipulation (e.g., clearing input fields, sending keys).
● Dropdown handling and dynamic element selection.
● Radio button selection and form submission.
● Fetching and printing result using XPath locators.
● Use of Actions class for keyboard simulation (Ctrl+A, Backspace).
20
Output Example
₹43,505 per month
This project helped reinforce concepts like dynamic XPath handling, synchronization (using implicit waits),
multi-window handling, and complex user interactions through Selenium. It served as a practical exercise to
apply theoretical automation knowledge in solving real-world UI challenges.
21
5. RESULTS
The automation script for the MagicBricks Home Loan EMI Calculator was executed successfully using Selenium
WebDriver with Java. The test case automated the full flow—from navigating to the website, interacting with dynamic
menus, entering loan details, to retrieving the calculated EMI.
The script demonstrated the ability to perform advanced user interactions such as:
● Hovering over menu items,
● Handling multiple browser windows,
● Clearing and entering input values with keyboard actions,
● Selecting dropdown values dynamically, and
● Extracting text results from the webpage.
Once all fields (loan amount, tenure, interest rate, and property status) were entered and submitted, the EMI result was
displayed and successfully captured through Selenium.
22
23
6. CONCLUSION
The internship at Cognizant Technology Solutions provided valuable hands-on experience in the field of
automation testing using modern tools and frameworks such as Selenium WebDriver, Java, TestNG, Apache
POI, and the Page Object Model (POM). Through this project, I was able to bridge the gap between theoretical
learning and practical application in a real-time testing environment.
The automation of the MagicBricks Home Loan EMI Calculator web application demonstrated the successful
execution of key testing tasks such as element identification, user interaction simulation, window handling, data
entry, result validation, and dynamic DOM manipulation. By automating this scenario, the time required to perform
repetitive manual testing was significantly reduced, thereby increasing overall efficiency and accuracy.
Additionally, implementing the POM design pattern helped maintain clean, reusable, and modular code, which
is essential for managing large-scale automation frameworks. Integrating Apache POI for data-driven testing laid
the foundation for flexible test scenarios involving external data sources.
The overall learning from this internship has strengthened my understanding of the software testing lifecycle,
automation architecture, framework design principles, and real-time testing challenges. I now feel more confident
and industry-ready to take on responsibilities in the field of Quality Assurance (QA) and Test Automation
Engineering.
This internship has been an enriching experience and has prepared me with the essential skills required to
contribute effectively to any software testing team in a professional environment.
24
7. REFERENCES
Selenium WebDriver Documentation
● URL: https://www.selenium.dev/documentation/webdriver/
● Description: Official documentation for Selenium WebDriver, covering browser automation APIs,
supported languages, and advanced usage.
TestNG Framework Documentation
● URL: https://testng.org/doc/
● Description: Comprehensive guide on using TestNG for test management, annotations, suite
configuration, and reporting.
Apache POI User Guide
● URL: https://poi.apache.org/components/spreadsheet/index.html
● Description: Used for implementing Excel-based data-driven testing.
Java SE Documentation
● URL: https://docs.oracle.com/en/java/javase/
● Description: Reference for Java syntax, classes, and APIs used for writing automation scripts.
MagicBricks EMI Calculator Page
● URL: https://www.magicbricks.com/homeloan/emi-calculator
● Description: The target application under test for this automation project.
25
Maven Official Documentation
● URL: https://maven.apache.org/guides/
● Description: Used for managing project dependencies like Selenium, TestNG, and Apache POI.
W3Schools / GeeksforGeeks / Stack Overflow
● URLs:
○ https://www.w3schools.com/
○ https://www.geeksforgeeks.org/
○ https://stackoverflow.com/
● Description: Used as additional learning platforms for resolving implementation doubts and best
practices in Selenium and Java.
26