Prerequisite
Before learning software testing, you should
have basic knowledge of basic computer functionality, basic mathematics,
computer language, and logical operators.
What is Testing?
Testing is a group of techniques to determine the correctness
of the application under the predefined script but, testing cannot
find all the defect of application. The main intent of testing is to
detect failures of the application so that failures can be discovered and
corrected. It does not demonstrate that a product functions properly
under all conditions but only that it is not working in some specific
conditions.
The success of software depends upon acceptance of its
targeted audience, easy graphical user interface, strong functionality load
test, etc. For example, the audience of banking is totally different
from the audience of a video game.
What is Software Testing?
Software testing is widely used technology because it is compulsory
to test each and every software before deployment.
Software testing is a process of identifying the correctness
of software by considering its all attributes (Reliability,
Scalability, Portability, Re-usability, Usability) and evaluating the
execution of software components to find the software bugs or errors or
defects.
Testing is mandatory because it will be a dangerous situation if the software fails any of time due to lack of testing.
What is Manual testing?
The process of checking the functionality of an application
as per the customer needs without taking any help of automation tools is
known as manual testing. While performing the manual testing on any
application, we do not need any specific knowledge of any testing tool,
rather than have a proper understanding of the product so we can easily
prepare the test document.
Manual testing can be further divided into three types of
testing, which are as follows:
ü White box testing
ü Black box testing
ü Gray box testing
What is Automation testing?
Automation testing is a process of converting any manual test
cases into the test scripts with the help of automation tools, or any
programming language is 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.
There are many different types of software tests, each with
specific objectives and strategies:
Acceptance testing: Verifying whether the whole system works as intended.
Integration testing: Ensuring that software components or functions operate together.
Unit testing: Validating that each software unit performs as expected. A unit
is the smallest testable component of an application.
Functional testing: Checking functions by emulating business scenarios, based on
functional requirements. Black-box testing is a common way to verify functions.
Performance testing: Testing how the software performs under different workloads.
Load testing, for example, is used to evaluate performance under real-life load
conditions.
Regression testing: Checking whether new features break or degrade functionality.
Sanity testing can be used to verify menus, functions and commands at the
surface level, when there is no time for a full regression test.
Stress testing: Testing how much strain the system can take before it fails.
Considered to be a type of non-functional testing.
Usability testing: Validating how well a customer can use a system or web
application to complete a task.
Software Testing Principles
Software testing is a procedure of implementing software or
the application to identify the defects or bugs. For testing an application
or software, we need to follow some principles to make our product defects
free, and that also helps the test engineers to test the software
with their effort and time.