Introduction To Software Testing
Lecture 03 - Manual Testing
➔ Software Development Models
- a) Waterfall Model
b) Spiral Model
c) V Model
d) Agile Model
Waterfall Model
Previous Lecture
➔
(Explanation, Advantages, DisAdvantages)
Recap ➔ Spiral Model
(Explanation, Advantages, DisAdvantages)
➔ Basic Software Architecture
○ Frontend
○ Backend
○ API
Introduction To Software Testing
What Is Software Testing?
Software Testing is a method to check whether the actual software
product matches expected requirements and to ensure that software
product is Defect free.
Why Software Testing is important?
Software Testing is Important because
if there are any bugs or errors in the
software, it can be identified early and
can be solved before delivery of the
software product. Properly tested
software product ensures reliability,
security and high performance which
further results in time saving, cost
effectiveness and customer
satisfaction.
Why Software Testing Is Needed?
Testing is important because software bugs could be expensive or even
dangerous. Software bugs can potentially cause monetary and human loss,
and history is full of such examples.
Facebook: In 2018, Facebook faced a major software testing failure when a bug in the
software caused the personal information of 50 million users to be exposed. The bug
allowed hackers to take over user accounts, giving them access to personal information
such as phone numbers, emails, and other data.
Boeing 737 Max: In 2018, two Boeing 737 Max airplanes crashed, killing a total of 346
people. Investigations revealed that the crashes were caused by a software issue that had not
been properly tested. The software system, known as the Maneuvering Characteristics
Augmentation System (MCAS), was designed to prevent the airplane from stalling.
However, the system malfunctioned, causing the airplanes to nosedive.
Basic Classification Of Software Testing
Software Testing Can be classified into two major parts -
1. Manual Testing.
2. Automation Testing.
Manual Testing
Manual testing is the process of testing software
applications manually, where testers perform test
cases without using any automated tools or
scripts.
While performing manual testing on any
application, we do not need any specific
knowledge of any testing tool, rather than having
a proper understanding of the product so we can
easily prepare the test document.
Automation Testing
Automation testing is a process of converting any
manual test cases into test scripts with the help
of automation tools, or any programming
language known as automation testing. With the
help of automation testing, we can enhance the
speed of our test execution because here, we do
not require any human efforts. We need to write
a test script and execute those scripts.
Manual vs Automation Example
(Real Time Non-Technical)
Manual vs Automation Example
(Real Time Technical - LogIn Page)
Differences Between Manual and Automation Testing
Software Testing Basic Terms And Keywords
Error - An Error is a mistake made in the code; that's why we
cannot execute or compile code.
Bug / Defect - The Defect is the difference between the actual
outcomes and expected outputs, Identified in testing by tester.
Failure - This is the difference between the actual results and
expected results identified by end user.
Types Of Failures
Fatal Error / Failure - Fatal error means the error has occurred
and we can-not recover from it. The application crashes and
executions stops. We cannot proceed further with the flow.
Non-Fatal Error - Non-Fatal error means the error has
occurred but we recover from it. The application does not crash
and executions does not stops. We can proceed further with the
flow after recovery.
Thank You