A Report of Six Months Industrial Training at Niks Technology & Cognizant
A Report of Six Months Industrial Training at Niks Technology & Cognizant
at
NIKS TECHNOLOGY & COGNIZANT
BACHELOR OF TECHNOLOGY
(Electronics & Communication Engineering)
SUBMITTED BY:
NAME : SATYAM KUMAR
UNIVERSITY ROLL NO : 1706774
i
CERTIFICATIONS
i
GURU NANAK DEV ENGINEERING COLLEGE, LUDHIANA
CANDIDATE’S DECLARATION
I, Satyam Kumar hereby declare that I have undertaken 6 months Industrial Training at
fulfillment of requirements for the award of degree of B.Tech (Electronics and Communication
which is being presented in the training report submitted to Department of Electronics and
ii
GURU NANAK DEV ENGINEERING COLLEGE, LUDHIANA
CANDIDATE’S DECLARATION
partial fulfillment of requirements for the award of degree of B.Tech (Electronics and
LUDHIANA. The work which is being presented in the training report submitted to Department
iii
ABSTRACT
Web applications tend to continuously evolve and thus need thorough, yet lean and automatic,
regression testing. In this installment of Software Technology, Andreas Kornstadt and his
colleagues describe automatic regression testing for Web applications that uses the Selenium
testing framework. Selenium is portable open source software available for Windows, Linux, and
Macintosh. Tests are written as HTML tables or in a number of programming languages and can
From numerical weather prediction to processing data from weather radars or visualizing
atmospheric conditions, computers have become an integral tool in the fields of meteorology and
atmospheric science. However, computers require specific directions in the form of software.
The ability to write this software, often customized for the particular needs of the user, goes
meteorology and elsewhere. The language facilitates a rapid development cycle with its
interpreted and interactive nature. A focus on code readability makes the language easy to learn,
and the expressive syntax leads to short, clear programs. Additionally, It has an extensive and
Python libraries such as NumPy, SciPy, and pandas provide efficient implementation of
numerical operations and tasks common in science and engineering. These libraries provide a
strong base from which more advanced scientific software can be built without needing to worry
about low-level algorithms. Additionally, many domain specific packages exist which address
iv
ACKNOWLEDGEMENT
I would like to express my sincere gratitude to several individuals and company for supporting
supervisor/guide, Manish Dixit & Rakesh Thakur, for their enthusiasm, patience, insightful
comments, helpful information, practical advice and unceasing ideas that have helped me
tremendously at all times in my project and writing of this report. Their immense knowledge,
profound experience and professional expertise in various technical field has enabled me to
complete this project successfully. Without their support and guidance, this project would not
have been possible. I could not have imagined having a better supervisor/guide in my study.
I also wish to express my sincere thanks to the Niks Technology and Cognizant for giving me
this opportunity.
v
About the Company/ Industry / Institute
company that provides business consulting, information technology and outsourcing services. It
is headquartered in Teaneck, New Jersey, United States. Cognizant is part of the NASDAQ-
100 and trades under CTSH. It was founded as an in-house technology unit of Dun &
Cognizant had a period of fast growth during the 2000s and became a Fortune 500 company in
2011; as of 2021 it's at position 185. These include business & technology consulting, systems
services from outsourced application development and managed services to professional services
that are enabled by experience, knowledge, proven methodologies, global talent and innovation.
Niks Software Technology delivers products and solutions with increased levels of service and
improved quality of outputs. We Offer IT Services , IT Security Services and Training On Ethical
Communication.
vi
LIST OF FIGURES
Fig 4.1 10
Fig 4.2 11
Fig 4.3 11
Fig 4.4 11
Fig 4.5 12
vii
CHAPTER 1: INTRODUCTION TO ORGANIZATION(s)
1.1 Niks Technology : Niks Technology Application development Company offers a range of
services from outsourced application development and managed services to professional services
that are enabled by experience, knowledge, proven methodologies, global talent and innovation.
Niks Software Technology delivers products and solutions with increased levels of service and
improved quality of outputs. We Offer IT Services , IT Security Services and Training On Ethical
Communication.
company that provides business consulting, information technology and outsourcing services. It
is headquartered in Teaneck, New Jersey, United States. Cognizant is part of the NASDAQ-
100 and trades under CTSH. It was founded as an in-house technology unit of Dun &
Cognizant had a period of fast growth during the 2000s and became a Fortune 500 company in
2011; as of 2021 it's at position 185. These include business & technology consulting, systems
1
CHAPTER 2 TRAINING WORK UNDERTAKEN
2.1 Python Project: pillow, tesseract, and opencv :
Inspect and understand APIs and third party libraries to be used with Python 3
Apply the Python imaging library (pillow) to open, view, and manipulate images,
Apply the python tesseract (py-tesseract) library with Python 3 in order to detect
Apply the open source computer vision library (opencv) to detect faces in images,
& how to crop and manipulate these faces into contact sheets
Automated website
2
CHAPTER 3: PROJECT WORK
3.1 OVERVIEW
meteorology and elsewhere. The language facilitates a rapid development cycle with its
interpreted and interactive nature. A focus on code readability makes the language easy to
learn, and the expressive syntax leads to short, clear programs. Additionally, Python has
excellent support for interfacing with legacy code written in C, C++ and Fortran making it
an excellent tool for integrating existing software. It has an extensive and comprehensive
collection of freely available packages covering a variety of topics. Scientific Python libraries
such as NumPy, SciPy, and pandas provide efficient implementation of numerical operations
and tasks common in science and engineering. These libraries provide a strong base from
which more advanced scientific software can be built without needing to worry about low-
level algorithms. Additionally, many domain specific packages exist which address the
powerful computational resources that can open the door to a variety of new career
opportunities or that can enhance productivity in your current position. The author will detail
OCR = Optical Character Recognition. In other words, OCR systems transform a two-
dimensional image of text, that could contain machine printed or handwritten text from its image
representation into machine-readable text. OCR as a process generally consists of several sub-
OpenCV is an open source library for image and video analysis, originally introduced more than
decade ago by Intel. Since then, a number of programmers have contributed to the most recent
3
software developer, unaware of OpenCV, the main library content should be interesting for the
graduate students and researchers in image processing and computer vision areas. To master
every library element it is necessary to consult many books available on the topic of OpenCV.
What is Selenium?
Selenium is a free (open-source) automated testing framework used to validate web applications
across different browsers and platforms. You can use multiple programming languages like Java,
C#, Python etc to create Selenium Test Scripts. Testing done using the Selenium testing tool is
Selenium Software is not just a single tool but a suite of software, each piece catering to different
WebDriver
Selenium Grid
bodies.Along with well-established companies like Google, Yahoo, Microsoft, Intel, IBM, Sony,
Honda, Toyota that employ the library, there are many startups such as Applied Minds,
VideoSurf, and Zeitera, that make extensive use of OpenCV. OpenCV’s deployed uses span the
range from stitching streetview images together, detecting intrusions in surveillance video in
Israel, monitoring mine equipment in China, helping robots navigate and pick up objects at
Willow Garage, detection of swimming pool drowning accidents in Europe, running interactive
4
art in Spain and New York, checking runways for debris in Turkey, inspecting labels on products
1309 companies reportedly use Selenium in their tech stacks, including Delivery Hero, Bitpanda,
and Accenture.
OpenCV, or Open Source Computer Vision library, started out as a research project at Intel. It’s
currently the largest computer vision library in terms of the sheer number of functions it holds.
OpenCV contains implementations of more than 2500 algorithms! It is freely available for
commercial as well as academic purposes. And the joy doesn’t end there! The library has
Analyze previous system version that is already implemented into the system. Analyze the older
requirement document of the project. Look into the past Bug reports, some of the bug reports are
turned into enhancement request which may be implemented into current version. Look into
installation guide if it is available to see what are the installation required . Analyze the domain
or industry knowledge that team is trying to implement. Whatever source of requirement you get
make sure to document them in some form, get them reviewed from other experienced and
This project’s greatest strength lies in being a modification of an open source library. As such,
there are many resources are available to make learning about and modifying the library. This
will allow for more time being dedicated towards how to do something rather than what to do.
Although the purpose of this project is to broaden the limitations of OpenCV’s face detection
feature, there will still be restraints that will not be possible due to the hardware used. The camera
5
does not have any features such as auto brightness or focus to make the images or videos easier
to view, meaning there will still be some conditions that cannot be adequately trained into the
software and hardware will be included. Aspects such as the Java IDE and the web camera will
be up to the discretion of the consumer, but suggestions will be offered to provide an example to
Regarding selenium, as an automation tester the focus would be to gain sufficient functional
knowledge, get the relevant test cases from the functional (manual) team then conduct
feasibility analysis to know how many scenarios can be automated. If at all some cases can’t be
automated there must be a valid rationale and the agreement with the stakeholders must be taken.
The analysis helps the test team to showcase their deliverables because after thorough
examination team will be in a position to understand what will be covered in automation and how
long they require to complete them. Failing to conduct this study could lead to irksome state.
We must conduct a careful study before finalizing the tool. The key points to be considered are
Whether or not the tool can detect all the objects of an application?
The tool that we are going to use for automation must be able to locate all the elements of the
application as the locators are the key for the script to interact with the application elements
If the case is to automate the windows application then selection of a tool that can interact with
6
Whether or not the tool is best compatible with the application technologies?
There should be a sample POC conducted with all the list of proposed tools to automate the
applications then decide which one should be of the good match by considering the application
Eg: while selenium is used to automate all the java, .net, PHP oriented applications, it’s essential
to opt for protractor when the application front end is mainly designed with Angular JS. Because
Whilst choosing the tool, the cost that would be required for investment should be taken care of.
If at all there is a tool exists which does the job w/o any degradation of quality we can fairly go
with that as that’s going to add a lot of savings, which will eventually prefer to get better ROI.
Community that’s available for that tool, should be given the importance to an extent as that
Once the tool choice has come to a conclusion, the next step is to perform the study on
framework piece. It should be chosen in a way that the tool supports also it should be quite
A POC has to be conducted, then after observed the results, we must think of coming up with
more reusable components. We might take a lot of hours of time than what is really required for
manual validation. But in the long run, as we pass by different phases, the suite adds a lot of
value since the execution time will come down to a great level.
7
A proper check on the regression scripts and baselining them is needed as well because that helps
Feasibility study on test strategical approach. When it comes to the test approach, the business
should take a call whether what between the below strategies should be followed.
This approach is first to write the tests and then try to accomplish the fix for it. This would be a
sophisticated approach and it’s not that easy for non-technical stakeholders to decipher properly.
This is completely a call taken by the business based on their budget and other parameters that
This is buzzing in recent times, as the progress is made by documenting the task in plain English
then try to map them with the technical actions. This gives more insight into what a particular
test case was written for, what validations are performed. This business model delivers a better
Inspect and understand APIs and third party libraries to be used with Python 3
Apply the Python imaging library (pillow) to open, view, and manipulate images,
Apply the python tesseract (py-tesseract) library with Python 3 in order to detect
Apply the open source computer vision library (opencv) to detect faces in images,
& how to crop and manipulate these faces into contact sheets
8
objective of test automation is to build an automation framework with scripts
that need low maintenance. Today, the testing and development requirements can
In Optical Face Recognition and Optical Character Recognition, the program detects the faces
present in the newspaper images bundled in the zip file based on the text present after applying
In selenium testing, the webdriver opens the website in automated web browser and test different
jupyter notebook : Project Jupyter is a project and community whose goal is to "develop
company JetBrains.
Pillow : Python Imaging Library is a free and open-source additional library for the
Python programming language that adds support for opening, manipulating, and saving
That is, it will recognize and “read” the text embedded in images. Python-tesseract is a
script to tesseract, as it can read all image types supported by the Pillow and Leptonica
9
imaging libraries, including jpeg, png, gif, bmp, tiff, and others. Additionally, if used as
a script, Python-tesseract will print the recognized text instead of writing it to a file.
vision. Originally developed by Intel, it was later supported by Willow Garage then
Itseez. The library is cross-platform and free for use under the open-source Apache 2
License.
Selenium : Selenium WebDriver is a web framework that permits you to execute cross-
browser tests. This tool is used for automating web-based application testing to verify
Apache – poi : Apache POI, a project run by the Apache Software Foundation, and
previously a sub-project of the Jakarta Project, provides pure Java libraries for reading
and writing files in Microsoft Office formats, such as Word, PowerPoint and Excel.
development. Central to the Cucumber BDD approach is its ordinary language parser
10
CHAPTER 4: RESULTS AND DISCUSSION
find_face('Mark')
Result found in file a-0.png
11
Result found in file a-2.png
find_face('pizza')
Result found in file a-2.png
Fig 4.1
12
Fig 4.2
Fig 4.3
13
Fig 4.4
Fig 4.5
14
CHAPTER 5: CONCLUSION AND FUTURE SCOPE
CONCLUSIONS
In this internship/training period, I have learned about the concept of face detection using Open
CV in Python and OCR using py-tesseract and Selenium testing tools. There are a number of
detectors other than the face, which can be found in the library. Feel free to experiment with
them and create detectors for eyes, license plates, etc.
Selenium is the most effective test automation tool for qa due to its wide range of features such
as open source, supports many languages, integrates easily with many platforms, has cross
browser support and is best suited to test web applications. Hence, businesses need to prefer
selenium tool as a promising test automation tool for web applications testing.
Automated selenium testing services be leveraged to achieve faster time to market, quicker ROI
FUTURE SCOPE
Web applications are considered to be the next big thing for many companies worldwide, test
automation market trends are steadily rising up with extensive demand with Selenium. Many
top organizations across the world rely on Selenium resources for their test automation needs.
15
REFERENCES
https://ieeexplore.ieee.org/document/6240859
https://ams.confex.com/ams/96Annual/webprogram/Paper284432.html
https://nanonets.com/blog/ocr-with-tesseract/
https://www.guru99.com/introduction-to-selenium.html
https://ieeexplore.ieee.org/abstract/document/7292757
https://codoid.com/feasibility-analysis-in-qa-automation/
https://www.researchgate.net/publication/337464355_OBJECT_DETECTION_AND_IDE
NTIFICATION_A_Project_Report
https://www.guru99.com/introduction-to-selenium.html
APPENDIX
Codes :
import math
import zipfile
from PIL import Image, ImageOps, ImageDraw
import pytesseract
import cv2 as cv
import numpy as np
bundle = {}
face_cascade = cv.CascadeClassifier('readonly/haarcascade_frontalface_default.xml')
eye_cascade = cv.CascadeClassifier('readonly/haarcascade_eye.xml')
16
for entry in img_zip.infolist():
with img_zip.open(entry) as file:
img = Image.open(file).convert('RGB')
bundle[entry.filename] = {'pil_img':img}
def find_face(string):
for name in bundle:
if (string in bundle[name]['text']):
if(len(bundle[name]['faces']) != 0):
print("Result found in file {}".format(name))
h = math.ceil(len(bundle[name]['faces'])/5)
contact_sheet=Image.new('RGB',(500, 100*h))
x=0
y=0
for img in bundle[name]['faces']:
contact_sheet.paste(img, (x, y))
if x + 100 == contact_sheet.width:
x=0
y += 100
else:
x += 100
display(contact_sheet)
else:
print("Result found in file {} \nBut there were no faces in that file\n\n".format(name))
return
find_face('Christopher')
Result found in file a-0.png
17
18
19
20
21
22
23
24
25
26
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "https://testng.org/testng-1.0.dtd">
<suite name="Suite">
27