Professional Documents
Culture Documents
Intern Report
Intern Report
ON
QUALITY ENGINEERING ASSURANCE WITH SELENIUM &
JAVA INDUSTRIAL TRAINING AT
1
TRAINING COMPLETION CERTIFICATE
2
CANDIDATE’S DECLARATION
I hereby certify that the work which is being presented in this project report on “QUALITY
ENGINEERING ASSURANCE SELENIUM & JAVA” submitted to “J.C. BOSE UNIVERSITY OF
SCIENCE & TECHNOLOGY, YMCA (FARIDABAD)”, for acceptance as the training report for 8 th
semester of degree in Bachelor of Technology in Electrical Engineering is prepared by me and the same
has not been submitted to any other Institution for any degree.
ASHUTOSH MISHRA
(18001007013)
J.C. Bose University of Science and Technology,
YMCA, Faridabad
3
EXAMINER CERTIFICATE
The Following examiners have accessed the project report and conducted the viva-voce Examination:
4
ACKNOWLEDGMENT
The internship opportunity I had with Cognizant was a great experience for learning and professional
development. Therefore, I am grateful to TPO of our college for provided me with an opportunity to be apart of
this company. I enjoyed my time at the company and g to have met so many wonderful people and professionals
who led me through the internship period. Special thanks to my Mentor-Ajit Singh, Coach-Mridula
Kapoor ,Trainer- Lakshmi Narasimhan for helping me and guiding me throughout my internship period in
Cognizant .Giving necessary advice and arranging all facilities during this time to make things easier .Solving my
doubts whenever needed, motivating me to do my best. I perceive this opportunity as a big milestone in my career
development. I will strive to use gained skills and knowledge in the best possible way and I will continue to work
on their improvement in order to attain desired career objectives. I am also grateful to Dr Sanjeev kumar
(Training & Placement officer) for conducting the Internship Drive in University successfully. Expressing my
heartiest gratitude to Dr. Anju Gupta (ChairpersonofElectrical Department) and Ms. Shipra Aggarwal
(coordinator) &Dr. Anubha Gautam(Mentor) for theirconstant encouragement and assistance during the
project period
ASHUTOSH MISHRA
18001007013
5
TABLE OF CONTENT
6
CHAPTER 1
COMPANY PROFILE
Cognizant Technology Solutions, founded on January 26, 1994 by Kumar Mahadev and Francisco
D’Souza, is an American multinational IT services provider. It is headquartered in Teaneck, New
Jersey, United States. Cognizant is part of the NASDAQ-100 and trades under CTSH. It also provides
information technology, consulting, and business process outsourcing services.
Cognizant provides information technology, information security, consulting, ITO and BPO
services.The company also develops, licenses, implements, and supports proprietary and third-party
software products and platforms.
Cognizant drives and executes large business and IT transformation programs, and management
consulting engagements. The company also helps clients position better compared to their competitors
by conceptualizing and building innovative solutions. With a leadership team comprised of veterans of
top tier consulting firms and the industry, Cognizant claims to be building "a global talent base to
provide 'Tier 1' consulting services with a deep domain expertise."
DIGITAL BUSINESS
Reshaping business models, modernizing products and services, and enhancing customer experiences to
drive growth
• Digital Strategy
• Connected Products
• Artificial Intelligence
• Interactive
7
• Softvision Digital Engineering
DIGITAL OPERATIONS
Reinventing and managing an organization’s most essential business processes with new ways of working.
• Industry & Platform Solutions
• Intelligent Process Automation
• Enterprise Services
DIGITAL OPERATIONS
Reinventing and managing an organization’s most essential business processes with new ways of
working.
• Industry & Platform Solutions
• Intelligent Process Automation
• Enterprise Services
CONSULTING
Working across these digital practice areas, and across industries, to help clients define their path to
becoming digital.
8
STRATEGIC CAPABILITIES
When we do digital for clients, we systematically rethink how they create value in their organizations
with six key capabilities:
Core Modernization
Artificial Intelligence
Intelligence Process Automation
Industry & Platform Solutions
Digital Engineering
In the course of dot com boom, it flourished by receiving the application maintenance work and
gradually moved into application development complex systems integration and consulting work. It
grew rapidly during the 2000s and became a Fortune 500 company in 2011. It is a member of the
NASDAQ-100, the S & P 500, the Forbes Global 2000.
9
CHAPTER 2
INTRODUCTION
Role: Programmer Analyst
Trainee
Cognizant provides 4 to 6 months internship for its campus selected students for PAT (Programme
Analyst Trainee) role. This program engages young talents with a comprehensive learning pathway,
giving these millennial an opportunity to interact with Subject Matter Experts (SME) and understand the
corporate environment and groom themselves even before they join us.Cognizant emphasizes on Learner
Autonomy where students take charge of their own learning, with the available tools and resources.
More focus is on “learning” than “teaching”.
Gen C learning program engages young talents with a comprehensive learning pathway, giving the
millennials an opportunity to interact with Subject Matter Experts (SME), understand the corporate
environment, and groom themselves.
Cognizant emphasizes on Learner Autonomy where students take charge of their own learning, with the
available tools and resources. More focus is on “learning” than “teaching”. Get ready to embark your
own learning adventure!
Program at a glance
Program Highlights
• The complete learning journey is formalized using adult learning principles, where problem
solving and applying the skills gained are given more importance than conceptual learning.
• Learner Autonomy is encouraged via Flipped Classroom, where the learning platform offers
world class learning resources, and students would not be constrained by tutelage of an
instructor.
• Get mentored by SME, whose motivation and guidance will help you accelerate in the learning
journey.
10
• This program is applicable to Interns as well as GEN Cs.
11
2.3 PROGRAM SEQUENCE
12
KEY LEARNING COMPONENTS OF THE PROGRAM
Cognizant has collaborated with Udemy to provide world class learning videos for the evolving future
of work. These Udemy programs are woven into a learning path, empowering you to plan and learn at
your style.
The program also connects with Subject Matter Experts (SMEs) to get the professional guidance on
queries in the learning journey.
The program continuously evaluates if one isable to apply those self-learnt skills to solve a business
problem. Depicted below are the three key learning components, which are distributedacross the learning
journey for the purpose of continuous evaluation.
Throughout the learning path, all the Mandatory Learning Components will attribute to the Performance
Health Score. Additional Learning Components helps to enhance expertise level.
BH SESSION
Business communication is the process of sharing information between people within and outside a
company. Effective business communication is how employees and management interact to reach
organizational goals. Its purpose is to improve organizational practices and reduce errors.
We have 2 hours sessions for 3 weeks in the afternoons apart from the regular schedule. This is a platform
13
where we get to know each other and also about ourselves. We are rated based on our communication
and interpersonal skills.
Agile training is a way to improve project performance by teaching the basic concepts of Agile to an
organization or team and how to implement it. While a lot of people talk about using Agile, there are
many misunderstandings about the distinctions between different methods.
DevOps is a set of practices that combines software development (Dev) and IT operations (Ops). It aims
to shorten the systems development life cycle and provide continuous delivery with high software
quality. We had workshops on each topic for an entire day handled by one of the company's most
experienced personnel. Since we need to use this on our project and it's essential for all the projects in
which we are going to be deployed.
Along with special training mediation sessions were also arranged for all of us with unwind radio
sessions too to make the associate work pressure free, in which different songs from different cultures
were played so that diversity can be maintained between the employees.
INTRODUCTION
14
3.2 DASHBOARD
PERFORMANCE TRACKER
The performance tracker keeps a track of every week’s hands-on done, assessment scores and the overall
performance of each intern. Below are some glimpses of the same.
15
DISCUSSION FORUM
16
QUALITY ASSURANCE IN SOFTWARE TESTING:
Quality Assurance in Software Testing is defined as a procedure to ensure the quality of software
products or services provided to the customers by an organization. Quality assurance focuses on
improving the software development process and making it efficient and effective as per the quality
standards defined for software products. Quality Assurance is popularly known as QA Testing.
Quality Assurance methodology has a defined cycle called PDCA cycle or Deming cycle. The
phases of this cycle are:
Plan
Do
Check
Act
These above steps are repeated to ensure that processes followed in the organization are evaluated and
improved on a periodic basis. Let's look into the above QA Process steps in detail
• Plan - Organization should plan and establish the process related objectives anddetermine the
processes that are required to deliver a high-Quality end product.
• Do - Development and testing of Processes and also "do" changes in the processes
• Check - Monitoring of processes, modify the processes, and check whether it meets the
predetermined objectives.
• Act - A Quality Assurance tester should implement actions that are necessary to achieve
improvements in the processes.
An organization must use Quality Assurance to ensure that the product is designed and implemented
with correct procedures. This helps reduce problems and errors, in the final product.
17
Quality Control:
Quality control popularly abbreviated as QC. It is a Software Engineering process used to ensure quality
in a product or a service. It does not deal with the processes used to create a product; rather it examines
the quality of the "end products" and the final outcome.
Sometimes, QC is confused with the QA. Quality control is to examine the product or serviceand
check for the result. Quality Assurance in Software Engineering is to examine the processes and
make changes to the processes which led to the end-product.
18
SELENIUM:
Selenium is an open source umbrella project for a range of tools and libraries aimed at
supporting browser automation.[3] It provides a playback tool for authoring functional tests across most
modern web browsers, without the need to learn a test scripting language (Selenium IDE).[4] It also
provides a test domain-specific language (Selenese) to write tests in a number of popular programming
languages, including JavaScrip
Selenium IDE is a complete integrated development environment (IDE) for Selenium tests. It is
implemented as a Firefox Add-On and as a Chrome Extension. It allows for recording, editing and
debugging of functional tests. It was previously known as Selenium Recorder. Selenium-IDE was
originally created by Shinya Kasatani and donated to the Selenium project in 2006. Selenium IDE was
previously little-maintained.[9] Selenium IDE began being actively maintained in 2018.[10][11][12][13]
Scripts may be automatically recorded and edited manually providing autocompletion support and the
ability to move commands around quickly. Scripts are recorded in Selenese, a special test scripting
language for Selenium. Selenese provides commands for performing actions in a browser (click a link,
select an option) and for retrieving data from the resulting pages.
Selenium Grid is a server that allows tests to use web browser instances running on remote machines.
With Selenium Grid, one server acts as the central hub. Tests contact the hub to obtain access to browser
instances. The hub has a list of servers that provide access to browser instances (WebDriver nodes), and
lets tests use these instances. Selenium Grid allows running tests in parallel on multiple machines and to
manage different browser versions and browser configurations centrally (instead of in each individual
test).
The ability to run tests on remote browser instances is useful to spread the load of testing across
several machines and to run tests in browsers running on different platforms or operating systems. The
latter is particularly useful in cases where not all browsers to be used for testing can run on the same platform.
19
SQL
SQL is a standard language for storing, manipulating and retrieving data in databases.
Our SQL tutorial will teach you how to use SQL in: MySQL, SQL Server, MS Access, Oracle, Sybase,
Informix, Postgres, and other database systems.
SQLN is a domain-specific language used in programming and designed for managing data held in
a relational database management system (RDBMS), or for stream processing in a relational data stream
management system (RDSMS). It is particularly useful in handling structured data, i.e. data
incorporating relations among entities and variables. SQL offers two main advantages over older read–
write APIs such as ISAM or VSAM. Firstly, it introduced the concept of accessing many records with
one single command. Secondly, it eliminates the need to specify how to reach a record, e.g. with or
without an index.
20
API
APIs are mechanisms that enable two software components to communicate with each other using a set of
definitions and protocols. For example, the weather bureau’s software system contains daily weather data.
The weather app on your phone “talks” to this system via APIs and shows you daily weather updates on your
phone.
API stands for Application Programming Interface. In the context of APIs, the word Application refers to
any software with a distinct function. Interface can be thought of as a contract of service between two
applications. This contract defines how the two communicate with each other using requests and responses.
Their API documentation contains information on how developers are to structure those requests and
responses.
2
SDLC
The Software Development Life Cycle (SDLC) refers to a methodology with clearly defined processes for
creating high-quality software. in detail, the SDLC methodology focuses on the following phases of software
development:
Requirement analysis
Planning
Software design such as architectural design
Software development
Testing
Deployment
SDLC or the Software Development Life Cycle is a process that produces software with the highest
quality and lowest cost in the shortest time possible. SDLC provides a well-structured flow of
phases that help an organization to quickly produce high-quality software which is well-tested and
ready for production use.
The SDLC involves six phases as explained in the introduction. Popular SDLC models
include the waterfall model, spiral model, and Agile model.
SDLC works by lowering the cost of software development while simultaneously improving quality
and shortening production time. SDLC achieves these apparently divergent goals by following a
plan that removes the typical pitfalls of software development projects. That plan starts by
evaluating existing systems for deficiencies.
Next, it defines the requirements of the new system. It then creates the software through the stages
of analysis, planning, design, development, testing, and deployment. By anticipating costly mistakes
like failing to ask the end-user or client for feedback, SLDC can eliminate redundant rework and
after-the-fact fixes.
It’s also important to know that there is a strong focus on the testing phase. As the SDLC is a
repetitive methodology, you have to ensure code quality at every cycle. Many organizations tend
to spend few efforts on testing while a stronger focus on testing can save them a lot of rework,
time, and money. Be smart and write the right types of tests.
2
TESTING METHODS
Static Testing
It is also known as Verification in Software Testing. Verification is a static method of checking
documents and files. Verification is the process, to ensure that whether we are building the product right
i.e., to verify the requirements which we have and to verify whether we are developing the product
accordingly or not.
Dynamic Testing
It is also known as Validation in Software Testing. Validation is a dynamic process of testing the real
product. Validation is the process, whether we are building the right product i.e., to validate the product
which we have developed is right or not.
TESTING TYPES
Back-Box Testing
Black box testing, also known as behavioral testing, is a software testing method in which the internal
structure/design/implementation of the item being tested is not known to the tester. These tests can be
functional or non-functional, though usually functional. This method is named so because the software
program, in the eyes of the tester, is like a black box; inside which one cannot see. This method attempts
to find errors in the following categories:
2
White-Box Testing
White box testing (also known as Clear Box Testing, Open Box Testing, Glass Box Testing, Transparent
Box Testing, Code-Based Testing or Structural Testing) is a software testing method in which the
internal structure/design/implementation of the item being tested is known to the tester. The tester
chooses inputs to exercise paths through the code and determines the appropriate outputs. Programming
know-how and the implementation knowledge is essential. White box testing is testing beyond the user
interface and into the nitty-gritty of a system. This method is named so because the software program, in
the eyes of the tester, is like a white/transparent box; inside which one clearly sees.
MANUAL TESTING
Manual testing is the process of testing the software manually to find the defects. Tester should have the
perspective of end users and to ensure all the features are working as mentioned in the requirement
document. In this process, testers execute the test cases and generate the reports manually without using
any automation tools.
Here in Broadway test cases were written using MS-excel for manual testing. The practice of writing test
cases in Excel gave me chance to make a logical table for calculations as well as for testing various
outcomes were calculated according to input and were displaying correct output or not. In general I
covered with this following topics to write manual test cases.
Test case ID
Test title
Test summary
Pre conditions
Test Priority
Test steps
Test data
Expected Result
Actual result
Status
2
SDLC - Waterfall Model
The Waterfall Model was the first Process Model to be introduced. It is also referred to as a linear-
sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must
be completed before the next phase can begin and there is no overlapping in the phases.
The Waterfall model is the earliest SDLC approach that was used for software development.
The waterfall Model illustrates the software development process in a linear sequential flow. This means that
any phase in the development process begins only if the previous phase is complete. In this waterfall model,
the phases do not overlap.
Waterfall Model - Design
Waterfall approach was first SDLC Model to be used widely in Software Engineering to ensure success of
the project. In "The Waterfall" approach, the whole process of software development is divided into separate
phases. In this Waterfall model, typically, the outcome of one phase acts as the input for the next phase
sequentially.
The following illustration is a representation of the different phases of the Waterfall Model.
2
System Design − The requirement specifications from first phase are studied in this phase and
the system design is prepared. This system design helps in specifying hardware and system
requirements and helps in defining the overall system architecture.
Implementation − With inputs from the system design, the system is first developed in small
programs called units, which are integrated in the next phase. Each unit is developed and
tested for its functionality, which is referred to as Unit Testing.
Integration and Testing − All the units developed in the implementation phase are integrated
into a system after testing of each unit. Post integration the entire system is tested for any
faults and failures.
Deployment of system − Once the functional and non-functional testing is done; the product
is deployed in the customer environment or released into the market.
Maintenance − There are some issues which come up in the client environment. To fix those
issues, patches are released. Also to enhance the product some better versions are released.
Maintenance is done to deliver these changes in the customer environment.
All these phases are cascaded to each other in which progress is seen as flowing steadily downwards (like a
waterfall) through the phases. The next phase is started only after the defined set of goals are achieved for
previous phase and it is signed off, so the name "Waterfall Model". In this model, phases do not overlap.
2
SCRUM
Scrum is an Agile framework that helps teams collaborate and get high-impact work done. The Scrum
framework provides a blueprint of values, roles, and guidelines to help your team focus on iteration
and continuous improvement.
Traditionally, Scrum is run in a sprint, which are usually two-week long working sessions with specific
deliverables due at the end. There are two additional Scrum events. Daily standups, as the name suggests,
happen once a day. These are an opportunity for the Scrum team to connect for 15 minutes and coordinate
daily activities. The second event—the sprint retrospective—happens once the sprint is over. During the
sprint retrospective, which will be run by the Scrum master, the team has a chance to reflect on their sprint
and make adjustments for future sprints.
The most important thing to know if you’re going to run a Scrum process is that the Scrum framework relies
on a system of continuous improvement. In Scrum, you recognize you might not know anything at the start
of a sprint—and you can adjust your processes and needs as needed based on the information you gain
during the sprint process.
So: what exactly is Scrum? What will your team be doing if you use Scrum? Here’s how the Scrum process
shakes out:
1. Organize your backlog. To begin a Scrum sprint, your team lead (also known as the Scrum master) will
identify what work to pull from your product backlog—i.e. work that needs to be done. In order to have
the best Scrum sprint possible, make sure you have your product backlog clearly documented in one place.
Consider using a project management tool to collect all of this information.
2. Hold a sprint planning session. Before you can start your Scrum sprint, you need to know what you’ll be
focusing on. During your sprint planning session, you’ll evaluate what work from the backlog your team
will focus on during this specific Scrum sprint.
2
3. Start your Scrum sprint. Typically, a sprint is two weeks long, though you can have shorter or longer
sprints depending on what works best for your team. During your sprint, your team will work on the
items from your backlog that you’ve outlined during your sprint planning session.
4. Host daily Scrum standups. Plan to meet with your Scrum team for 15 minutes every day. Daily standup
meetings are your chance to debrief about what you’re working on and triage any unexpected blockers you
may have run into. To run the most effective daily standup, try our free daily standups template.
5. Present your work during the sprint review. Once you’ve finished your Scrum sprint, your team should
come together for a sprint review. During this time, your Scrum team will present the work that’s “Done”
for stakeholder approval or inspection.
6. Connect and reflect during the sprint retrospective. After your sprint is over, take some time to
discuss how it went, and what could be improved in the future. Remember that Scrum believes in a
process of continuous improvement—so don’t be afraid to try new processes or re-work strategies that
feel less effective during your next sprint.
2
AUTOMATED TESTING
Automation testing is the process of testing the software using an automation tool to find the defects. In
this process, testers execute the test scripts and generate the test results automatically by using
automation tools. Some of the famous automation testing tools for functional testing are QTP/UFT and
Selenium. Automated software testing's main benefit is that it simplifies as much manual effort as
possible. If unit testing consumes a large percentage of a QA team's resources, for example, then this
process should be evaluated as a candidate for automation. Automated testing tools execute tests, report
outcomes and compare results with earlier test runs. Automated tests can run repeatedly at any time of
day. This approach fits in with continuous testing, software development practices.
UFT/QTP is an automated functional Testing tool that helps testers to execute automated tests in order to
identify any errors, defects or gaps in contrary to the expected results of the application under test. It was
designed by Mercury Interactive and later on acquired by HP. Full form of QTP is Quick Test
Professional while UFT means Unified Functional Testing. UFT/QTP is the best testing tool because of
following reasons.
2
Some advantages of QTP Automation
It supports record and playback
It uses an active screen to record scripts and helps tester in referring the screen
object properties
It has excellent object identification process or mechanism
It supports different add-ins like Oracle, Java, .NET, Web Forms etc.
It allows you to enhance the existing tests even without the AUT through an active screen.
It supports popular automation frameworks- keyword driven testing approach,
modular testing approach, data-driven testing approach, etc.
It comes with an inbuilt IDE.
Different types of suites like Smoke, Regression, and Sanity can be easily maintained.
It supports XML.
It supports the largest pool of software development environments like Oracle. QTP tool
helps the testers to perform an automated functional testing uninterrupted.
QTP/UFT allows tester to test both web pages and websites as well as desktop application (both online
and offline). Here we can run and test any application either by writing codes manually or by using
record button, going to desire application and giving the test input, stopping record button and making
the code by adding attributes and giving a set of conditions to check.
3
TESTING WEBPAGE AND WEBSITE THROUGH SELENIUM
Selenium is a free (open source) automated testing suite for web applications across different
browsers and platforms. It is quite similar to QTP/UFT but difference is only that Selenium
focuses on automating web-based applications. Testing done using Selenium tool is usually
referred as Selenium Testing.
As Selenium is an open source software and platform independent, it is more popular than
QTP/UFT. Also compared to QP/UFT, it is easier to use. Selenium was previously
Firefox extension which later grew up and became today’s web base application testing tool.
Selenium has 4 components by far. They are
Selenium Integrated Development Environment
Selenium Remote Control
WebDriver
Selenium Grid
Selenium also allows record and play button like QTP/UFT but it didn’t support complex
locators like XPath and link name. Thus, selenium Remote control and WebDriver fusedand
created Selenium 2 which later got improved and became Selenium 3.
Selenium allows tester to create a test code for each component such as dropdown, button or text
field and provide detailed testing to find the bug. It uses different functions such as find. Element
and select. Element to find the exact component to test and select the exact component to test
3
CHAPTER 3
TECHNOLOGIES LEARNT
Functional Testing
Basics of Automation Concepts
ICT -Functional Testing (Integrated Capability Test)
Programming with Java
WebUI
JavaScript
Data Source (SQL, XML, JSON)
WebDriver Basics
Project
Deliverables Week 8
Automation Techniques and Dynamic XPath
Project
Deliverables Week 9
WebDriver with POM and Apache POI
Project
Deliverables Week 10
and 11
Selenium with TestNG
Selenium with XML & JSON
Project Deliverables
ICT Selenium (Integrated Capability Test)
Webservices, SOAPUI & PostMan
BDD, Cucumber and DevOps
Project Deliverables
3
Functional Testing
Functional testing is the process through which QAs determine if a piece of software is acting in
accordance with pre-determined requirements. It uses black-box testing techniques, in which the
tester has no knowledge of the internal system logic. Functional testing is only concerned with
validating if a system works as intended
Automation Testing
Automation testing is a Software testing technique to test and compare the actual outcome with
the expected outcome. This can be achieved by writing test scripts or using any automation
testing tool. Test automation is used to automate repetitive task repetitive task and other testing
task which is difficult to perform manually.
3
Programming with Java
It is used for:
String handling
Collection framework
Multithreading
Exception handling
Generics
Synchronisation
Concurrent collection
Advanced Java:
JDBC (Java Database Connectivity)
3
WebUI
“WebUI” is a term used to loosely describe parts of Chrome's UI implemented with web
technologies (i.e. HTML, CSS, JavaScript).
The Web user interface is the easiest type of management to use. Because of its simple point-and-
select nature, it gives the end user a jumpstart into the management of the Juniper firewall.
Settings (chrome://settings)
3
JAVASCRIPT
JavaScript often abbreviated JS, is a programming language that is one of the core technologies
of the World Wide Web, alongside HTML and CSS.
DATA SOURCE
The data sources define where the database tables reside and where the software runs logic
objects for the enterprise. Data sources can point to:
3
Data sources are the building blocks that you use to set up an enterprise configuration. Data
sources define all the databases and logic machines required by the Oracle JD Edwards
EnterpriseOne configuration. Each database and machine in the enterprise must be defined as a
data source for JD Edwards EnterpriseOne to recognize it.
A logic machine is the machine on which batch applications and master business
functions run. You must identify logic machines using a data source definition. The data
source definition must include the network information about the machine, such as a
server name
- HP9000, for example
Selenium
Selenium is an open-source tool that automates web browsers. It provides a single interface that
lets you write test scripts in programming languages like Ruby, Java, NodeJS, PHP, Perl,
Python, and C#, among others.
Selenium WebDriver
Also known as Selenium 2.0, WebDriver executes test scripts through browser-specific drivers.
It consists of:
API
Application Programming Interface. Ports test scripts you write in Ruby, Java, Python, or C# to
Selenese (Selenium’s own scripting language), through bindings.
3
Library
Houses the API and language-specific bindings. Although plenty of third-party bindings exist to
support different programming languages, the core client-side bindings supported by the main
project are: Selenium Java (as selenium jar files), Selenium Ruby, Selenium dotnet (or Selenium
C#, available as .dll files), Selenium Python, and Selenium JavaScript (Node).
Driver
Executable module that opens up a browser instance and runs the test script. Browser-specific—
for instance, Google develops and maintains Chromedriver for Selenium to support automation
on Chromium/Chrome.
Framework
Support libraries for integration with natural or programming language test frameworks, like
Selenium with Cucumber or Selenium with TestNG.
Selenium IDE
Selenium IDE is a Chrome and Firefox plugin that can log ‘natural’ interactions in the browser
and generate its code in programming languages like C#, Java, Python, and Ruby, as well as
Selenese (Selenium’s own scripting language).
What is WebService?
Web Services is the mechanism or the medium of communication through which two applications
/ machines will exchange the data irrespective of their underline architecture and the technology.
Web Services Testing is a type of software testing that validates Web services. The purpose of
Web Services Testing is to check the functionality, reliability, performance, and security of an
API(Application Program Interface). Web Service Testing is similar to unit testing in some
cases. You can test a Webservice manually or create your own automation code or use an off-the
shelf automation tool like Postman.
3
Web Service Protocols
Web Services can be implemented in different ways, but the following two are the popular
implementations approaches.
SOAP
SOAP is a standard protocol defined by the W3C Standard for sending and receiving web service
requests and responses.
SOAP uses the XML format to send and receive the request and hence the data is platform
independent data. SOAP messages are exchanged between the provider applications and
receiving application within the SOAP envelops.
REST
REST means REpresentational State Transfer; it is an architecture that generally runs over
HTTP. The REST style emphasizes the interactions between clients and services, which are
enhanced by having a limited number of operations. REST is an alternative to SOAP (Simple
Object Access Protocol) and instead of using XML for request REST uses simple URL in some
cases. Unlike SOAP, RESTFUL applications uses HTTP build in headers to carry meta-
information.
3
XML
What is XML?
descriptive:
4
JSON
JSON (JavaScript Object Notation, pronounced /ˈdʒeɪsən/; also /ˈdʒeɪˌsɒn/) is an open
standard file format and data interchange format that uses human-readable text to store and
transmit data objects consisting of attribute–value pairs and arrays (or other serializable values).
It is a common data format with diverse uses in electronic data interchange, including that
of web applications with servers.
JSON is a language-independent data format. It was derived from JavaScript, but many
modern programming languages include code to generate and parse JSON-format data. JSON
filenames use the extension .js
Data types[edit]
JSON's basic data types are:
Number: a signed decimal number that may contain a fractional part and may use
exponential E notation, but cannot include non-numbers such as NaN. The
format makes no distinction between integer and floating-point. JavaScript uses
IEEE-
754 double-precision floating-point format for all its numeric values (until later also
supports BigInt[25]), but other languages implementing JSON may encode numbers
differently.
String: a sequence of zero or more Unicode characters. Strings are delimited
with double quotation marks and support a backslash escaping syntax.
Boolean: either of the values true or fal
Array: an ordered list of zero or more elements, each of which may be of any
type. Arrays use square bracket notation with comma-separated elements.
Object: a collection of name–value pairs where the names (also called keys) are
strings. The current ECMA standard states: "The JSON syntax does not impose
any restrictions on the strings used as names, does not require that name strings be
unique, and does not assign any significance to the ordering of name/value
pairs."[26] Objects are delimited with curly brackets and use commas to separate each
pair, while within each pair the colon ':' character separates the key or name from its
value.
null : an empty value, using the word null
4
CHAPTER 4
PROJECTS
During my 12 weeks of Internship I was assigned with 3 projects
Mini Project
Hackathon Project
Main Project
MINI PROJECT:
2. Java
Problem Statement:
4
3) Check if Login button enabled or not
Detailed Description:
4
4
HACKATHON PROJECT:
Emi loan
Loan intrest
Loan amount
4
The project structure as follows:
4
MAIN PROJECT:
Maven
TestNG
POM model
Apache POI
Cucumber -BDD
Custom HTML report
Extent Report
Selenium Web Driver
4
Main Project Structure
4
CONCLUSION
The Internship period at Cognizant Technology Solutions has been very productive and helpful.
There is a big difference in the academic course and the tasks and activities during the actual
work. In college we learn how quality is important and some basic quality software benefits and
features, where during internship, it is learnt far more than the basics. Alongside of manual test
case writing, various automation tools use and how to tackle and report bug in reality is learnt.
Lastly, the internship was a wonderful experience in the exposure to the professional field. In
conclusion, the internship was a useful experience. I have find out what my strengths and
weaknesses are; I gained new knowledge and skills, Two main things that I’ve learned the
importance of are time-management skills and self-motivation.
4
REFERENCES
Selenium (n.d.). Retrieved July 06,2022, from https://www.guru99.com/introduction-to-
selenium.html
Cognizant Profile retrieved on July 06 , 2022, from https://en.wikipedia.org/wiki/Cognizant
5
BRIEF PROFILE OF STUDENT
50