0% found this document useful (0 votes)
27 views14 pages

Ambreen SQA Assignment

Software testing is a method to check if a software product matches expected requirements and is defect-free. There are two main types of software testing: manual testing and automated testing. Manual testing involves testing a software without using automation tools, while automated testing uses automation tools. Some key types of manual testing include white box testing, black box testing, and grey box testing. Black box testing can be further divided into functional testing and non-functional testing.

Uploaded by

001stylev001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views14 pages

Ambreen SQA Assignment

Software testing is a method to check if a software product matches expected requirements and is defect-free. There are two main types of software testing: manual testing and automated testing. Manual testing involves testing a software without using automation tools, while automated testing uses automation tools. Some key types of manual testing include white box testing, black box testing, and grey box testing. Black box testing can be further divided into functional testing and non-functional testing.

Uploaded by

001stylev001
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 14

Software Testing and Its Types

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. It involves execution of software/system
components using manual or automated tools to evaluate one or more
properties of interest. The purpose of software testing is to identify
errors, gaps or missing requirements in contrast to actual requirements.

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.

Software testing provides an independent view and objective of the


software and gives surety of fitness of the software. It involves testing
of all components under the required services to confirm that whether
it is satisfying the specified requirements or not. The process also
providing the client with information about the quality of the software.

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. A properly tested software product
ensures reliability, security, and high performance which further results
in time saving, cost effectiveness and customer satisfaction.

Types of Software Testing


The categorization of software testing is a part of diverse testing
activities, such as test strategy, test deliverables, a defined test
objective, etc. And software testing is the execution of the software to
find defects.

The purpose of having a testing type is to confirm the AUT (Application


Under Test).

To start testing, we should have a requirement, application-ready,


necessary resources available. To maintain accountability, we should
assign a respective module to different test engineers.

The software testing mainly divided into two parts, which are as
follows:

o Manual Testing
o Automation Testing

What is Manual Testing?

Testing any software or an application according to the client's needs


without using any automation tool is known as manual testing.
In other words, we can say that it is a procedure of verification and
validation. Manual testing is used to verify the behavior of an
application or software in contradiction of requirements specification.

We do not require any precise knowledge of any testing tool to execute


the manual test cases. We can easily prepare the test document while
performing manual testing on any application.

Classification of Manual Testing

In software testing, manual testing can be further classified into three


different types of testing, which are as follows:

o White Box Testing


o Black Box Testing
o Grey Box Testing

White Box Testing

In white-box testing, the developer will inspect every line of code


before handing it over to the testing team or the concerned test
engineers.

Subsequently, the code is noticeable for developers throughout testing;


that's why this process is known as WBT (White Box Testing).
In other words, we can say that the developer will execute the
complete white-box testing for the particular software and send the
specific application to the testing team.

The purpose of implementing the white box testing is to emphasize the


flow of inputs and outputs over the software and enhance the security
of an application.

White box testing is also known as open box testing, glass box testing,
structural testing, clear box testing, and transparent box testing.

Black Box Testing

Another type of manual testing is black-box testing. In this testing, the


test engineer will analyze the software against requirements, identify
the defects or bug, and sends it back to the development team.
Then, the developers will fix those defects, do one round of White box
testing, and send it to the testing team.

Here, fixing the bugs means the defect is resolved, and the particular
feature is working according to the given requirement.

The main objective of implementing the black box testing is to specify


the business needs or the customer's requirements.

In other words, we can say that black box testing is a process of


checking the functionality of an application as per the customer
requirement. The source code is not visible in this testing; that's why it
is known as black-box testing.

Types of Black Box Testing

Black box testing further categorizes into two parts, which are as
discussed below:

o Functional Testing
o Non-function Testing

Functional Testing

The test engineer will check all the components systematically against
requirement specifications is known as functional testing. Functional
testing is also known as Component testing.

In functional testing, all the components are tested by giving the value,
defining the output, and validating the actual output with the expected
value.

Functional testing is a part of black-box testing as its emphases on


application requirement rather than actual code. The test engineer has
to test only the program instead of the system.
Types of Functional Testing

Just like another type of testing is divided into several parts, functional
testing is also classified into various categories.

The diverse types of Functional Testing contain the following:

o Unit Testing
o Integration Testing
o System Testing

1. Unit Testing

Unit testing is the first level of functional testing in order to test any
software. In this, the test engineer will test the module of an
application independently or test all the module functionality is
called unit testing.

The primary objective of executing the unit testing is to confirm the unit
components with their performance. Here, a unit is defined as a single
testable function of a software or an application. And it is verified
throughout the specified application development phase.

2. Integration Testing

Once we are successfully implementing the unit testing, we will


go integration testing. It is the second level of functional testing, where
we test the data flow between dependent modules or interface
between two features is called integration testing.

The purpose of executing the integration testing is to test the


statement's accuracy between each module.

Types of Integration Testing


Integration testing is also further divided into the following parts:

o Incremental Testing
o Non-Incremental Testing

Types of Incremental Integration Testing

Incremental integration testing can further classify into two parts,


which are as follows:

1. Top-down Incremental Integration Testing


2. Bottom-up Incremental Integration Testing

1. Top-down Incremental Integration Testing

In this approach, we will add the modules step by step or incrementally


and test the data flow between them. We must ensure that the
modules we are adding are the child of the earlier ones.

2. Bottom-up Incremental Integration Testing

In the bottom-up approach, we will add the modules incrementally and


check the data flow between modules. And, ensure that the module we
are adding is the parent of the earlier ones.

Non-Incremental Integration Testing/ Big Bang Method

Whenever the data flow is complex and very difficult to classify a


parent and a child, we will go for the non-incremental integration
approach. The non-incremental method is also known as the Big Bang
method.

3. System Testing

Whenever we are done with the unit and integration testing, we can
proceed with the system testing.
In system testing, the test environment is parallel to the production
environment. It is also known as end-to-end testing.

In this type of testing, we will undergo each attribute of the software


and test if the end feature works according to the business
requirement. And analysis the software product as a complete system.

Non-function Testing

The next part of black-box testing is non-functional testing. It provides


detailed information on software product performance and used
technologies.

Non-functional testing will help us minimize the risk of production and


related costs of the software.

Non-functional testing is a combination of performance, load, stress,


usability and, compatibility testing.

Types of Non-functional Testing

Non-functional testing categorized into different parts of testing, which


we are going to discuss further:

o Performance Testing
o Usability Testing
o Compatibility Testing

Performance Testing

In performance testing, the test engineer will test the working of an


application by applying some load.
In this type of non-functional testing, the test engineer will only focus
on several aspects, such as Response time, Load, scalability, and
Stability of the software or an application.

Classification of Performance Testing

Performance testing includes the various types of testing, which are as


follows:

o Load Testing
o Stress Testing
o Scalability Testing
o Stability Testing

o Load Testing

While executing the performance testing, we will apply some load on


the particular application to check the application's performance,
known as load testing. Here, the load could be less than or equal to the
desired load.

It will help us to detect the highest operating volume of the software


and bottlenecks.

o Stress Testing

It is used to analyze the user-friendliness and robustness of the


software beyond the common functional limits.

Primarily, stress testing is used for critical software, but it can also be
used for all types of software applications.

o Scalability Testing
To analysis, the application's performance by enhancing or reducing the
load in particular balances is known as scalability testing.

In scalability testing, we can also check the system, processes, or


database's ability to meet an upward need. And in this, the Test
Cases are designed and implemented efficiently.

Stability Testing

Stability testing is a procedure where we evaluate the application's


performance by applying the load for a precise time.

It mainly checks the constancy problems of the application and the


efficiency of a developed product. In this type of testing, we can rapidly
find the system's defect even in a stressful situation.

Usability Testing

Another type of non-functional testing is usability testing. In usability


testing, we will analyze the user-friendliness of an application and
detect the bugs in the software's end-user interface.

Here, the term user-friendliness defines the following aspects of an


application:

o The application should be easy to understand, which means that


all the features must be visible to end-users.
o The application's look and feel should be good that means the
application should be pleasant looking and make a feel to the end-
user to use it.

Compatibility Testing
In compatibility testing, we will check the functionality of an application
in specific hardware and software environments. Once the application
is functionally stable then only, we go for compatibility testing.

Here, software means we can test the application on the different


operating systems and other browsers, and hardware means we can
test the application on different sizes.

Grey Box Testing

Another part of manual testing is grey box testing. It is a collaboration


of black box and white box testing.

Since, the grey box testing includes access to internal coding for
designing test cases. Grey box testing is performed by a person who
knows coding as well as testing.

In other words, we can say that if a single-person team done


both white box and black-box testing, it is considered grey box testing.

Automation Testing

The most significant part of Software testing is Automation testing. It


uses specific tools to automate manual design test cases without any
human interference.

Automation testing is the best way to enhance the efficiency,


productivity, and coverage of Software testing.
It is used to re-run the test scenarios, which were executed manually,
quickly, and repeatedly.

In other words, we can say that whenever we are testing an application


by using some tools is known as automation testing.

We will go for automation testing when various releases or several


regression cycles goes on the application or software. We cannot write
the test script or perform the automation testing without
understanding the programming language.

Regression Testing
Regression testing is the most commonly used type of software testing.
Here, the term regression implies that we have to re-test those parts of
an unaffected application.

Regression testing is the most suitable testing for automation tools. As


per the project type and accessibility of resources, regression testing
can be similar to Retesting.

Whenever a bug is fixed by the developers and then testing the other
features of the applications that might be simulated because of the bug
fixing is known as regression testing.
In other words, we can say that whenever there is a new release for
some project, then we can perform Regression Testing, and due to a
new feature may affect the old features in the earlier releases.

Security Testing

It is an essential part of software testing, used to determine the


weakness, risks, or threats in the software application.

The execution of security testing will help us to avoid the nasty attack
from outsiders and ensure our software applications' security.

In other words, we can say that security testing is mainly used to define
that the data will be safe and endure the software's working process.

You might also like