0% found this document useful (0 votes)
2 views23 pages

Software Testing Final Report

The seminar report on Software Testing by Prabin Ballav Panigrahi outlines the importance of software testing in ensuring quality and functionality within the software development lifecycle. It discusses various testing methodologies, historical developments, and the necessity of testing for defect detection, quality assurance, and user satisfaction. The report also covers different types of testing, including manual and automated approaches, and highlights the evolving trends in the field.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views23 pages

Software Testing Final Report

The seminar report on Software Testing by Prabin Ballav Panigrahi outlines the importance of software testing in ensuring quality and functionality within the software development lifecycle. It discusses various testing methodologies, historical developments, and the necessity of testing for defect detection, quality assurance, and user satisfaction. The report also covers different types of testing, including manual and automated approaches, and highlights the evolving trends in the field.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 23

A Seminar Report on

SOFTWARE TESTING
Submitted in partial fulfilment of the Requirements for the Degree

Bachelor of Technology
In

Computer Science and Engineering


By

Prabin Ballav Panigrahi


Regd. No -2101337018
Department of Computer Science

Under the guidance of

Ms. Monali Patel


(Asst Prof., Department of computer science)

Dept. of Computer Science and Engineering


Vikash Institute of Technology, Bargarh
Barahguda Canal Chowk, Bargarh, Odisha- 768028, [email protected]
Email : [email protected], Website : www.vitbargarh.ac.in
CERTIFICATE

This is to certify that the report entitled, "Software Testing"submitted by "


Prabin Ballav Panigrahi " in partial fulfilment for the requirements for the award
of 'Bachelor of Technology' Degree in Computer Science and Engineering, is
Bonafede work carried out at Vikash Institute of Technology, Bargarh, Odisha.

The matter embodied in this report is original and has not been
submitted for the award of any other degree.

Date - Ms. Monali Patel

Asst Professor

Vikash Institute of Technology


Bargarh, Odisha
DECLARATION

I, Prabin Ballav Panigrahi, hereby declare that seminar report


submitted by me entitled as- “Software Testing” is an originalwork and has
not been submitted to anywhere else for the award of any other degree.

Name signature Regd. No. Signature

Prabin Ballav Panigrahi 2101337018


ACKNOWLEDGEMENT

The satisfaction on the successful completion of any task would be incomplete


without the mention of the people who made it possible and whose constant
guidance and encouragement crowned out effort with success. I would like to
acknowledge the following person who directly or indirectly supported.

I sincerely thank Dr Purnendu Mishra, Principal, Vikash Institute of


Technology for providing his technical platform.

I am grateful to the Department of CSE for giving me the opportunity to


execute this seminar, which is an integral part the curriculum in B. Tech at
Vikash Institute of Technology.

I would like to extend My Sincere thanks to the entire faculty members


and my classmates for their valuable help.

Prabin Ballav Panigrahi

Regd. No.- 2101337018

Department of Computer Science


Vikash Institute of Technology, Bargarh
CONTENTS

I. Abstract ……………………………………………. (1)

II. Introduction to software testing.…………………….. (2)

III. History of Software Testing.………………………… (3)

IV. Need of Software Testing …………………………… (6)

V. Types of software Testing …………………................(10)

VI. Conclusion ………………………………………… (17)

VII. References ………………………………………. …(18)


ABSTRACT

Software testing is a critical process in the software development lifecycle that


aims to ensure the quality, functionality, and performance of software applications.
It involves the systematic evaluation of software components to identify defects,
verify that the software meets specified requirements, and validate that it functions
as intended. The testing process can be manual or automated, employing various
techniques such as unit testing, integration testing, system testing, and acceptance
testing.

Key methodologies in software testing include white-box testing, which


focuses on the internal logic of the code, and black-box testing, which assesses the
software's functionality without considering its internal implementation.
Additionally, grey-box testing combines both approaches to provide a
comprehensive evaluation. Automated testing, utilizing tools like Selenium, JUnit,
and TestNG, has become increasingly popular, enabling faster execution and
repeatability of tests.
The importance of software testing lies in its ability to enhance software
quality by detecting defects early, reducing the risk of failures in production, and
ensuring customer satisfaction. Moreover, it supports continuous integration and
continuous delivery (CI/CD) practices, allowing teams to release software updates
quickly and reliably.
As software systems grow in complexity, new trends such as AI-driven
testing, continuous testing, and test-driven development (TDD) are emerging,
offering innovative solutions to improve the efficiency and effectiveness of the
testing process. Overall, software testing is a vital discipline that not only ensures
software reliability but also contributes to the overall success of software projects.

1
INTRODUCTION

Software testing is an important process in the software development lifecycle. It


involves verifying and validating that a software application is free of bugs, meets
the technical requirements set by its design and development, and satisfies user
requirements efficiently and effectively.

This process ensures that the application can handle all exceptional and
boundary cases, providing a robust and reliable user experience. By systematically
identifying and fixing issues, software testing helps deliver high-quality software
that performs as expected in various scenarios.

The process of software testing aims not only at finding faults in the
existing software but also at finding measures to improve the software in terms of
efficiency, accuracy, and usability.

Software Testing is a method to assess the functionality of the software


program. The process checks whether the actual software matches the expected
requirements and ensures the software is bug-free. The purpose of software testing
is to identify the errors, faults, or missing requirements in contrast to actual
requirements. It mainly aims at measuring the specification, functionality, and
performance of a software program or application.

2
History Of Software Testing

 Early 1950: Computer scientist Tom Kilburn is credited with writing the first

piece of software on June 21, 1948, at the University of Manchester in England.

It performed mathematical calculations using machine code instructions.

 1950: The Turing test was introduced this year which checks the intelligence of
machines.

 1957: Debugging was considered a software testing method at that time. In 1957
Charles L. Baker (RAND Corporation) distinguishes program testing from
debugging in his review of the book Digital Computer Programming by Dan
McCracken. Now developers start testing their software in real-world scenarios.
This gave a boost to software quality assurance testing which is an important
part of SDLC i.e. Software Development Life-Cycle.

 1958: In this year the first team is formed specifically for testing by Gerald M.
Weinberg.

 1961: A specific chapter on software testing was introduced in the book


“Computer Programming Fundamentals” by Gerald Weinberg & Herbert Leeds.

 1968: Software testing was mentioned in a report by NATO.

 1970: In 1970 and Winston Royce described a waterfall model in the paper
Managing the Development of Large Software Systems, presented to IEEE
WESCON.

3
 1971: Richard Lipton proposed the concept of mutation. Mutation Testing is a
type of software testing in which certain statements of the source code are
changed/mutated to check if the test cases are able to find errors in the source
code.

 1973: Cause Effect Graphing-based technique was introduced.

 1978: Functional testing was introduced by William Howden.

 1979: In this era, the focus was to break the code and find some errors. That’s
why it is called a destruction-oriented era. The term breakage testing came in
this era which means to test code in such a way that it breaks.

 1983: The first version of the IEEE 829 Standard for Software Test
Documentation was published in 1983. Now the focus of testers is to check the
quality of the software. They check the software until there are approximately
no errors in the code.

 1985: Auto tester, the first commercial test tool for the PC is released by Auto
Tester.

 1986: Software quality engineering was founded by David Gelperin and


William Hetzel.

 1988-2000: Testing had reached a qualitatively new level, which led to the
further development of methodologies, and powerful tools for managing the
testing process.

 2004: Selenium, a web application testing tool was developed.

4
 2005: SoapUI was released in the month of September and it became quite
popular.

 2008: Software testing company Altom is founded, also the testing service
Applause was launched this year.

 Present: Now there are different types of testing for software that checks
different aspects of the software in different scenarios. Artificial intelligence is
also being used for testing software based on the behaviour of the end users.
Now testers perform different types of testing like Unit testing, Integration
testing, Acceptance testing, Performance testing, etc.

5
Need for Software Testing

Software testing is an essential phase of the software development lifecycle,


playing a critical role in ensuring the quality, reliability, and performance of
software applications. The demand for robust software testing stems from multiple
needs that affect both developers and end-users. Here are the key reasons why
software testing is necessary:

1. Detection of Defects and Errors

 Preventing Bugs Early: One of the primary purposes of software testing is


to identify defects or bugs in the software. Detecting issues early in the
development process helps prevent more severe problems later, saving time
and reducing costs.

 Ensuring Correct Functionality: Software testing verifies that the software


works as intended, handling all the input scenarios correctly. This helps
ensure that users do not encounter unexpected crashes or incorrect behaviour.

2. Ensuring Quality and Reliability

 Building Confidence in the Software: Testing builds confidence that the


software meets its requirements and performs well in various conditions. A
well-tested product gives stakeholders and users confidence in its quality,
increasing its acceptance in the market.

 Maintaining High Quality Standards: Quality assurance through rigorous


testing helps maintain high standards, ensuring the software performs
consistently and reliably.

6
3. Meeting Customer Expectations

 User Satisfaction: Customers expect software to be user-friendly, stable, and


reliable. If the software fails to meet these expectations, it can result in
dissatisfaction, negative reviews, and potential loss of customers.

 Ensuring Requirement Fulfilment: Testing verifies that the software meets


all specified requirements, helping to deliver a product that aligns with the
customer's needs and expectations.

4. Minimizing Development Costs

 Cost-Effective Error Resolution: Identifying and fixing bugs early in the


development process is significantly cheaper than fixing them after
deployment. The cost of correcting defects increases exponentially as they
move from the development phase to production.

 Preventing Costly Failures: A failure in a live environment can be costly


not only in terms of fixing the defect but also due to potential downtime, loss
of business, and reputational damage. Testing helps avoid these costly issues.

5. Ensuring Security

 Protecting Sensitive Data: With increasing threats from cyberattacks,


security testing is crucial to identify vulnerabilities that could be exploited
by attackers. Ensuring data security and privacy is a vital aspect of software
testing, especially for applications that handle sensitive user information.

7
 Preventing Data Breaches: By identifying security flaws and addressing
them before the software goes live, testing helps protect against potential data
breaches, safeguarding both the organization and its users.

6. Facilitating Continuous Integration and Delivery (CI/CD)

 Supporting Agile Development: In agile and DevOps environments,


software testing is an integral part of continuous integration and continuous
delivery (CI/CD) pipelines. Automated tests help detect issues in real-time,
allowing developers to make quick fixes and deliver updates faster.

 Ensuring Smooth Releases: Testing reduces the risk of issues arising in


production, enabling smoother releases and updates, and ensuring that new
features or bug fixes do not introduce new defects.

7. Enhancing User Experience

 Improving Usability: Testing involves not just checking the functionality


but also evaluating the user experience (UX). This ensures the software is
intuitive, easy to use, and provides a positive experience for end-users.

 Boosting Customer Satisfaction: A product that is thoroughly tested for


usability will likely receive better feedback from users, leading to increased
customer satisfaction and loyalty.

8. Compliance with Industry Standards

 Meeting Regulatory Requirements: In industries like healthcare, finance,


and automotive, there are strict regulations that software must comply with.
Testing helps ensure that the software meets these industry-specific standards
and regulations, reducing the risk of legal issues.

8
 Avoiding Penalties: Non-compliance with regulations can result in hefty
fines and penalties. Testing ensures adherence to necessary standards,
avoiding financial and reputational damage.

9. Reducing Maintenance Efforts

 Lowering Long-Term Maintenance Costs: A well-tested software product


is easier to maintain over time. Fewer bugs in the initial release reduce the
amount of corrective maintenance needed after deployment.

 Increasing Code Stability: Testing helps identify weak points in the code,
allowing developers to refactor and stabilize the codebase. This results in a
more maintainable product with fewer long-term issues.

10. Supporting Scalability and Performance

 Validating Performance Under Load: Performance testing, including load


and stress testing, ensures the software can handle expected user traffic and
workloads. This helps prevent performance bottlenecks and ensures the
application scales as needed.

 Ensuring Optimal Performance: Through testing, potential issues such as


slow response times, crashes under heavy load, or memory leaks can be
identified and resolved, ensuring optimal performance for end-users.

9
Types of Software Testing
1. Manual Testing

2. Automation Testing

There are two different types of software testing currently used in the industry both
have their own advantages and disadvantages. If you looking to learn testing from
the starting to advance level then you can check out our dedicated software testing
course in which we offer very important concept and knowledge you need to
master testing.

1. Manual Testing

Manual testing is a technique to test the software that is carried out using the
functions and features of an application. In manual software testing, a tester carries
out tests on the software by following a set of predefined test cases. In this testing,
testers make test cases for the codes, test the software, and give the final report
about that software. Manual testing is time-consuming because it is done by
humans, and there is a chance of human errors.

Advantages of Manual Testing

 Fast and accurate visual feedback: It detects almost every bug in the
software application and is used to test the dynamically changing GUI
designs like layout, text, etc.

 Less expensive: It is less expensive as it does not require any high-level skill
or a specific type of tool.

 No coding is required: No programming knowledge is required while using


the black box testing method. It is easy to learn for the new testers.

 Efficient for unplanned changes: Manual testing is suitable in case of


unplanned changes to the application, as it can be adopted easily.
10
2. Automation Testing

Automated Testing is a technique where the Tester writes scripts on their own and
uses suitable Software or Automation Tool to test the software. It is an Automation
Process of a Manual Process. It allows for executing repetitive tasks without the
intervention of a Manual Tester.

Advantages of Automation Testing:

 Simplifies Test Case Execution: Automation testing can be left virtually


unattended and thus it allows monitoring of the results at the end of the
process. Thus, simplifying the overall test execution and increasing the
efficiency of the application.

 Improves Reliability of Tests: Automation testing ensures that there is


equal focus on all the areas of the testing, thus ensuring the best quality end
product.

 Increases amount of test coverage: Using automation testing, more test


cases can be created and executed for the application under test. Thus,
resulting in higher test coverage and the detection of more bugs. This allows
for the testing of more complex applications and more features can be tested.

 Minimizing Human Interaction: In automation testing, everything is


automated from test case creation to execution thus there are no changes for
human error due to neglect. This reduces the necessity for fixing glitches in
the post-release phase.

11
Types of Manual Testing

1. White Box Testing


2. Black Box Testing
3. Gray Box Testing

1. White Box Testing

White box testing is a software testing technique that involves testing the internal
structure and workings of a software application. The tester has access to the
source code and uses this knowledge to design test cases that can verify the
correctness of the software at the code level.

2. Black Box Testing

Black-box testing is a type of software testing in which the tester is not concerned
with the internal knowledge or implementation details of the software but rather
focuses on validating the functionality based on the provided specifications or
requirements.

3. Gray Box Testing

Gray Box Testing is a software testing technique that is a combination of


the Black Box Testing technique and the White Box Testing technique.

1. In the Black Box Testing technique, the tester is unaware of the internal
structure of the item being tested and in White Box Testing the internal
structure is known to the tester.
2. The internal structure is partially known in Gray Box Testing.
3. This includes access to internal data structures and algorithms to design the
test cases.

12
Types of Black Box Testing

1. Functional Testing
2. Non-Functional Testing
1. Functional Testing

Functional Testing is a type of Software Testing in which the system is tested


against the functional requirements and specifications. Functional testing ensures
that the requirements or specifications are properly satisfied by the application.
This type of testing is particularly concerned with the result of processing. It
focuses on the simulation of actual system usage but does not develop any system
structure assumptions. The article focuses on discussing function testing.

2. Non-Functional Testing

Non-functional Testing is a type of Software Testing that is performed to verify


the non-functional requirements of the application. It verifies whether the
behaviour of the system is as per the requirement or not. It tests all the aspects that
are not tested in functional testing. Non-functional testing is a software testing
technique that checks the non-functional attributes of the system. Non-functional
testing is defined as a type of software testing to check non-functional aspects of a
software application. It is designed to test the readiness of a system as per
nonfunctional parameters which are never addressed by functional testing. Non-
functional testing is as important as functional testing.

Types of Functional Testing


1. Unit Testing
2. Integration Testing
3. System Testing
4. Acceptance testing

13
1. Unit Testing
Unit testing is a method of testing individual units or components of a software
application. It is typically done by developers and is used to ensure that the
individual units of the software are working as intended. Unit tests are usually
automated and are designed to test specific parts of the code, such as a particular
function or method. Unit testing is done at the lowest level of the software
development process , where individual units of code are tested in isolation.
Advantages of Unit Testing:
Some of the advantages of Unit Testing are listed below.
 It helps to identify bugs early in the development process before they become
more difficult and expensive to fix.
 It helps to ensure that changes to the code do not introduce new bugs.
 It makes the code more modular and easier to understand and maintain.
 It helps to improve the overall quality and reliability of the software.
2. Integration Testing
Integration testing is a method of testing how different units or components of a
software application interact with each other. It is used to identify and resolve any
issues that may arise when different units of the software are combined. Integration
testing is typically done after unit testing and before functional testing and is used
to verify that the different units of the software work together as intended.
Advantages of Integrating Testing
 It helps to identify and resolve issues that may arise when different units of
the software are combined.
 It helps to ensure that the different units of the software work together as
intended.
 It helps to improve the overall reliability and stability of the software.

14
 It’s important to keep in mind that Integration testing is essential for complex
systems where different components are integrated.
 As with unit testing, integration testing is only one aspect of software testing
and it should be used in combination with other types of testing such as unit
testing, functional testing, and acceptance testing to ensure that the software
meets the needs of its users.
3. System Testing
System testing is a type of software testing that evaluates the overall functionality
and performance of a complete and fully integrated software solution. It tests if the
system meets the specified requirements and if it is suitable for delivery to the end-
users. This type of testing is performed after the integration testing and before the
acceptance testing.
System Testing is a type of software testing that is performed on a completely
integrated system to evaluate the compliance of the system with the corresponding
requirements. In system testing, integration testing passed components are taken
as input. The goal of integration testing is to detect any irregularity between the
units that are integrated.
Advantages of System Testing:
 The testers do not require more knowledge of programming to carry out this
testing.
 It will test the entire product or software so that we will easily detect the
errors or defects that cannot be identified during the unit testing and
integration testing.
 The testing environment is similar to that of the real-time production or
business environment.

15
 It checks the entire functionality of the system with different test scripts and
also it covers the technical and business requirements of clients.
 After this testing, the product will almost cover all the possible bugs or errors
and hence the development team will confidently go ahead with acceptance
testing.
Advantages of Acceptance Testing
 This testing helps the project team to know the further requirements from the
users directly as it involves the users for testing.
 Automated test execution.
 It brings confidence and satisfaction to the clients as they are directly
involved in the testing process.
 It is easier for the user to describe their requirement.
 It covers only the Black-Box testing process and hence the entire
functionality of the product will be tested.

16
CONCLUSION

Software testing is an indispensable process that ensures the quality, reliability, and
security of software products. By detecting defects early, meeting customer
expectations, and complying with industry standards, testing helps deliver a
product that is robust and reliable. In today's fast-paced development
environments, the role of software testing has expanded with trends like automated
testing, continuous testing, and test-driven development, making it a vital
component of successful software projects.

Without adequate testing, software can fail to meet user requirements, exhibit poor
performance, and potentially lead to significant financial and reputational losses.
As the complexity of software systems continues to grow, the importance of
comprehensive testing in delivering high-quality products is greater than ever.

17
REFERENCES

1. www.geeksforgeeks.org/software-testing

2. www.tutorialspoint.com/software-testing/st_overview

3. www.javatpoint.com/software-testing

4. wikipedia.com/software-testing

5.M.V. Wilkes: "Software testing”, Comm.ACM

6.K. Skytte: "Software testing",

7.M.G. Lane, J.D. Mooney: A practical approach to software testing

(Boyd and Fraser, 1988).

18

You might also like