Software Testing in Web Development
Software Testing in Web Development
Chapter 1: Introduction
SOFTWARE TESTING:
SDLC stands for Software Development Life Cycle. It is a structured process used by
software development teams to design, develop, test, deploy, and maintain software
applications and systems. The SDLC consists of several phases, each with its specific
objectives, activities, and deliverables. These phases typically include
Purpose :
Software testing in the Software Development Life Cycle (SDLC) serves the critical
purpose of ensuring the quality, reliability, and functionality of software products. It
aims to identify defects, validate requirements, mitigate risks, and improve overall
product quality.
Methods:
Software testing employs various methods including manual testing, where testers
execute test cases manually, and automated testing, which utilizes tools and scripts for
efficient testing. Different types of testing such as functional, integration,
performance, and security testing are conducted to assess different aspects of the
software.
Results:
The results of software testing include detailed defect reports, test coverage metrics,
test execution summaries, and performance measurements. These results provide
insights into the quality and readiness of the software for deployment, helping in
making informed decisions.
Based on the results of software testing, conclusions are drawn regarding the
software's quality and potential areas for improvement. Recommendations may
include addressing identified defects, optimizing performance, enhancing usability,
and incorporating lessons learned for continuous improvement in future development
cycles.
Chapter 2: Company Profile
Image 04
2.1 HISTORY
Emergence Tech was founded in the year 2007 .This platform was created with the sole
purpose of providing flexible training to both students and professionals who wish to
upgrade their skills in the IT and Non IT sector with global recognized certification courses
Emergence Tech has many training centres around the country; however, the maximum
demand is for the Online / Class-room courses as these offer flexibility, convenience and
digital delivery of information directly from tutors to students
“Skill development prepares you for tomorrow’s world! “ Founded in 2007 Emergence Tech,
has grown to become a leading giant in space of IT Training, helping Candidate and
professionals across the globe by delivering top-notch, world-class classroom and online
training. We are passionate bunch of professionals that are committed towards answering
the industry needs in the ever-changing and help them build their career in the field of IT.
Technological advancements and catering towards all your needs our passionate and
dedicated team of experts have successfully trained over 140,000 students and
professionals in multifarious domains which include Software Development
WHO WE ARE
2.1 MISSION
As our corporate mission is to bring about change through education, our main
commitment is in this line. We offer training and alternate mediums for education like
online and distance learning which are cost effective. · Individual Training and
Certifications · Corporate Training · Augmented and Extended curriculum for Academic
Institutions · Management Institutes · Engineering and Polytechnic colleges · E-
learning. Subscription based CBT · Webinar · Self-paced CBT.
Commitments
Image 05
Digital Marketing:
Web Development:
We are in Web Development and have successfully designed, developed and hosted
many web sites on the net. On Some of the prevailing technologies like MEAN and
Magneto.
Image 06
You can approach us for digital marketing of your business promotional events
organization. We optimize your websites to meet search engine criteria and standardize
your websites.
2.2.1 Portfolio:
Image 07
Mongo DB [Link]
Image 08
Website like Indo Vedic has been developed from the organization. We have trained
students and professionals on IT certification courses on different software platforms.
We have trained candidates on java platforms and other technologies.
Image 09
IT Certification:
Image ge 10
2.3 Corpoate Association Placement partners
Image 11
Chapter 3:Technologies Worked on
Software Review
AngularJS
AngularJS is a very powerful JavaScript library. It is used in Single Page Application (SPA)
projects. It extends HTML DOM with additional attributes and makes it more responsive to
user actions. AngularJS is open source, completely free, and used by thousands of developers
around the world. It is licensed under the Apache license version 2.0. AngularJS is an open-
source web application framework. It was originally developed in 2009 by Misko Hevery and
Adam Abrons. It is now maintained by Google. Its latest version is 8.0.
AngularJS is a structural framework for dynamic web applications. It lets you use HTML
as your template language and lets you extend HTML's syntax to express your application
components clearly and succinctly. Its data binding and dependency injection eliminate
much of the code you currently have to write. And it all happens within the browser,
making it an ideal partner with any server technology.
General Features
AngularJS is a efficient framework that can create Rich Internet Applications (RIA).
AngularJS provides developers an options to write client side applications using
JavaScript in a clean Model View Controller (MVC) way.
Applications written in AngularJS are cross-browser compliant. AngularJS
automatically handles JavaScript code suitable for each browser.
AngularJS is open source, completely free, and used by thousands of developers
around the world. It is licensed under the Apache license version 2.0.
Overall, AngularJS is a framework to build large scale, high-performance, and easy-to-
maintain web applications.
Core Features
Node modules
JavaScript has turned out to be a powerful language with some unique features that enable
efficient yet maintainable programming. Its closure pattern and event driven behavior have
proven to be very helpful in real-life scenarios, but like all programming languages, it isn't
perfect, and one of its major design laws is the sharing of a single global namespace.
To understand the problem, we need to go back to JavaScript's browser origins. In the
browser, when you load a script into your web page, the engine will inject its code into an
address space that is shared by all the other scripts. This means that when you assign a
variable in one script, you can accidently overwrite another variable already deined in a
previous script. While this could work with a small code base, it can easily cause conlicts in
larger applications, as errors will be difficult to trace. It could have been a major threat for
[Link] evolution as a platform, but luckily a solution was found in the CommonJS modules
standard.
[Link]
"Express is a fast, unopinionated minimalist web framework for [Link]" - official web
site: [Link]
Derived from the word humongous, MongoDB was able to support complex data storage,
while maintaining the high-performance approach of other NoSQL stores. The community
cheerfully adopted this new paradigm, making MongoDB one of the fastest-growing
databases in the world. With more than 150 contributors and over 10,000 commits, it also
became one the most popular open source projects.
Like JSON, BSON documents are a simple data structure representation of objects and arrays
in a key-value format. A document consists of a list of elements, each with a string typed ield
name and a typed ield value. These documents support all of the JSON speciic data types
along with other data types, such as the Date type.
MongoDB indexing
Indexes are a unique data structure that enables the database engine to efficiently resolve
queries. When a query is sent to the database, it will have to scan through the entire collection
of dcuments to ind those that match the query statement. This way, the database engine
processes a large amount of unnecessary data, resulting in poor performance.
To speed up the scan, the database engine can use a predefined index, which maps
documents ields and can tell the engine which documents are compatible with this query
statement. To understand how indexes work, let's say we want to retrieve all the posts that
have more than 10 comments. For instance, if our document is defined as follows:
{
"_id": ObjectId("52d02240e4b01d67d71ad577"),
"title": "First Blog Post",
"comments": [
],
"commentsCount": 12
}
So, a MongoDB query that requests for documents with more than 10 comments
would be as follows
[Link]({ commentsCount: { $gt: 10 } });
MongoDB sharding
Scaling is a common problem with a growing web application. The various approaches to
solve this issue can be divided into two groups: vertical scaling and horizontal scaling. The
differences between the two are illustrated in the following diagram:
Software Testing An Imperative Phase of SDLC
Chapter 1: Introduction
SOFTWARE TESTING:
SDLC stands for Software Development Life Cycle. It is a structured process used by
software development teams to design, develop, test, deploy, and maintain software
applications and systems. The SDLC consists of several phases, each with its specific
objectives, activities, and deliverables. These phases typically include
Purpose :
Software testing in the Software Development Life Cycle (SDLC) serves the critical
purpose of ensuring the quality, reliability, and functionality of software products. It
aims to identify defects, validate requirements, mitigate risks, and improve overall
product quality.
Methods:
Software testing employs various methods including manual testing, where testers
execute test cases manually, and automated testing, which utilizes tools and scripts for
efficient testing. Different types of testing such as functional, integration,
performance, and security testing are conducted to assess different aspects of the
software.
Results:
The results of software testing include detailed defect reports, test coverage metrics,
test execution summaries, and performance measurements. These results provide
insights into the quality and readiness of the software for deployment, helping in
making informed decisions.
Based on the results of software testing, conclusions are drawn regarding the
software's quality and potential areas for improvement. Recommendations may
include addressing identified defects, optimizing performance, enhancing usability,
and incorporating lessons learned for continuous improvement in future development
cycles.
Chapter 2: Company Profile
Image 04
2.1 HISTORY
Emergence Tech was founded in the year 2007 .This platform was created with the sole
purpose of providing flexible training to both students and professionals who wish to
upgrade their skills in the IT and Non IT sector with global recognized certification courses
Emergence Tech has many training centres around the country; however, the maximum
demand is for the Online / Class-room courses as these offer flexibility, convenience and
digital delivery of information directly from tutors to students
“Skill development prepares you for tomorrow’s world! “ Founded in 2007 Emergence Tech,
has grown to become a leading giant in space of IT Training, helping Candidate and
professionals across the globe by delivering top-notch, world-class classroom and online
training. We are passionate bunch of professionals that are committed towards answering
the industry needs in the ever-changing and help them build their career in the field of IT.
Technological advancements and catering towards all your needs our passionate and
dedicated team of experts have successfully trained over 140,000 students and
professionals in multifarious domains which include Software Development
WHO WE ARE
2.4 MISSION
As our corporate mission is to bring about change through education, our main
commitment is in this line. We offer training and alternate mediums for education like
online and distance learning which are cost effective. · Individual Training and
Certifications · Corporate Training · Augmented and Extended curriculum for Academic
Institutions · Management Institutes · Engineering and Polytechnic colleges · E-
learning. Subscription based CBT · Webinar · Self-paced CBT.
Commitments
Image 05
Digital Marketing:
Web Development:
We are in Web Development and have successfully designed, developed and hosted
many web sites on the net. On Some of the prevailing technologies like MEAN and
Magneto.
Image 06
You can approach us for digital marketing of your business promotional events
organization. We optimize your websites to meet search engine criteria and standardize
your websites.
2.5.1 Portfolio:
Image 07
Mongo DB [Link]
Image 08
Website like Indo Vedic has been developed from the organization. We have trained
students and professionals on IT certification courses on different software platforms.
We have trained candidates on java platforms and other technologies.
Image 09
IT Certification:
Image ge 10
2.6 Corpoate Association Placement partners
Image 11
Chapter 3:Technologies Worked on
Software Review
AngularJS
AngularJS is a very powerful JavaScript library. It is used in Single Page Application (SPA)
projects. It extends HTML DOM with additional attributes and makes it more responsive to
user actions. AngularJS is open source, completely free, and used by thousands of developers
around the world. It is licensed under the Apache license version 2.0. AngularJS is an open-
source web application framework. It was originally developed in 2009 by Misko Hevery and
Adam Abrons. It is now maintained by Google. Its latest version is 8.0.
AngularJS is a structural framework for dynamic web applications. It lets you use HTML
as your template language and lets you extend HTML's syntax to express your application
components clearly and succinctly. Its data binding and dependency injection eliminate
much of the code you currently have to write. And it all happens within the browser,
making it an ideal partner with any server technology.
General Features
AngularJS is a efficient framework that can create Rich Internet Applications (RIA).
AngularJS provides developers an options to write client side applications using
JavaScript in a clean Model View Controller (MVC) way.
Applications written in AngularJS are cross-browser compliant. AngularJS
automatically handles JavaScript code suitable for each browser.
AngularJS is open source, completely free, and used by thousands of developers
around the world. It is licensed under the Apache license version 2.0.
Overall, AngularJS is a framework to build large scale, high-performance, and easy-to-
maintain web applications.
Core Features
Node modules
JavaScript has turned out to be a powerful language with some unique features that enable
efficient yet maintainable programming. Its closure pattern and event driven behavior have
proven to be very helpful in real-life scenarios, but like all programming languages, it isn't
perfect, and one of its major design laws is the sharing of a single global namespace.
To understand the problem, we need to go back to JavaScript's browser origins. In the
browser, when you load a script into your web page, the engine will inject its code into an
address space that is shared by all the other scripts. This means that when you assign a
variable in one script, you can accidently overwrite another variable already deined in a
previous script. While this could work with a small code base, it can easily cause conlicts in
larger applications, as errors will be difficult to trace. It could have been a major threat for
[Link] evolution as a platform, but luckily a solution was found in the CommonJS modules
standard.
[Link]
"Express is a fast, unopinionated minimalist web framework for [Link]" - official web
site: [Link]
Derived from the word humongous, MongoDB was able to support complex data storage,
while maintaining the high-performance approach of other NoSQL stores. The community
cheerfully adopted this new paradigm, making MongoDB one of the fastest-growing
databases in the world. With more than 150 contributors and over 10,000 commits, it also
became one the most popular open source projects.
Like JSON, BSON documents are a simple data structure representation of objects and arrays
in a key-value format. A document consists of a list of elements, each with a string typed ield
name and a typed ield value. These documents support all of the JSON speciic data types
along with other data types, such as the Date type.
MongoDB indexing
Indexes are a unique data structure that enables the database engine to efficiently resolve
queries. When a query is sent to the database, it will have to scan through the entire collection
of dcuments to ind those that match the query statement. This way, the database engine
processes a large amount of unnecessary data, resulting in poor performance.
To speed up the scan, the database engine can use a predefined index, which maps
documents ields and can tell the engine which documents are compatible with this query
statement. To understand how indexes work, let's say we want to retrieve all the posts that
have more than 10 comments. For instance, if our document is defined as follows:
{
"_id": ObjectId("52d02240e4b01d67d71ad577"),
"title": "First Blog Post",
"comments": [
],
"commentsCount": 12
}
So, a MongoDB query that requests for documents with more than 10 comments
would be as follows
[Link]({ commentsCount: { $gt: 10 } });
MongoDB sharding
Scaling is a common problem with a growing web application. The various approaches to
solve this issue can be divided into two groups: vertical scaling and horizontal scaling. The
differences between the two are illustrated in the following diagram:
Chapter 4:Working on Internship
Day Book
Date Work done
10-3-2025 Familiarizing with the organisation
11-3-2025 Familiarize with UX Tools
12-3-2025 Familiarize with Backend Server
13-3-2025 Familiarize with Database being used in the company
14-3-2025 Study software products being implemented by the company
17-3-2025 Study of SDLC Models
18-3-2025 Study of Testing Phase
19-3-2025 Software Testing Process for Web Applications
20-3-2025 Software Testing Essentials
21-3-2025 Study of Software Testing Tools
24-3-2025 Analysis of different types of testing
25-3-2025 Study of Testing Strategies for Web Applications
26-3-2025 Analysis of Software Testing Importance
27-3-2025 Impact of Software Testing on the quality of software
28-3-2025 Internship Review meeting and conclusion
Chapter 5: Learning Outcomes
Testing is a critical phase in software development that ensures the quality, reliability, and
performance of software before it reaches end-users. Each testing phase has its own
objectives, tailored to validate different aspects of the software. These phases include unit
testing, integration testing, system testing, and acceptance testing.
1) Unit Testing: In Unit Testing, the smallest parts of the application are the main focus,
such as modules or functions. The objective here is to ensure each isolated unit is
working properly and effectively. It is an aspect usually in the job description of a
developer, to detect bugs while they are still at a primitive stage, making the
debugging of the code relatively easy and improving the quality of the code.
2) Integration testing: Integration testing comes after unit testing, whereby the main
focus moves toward how different units come together. In this case, major intentions
will be on locating problems with the interface between integrated components. This
is the critical stage when some faults that could not be indicated during unit testing—
of a nature like data format mismatches, or poor interface interactions—are being
exposed.
3) System Testing: System Testing is conducted on a complete, integrated system to
evaluate the system’s compliance with its requirements. This is an examination that is
supposed to prove, above all, the ability of the system to meet all the stated
requirements and, at the same time, demonstrate, or rather prove, that the system can
operate in an environment that is meant to mimic production. System testing includes
types of testing such as performance testing, security testing, usability testing, and
others. Very often, the Acceptance Testing is the last phase aimed to test the
readiness of the system for deployment and use from end-users. Its objective is to
confirm that the software satisfies the business needs and requirements outlined by the
user.
4) Acceptance testing: Acceptance testing can further be broken down into User
Acceptance Testing (UAT) when real users are testing the system. Beta Testing is the
one where a version is released to a limited audience to get some testing and
feedback. Each successive test phase builds on the previous one, accelerating the level
of software readiness for deployment and ensuring that all constituent parts or pieces
of the application are up to quality and user expectations.
The internship on Software testing is an integral part of the software development lifecycle
for several compelling reasons and has the following outcomes:
Ensures Quality and Reliability: Software testing is crucial for ensuring that the final
product is of high quality and functions as intended. It helps in identifying any discrepancies
between the actual outcomes and the expected results under specified conditions. By
detecting defects early in the development process, software testing contributes to the
reliability and stability of the product, ensuring it performs well under various scenarios and
usage conditions.
Enhances User Satisfaction: The success of software largely depends on user satisfaction.
Testing helps to discover the problems with usability and proves that the user interface should
be intuitive and that software has to fully satisfy the needs and expectations of the user. It
helps in the design of software that will find acceptability and appreciation from the end-
users because it actually puts its focus into practice.
Reduces Development Cost: The identification of defects and their correction in the early
development process stage is way more costly than doing post-deployment corrections of
software. Testing software allows the location of defects to be earlier, and this results in
reduced costs of late fixes. Such costs can include not only the direct costs related to
remediation but also indirect ones to the organization, in terms of delayed timelines and lost
opportunities.
Eases Compliance with Regulatory Standards: There are regulatory standards under which
most industries are to be run, and the software has to comply with the standards for them to
be allowed in use. The software testing seeks to determine this by verification, so that the
regulatory requirements pertain to standards of security data, accessibility, and privacy,
which shall form part of the requirement met by the software. Compliance is crucial for
avoiding legal issues and fines, and for building trust with users and stakeholders.
Mitigates Risks: Software testing helps in identifying and mitigating potential risks
associated with the software. This includes not only technical risks such as security
vulnerabilities and performance issues but also business risks: not being able to be on par
with market needs or their consequences—negative impact on brand reputation due to poor
software quality. By identifying these risks early, organisations can take proactive measures
to address them before they cause harm. In fact, software testing is important in order to give
the quality of products fulfilling user needs, regulations, and business objectives while
minimising risks that the company or project has to deal with regarding development costs.
Chapter 6: Conclusion
There are many benefits for an internship program on software testing
1. Real life experience- Startups interns have a lot of responsibility and get an inside look at
what it takes to get a company up and running. Interns are treated as regular employees and
are given real world tasks.
2. You will learn anything and everything- In a startup every second is valuable and every
team member is important. Everyone is treated equally and learns from each other.
3. Networking- The best thing doing an internship is that you meet so many talented people
who are not only teaching you also guiding you for your future.
4. Your work will be noticed and appreciated- While doing internship at a start-up one of the
benefit is that your work never get ignored.
5. Your transition from college to career becomes easier- Startups internships are infinitely
Cooler than MNCs internships because everything about the workplace culture to clothing is
different.
The internship also highlights some important job role of a Software Tester as a good career
to go for.
In-demand
Day by day, many software products are coming into the market, which results in heavy
competition among companies to stand out. So, they are likely to hire individuals who are
well-versed in Software Testing to meet the client demands. From banking to the healthcare
industry, every organization is going digital, which also increases the demand for Software
Testers in the IT world.
Many companies hire individuals with BSc, BCA, MSc, MCA, BCA, or any stream of
engineering as a criterion for Tester. This gives plenty of sprouting opportunities to everyone
on a fair scale.
Easy-to-learn Tools
With basic programming and problem-solving skills, you can learn most of the Software
Testing tools, including Selenium, Jenkins, Cucumber, and so on, with ease in a short period.
It is a great way to start with, and as your role evolves, you will develop expertise over the
tools.
Experience is the key. In this IT domain, you can also work as a freelancer. As a freelance
Tester, you get real-time hands-on experience from projects, case studies, and assignments.
Chapter 5: Learning Outcomes
A seamless end-user experience is critical for retaining website or web application users.
Enhancing a website with superior UX design can boost its conversion rates by as much
as 200%. Additionally, more than 38% of users will likely disengage from a mobile app or
website if its design is substandard. Adhering to best practices for testing web applications is
essential for ensuring the success of your web app. The following are some key
recommendations:
The modern web demands mobile-friendliness, impacting both user satisfaction and search
engine rankings. Responsive web design, built with HTML5, CSS3, and JavaScript
technologies, is fundamental for delivering a consistent user experience across various
devices. However, it's important to note that various browsers use distinct rendering engines,
which can lead to differences in how web pages are displayed.
Usability and user experience (UX) are the foundation of any successful web app. Users
won't return if their experience is subpar. Key aspects of usability testing include evaluating
Navigation
Speed
UI/ UX Design
Reliability
Readability
3. Evaluate performance
Web applications often crash under heavy server loads, creating a poor user experience. The
primary focus is how quickly the web app loads and responds to user interactions. This
includes testing the time it takes for pages to load, the responsiveness of interactive elements,
and the overall speed of the application under various conditions. Here are some other
equally important things to test:
i. Scalability: This involves testing how well the web application can handle increased
loads. It includes assessing whether the application can maintain its performance
levels as the number of users or data volume increases.
ii. Stability under load: Performance testing also examines the app's stability under
different load conditions. It involves load testing (testing under normal and peak load
conditions), stress testing (to determine the breaking point of the application),
and spike testing (testing the application's reaction to sudden large increases in
traffic).
iii. Resource utilization: Evaluating how efficiently the application uses system
resources like CPU, memory, and network bandwidth is also crucial to identify
potential bottlenecks and areas where the application might consume excessive
resources.
iv. UX under various conditions: Performance testing should also consider the user
experience. For example, how the app behaves on different devices and networks,
especially under constrained conditions like slow network speeds or lower-end
devices.
v. Endurance testing checks how the application behaves under a certain load for
an extended period. It helps find out issues like memory leaks and performance
degradation over time.
vi. Benchmarking against standards: Comparing the app's performance against
established benchmarks or competitor apps can also provide valuable insights into its
performance standards.
Exploratory testing is an efficient way to reduce testing time and uncover more defects.
Testers simultaneously write and execute test cases, leading to a better understanding of the
web app's shortcomings. Also, you can overcome the limitations of web app testing by
integrating exploratory testing with other software testing techniques, such as black-hat and
white-hat approaches. This integration enhances test reliability while significantly reducing
testing time.
Chapter 6: Conclusion
Web app testing or application testing usually consists of multiple steps, ensuring an
application is fully functional and runs smoothly and securely. It is an essential part of web
development and ensures that an app runs properly before its release.
Website or web app testing evaluates your application or website for potential issues, defects,
and bugs before it goes live and becomes available to the public.
Before you launch and test a web application or website, you must know how to test a
website or web application for different types of security, functionality, performance,
usability weaknesses, and bugs.
In Software Engineering, various testing types and techniques can be employed to meet the
specific demands of web testing.
Performing usability testing goes beyond functionality testing and combines testing for
functionality and overall user experience.
Usability testing should not be mixed up with User Acceptance Testing, even though both are
essential to the success of testing a web application. Each has a very different focus and is
executed at different software development life cycle stages.
This can be done internally or by getting external testers that fit your potential user base. To
find external testers, you can use services such as Apple’s TestFlight for applications
designed for the app store.
Interface testing ensures all interactions between the web server and application server
interfaces run smoothly. This includes checking the communication processes and ensuring
that error messages are displayed correctly. Further things to test are that user and server
interruptions are handled correctly.