Software Testing Final Report
Software Testing Final Report
SOFTWARE TESTING
Submitted in partial fulfilment of the Requirements for the Degree
Bachelor of Technology
In
The matter embodied in this report is original and has not been
submitted for the award of any other degree.
Asst Professor
1
INTRODUCTION
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.
2
History Of Software Testing
Early 1950: Computer scientist Tom Kilburn is credited with writing the first
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.
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.
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.
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.
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
6
3. Meeting Customer Expectations
5. Ensuring Security
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.
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.
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.
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.
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.
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.
11
Types of Manual 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.
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.
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
2. Non-Functional 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
18