0% found this document useful (0 votes)
69 views45 pages

UNIT-3 Software Testing

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)
69 views45 pages

UNIT-3 Software Testing

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/ 45

TYPES OF SOFTWARE TESTING

o In this section, we are going to understand the various types of software testing, which
can be used at the time of the Software Development Life Cycle.

o As we know, software testing is a process of analyzing an application's functionality as


per the customer prerequisite.

o If we want to ensure that our software is bug-free or


stable, we must perform the various types of software
testing because testing is the only method that makes
our application bug-free.
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:
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.

White box testing can be done for different purposes. The three main types are:
1. Unit Testing
2. Integration Testing
3. Regression Testing

Unit Testing
 Checks if each part or function of the application works correctly.
 Ensures the application meets design requirements during development.
Integration Testing
 Examines how different parts of the application work together.
 Done after unit testing to make sure components work well both alone
and together.
Regression Testing
 Verifies that changes or updates don’t break existing functionality.
 Ensures the application still passes all existing tests after updates.

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.

 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


The following are the several categories of black box testing:
1. Functional Testing
2. Nonfunctional Testing (NFT)
Functional Testing
 Functional testing is defined as a type of testing that verifies that each
function of the software application works in conformance with the
requirement and specification.
 This testing is not concerned with the source code of the application.
Each functionality of the software application is tested by providing
appropriate test input, expecting the output, and comparing the actual
output with the expected output.
 This testing focuses on checking the user interface, APIs, database,
security, client or server application, and functionality of the
Application Under Test. Functional testing can be manual or
automated. It determines the system’s software functional requirements.
Nonfunctional 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.
 Non-functional testing is also known as NFT. This testing is not
functional testing of software. It focuses on the software’s performance,
usability, and scalability.

GreyBox Testing

 Greybox testing is a software testing method to test the software application with
partial knowledge of the internal working structure.
 It is a combination of black box and white box testing because it involves access to
internal coding to design test cases as white box testing and testing practices are done
at functionality level as black box testing.

Gray Box Testing

Objectives of Gray Box Testing


1. To provide combined advantages of both black box testing and white
box testing.
2. To combine the input of developers as well as testers.
3. To improve overall product quality.
4. To reduce the overhead of long process of functional and non-
functional testings.
5. To provide enough free time to developers to fix defects.
6. To test from the user point of view rather than a designer point of view.

S.
Black Box Testing Gray Box Testing White Box Testing
No.

This testing has a This testing has


This testing has Low
1. medium level of high-level
granularity.
granularity. granularity.

It is done by end-users
It is done by end-users It is generally done
(called user acceptance
2. and also by the tester and by testers and
testing) and also by
developers. developers.
testers and developers.
It is likely to be less
Most exhaustive
3. exhaustive than the other It is kind of in-between.
among all three.
two.

It is based on It provides better


requirements, and test variety/depth in test cases It can exercise code
4. cases on the functional on account of high-level with a relevant
specifications, as the knowledge of the variety of data.
internals are not known. internals.

If used algorithm testing If algorithm testing


If algorithm testing is not
5. is also not suited best for is, it is suited best
suited best for that.
that. for that.

It is suited for functional


It is suited for functional
6 or business domain It is used for all.
or business testing.
testing deeply.

Herein, we have a better


This testing involves It involves structural
variety of inputs and the
validating the outputs for testing and enables
ability to extract test
7 given inputs, the logic coverage,
results from the database
application being tested decisions, etc.
for comparison with
as a black-box technique. within the code.
expected results.

8 Black-box test design Gray box test design White-box test


techniques- techniques- design techniques-
 Decision table  Matrix testing  Control
testing  Regression flow
 All-pairs testing testing
testing  Pattern testing  Data flow
 Equivalence testing
 Orthogonal
partitioning  Branch
Array Testing
 Error guessing testing

White Box testing


Black Box testing Gray Box testing does
does not provide
provides resilience and not provide resilience and
9 resilience and
security against viral security against viral
security against
attacks. attacks.
viral attacks.

Levels of Software Testing


Software Testing is an activity performed to identify errors so that errors can be
removed to obtain a product with greater quality. To assure and maintain the
quality of software and to represent the ultimate review of specification, design,
and coding, Software testing is required.
There are different levels of testing :
1. Unit Testing:
In this type of testing, errors are detected individually from every
component or unit by individually testing the components or units of
software to ensure that they are fit for use by the developers. It is the
smallest testable part of the software.
2. Integration Testing:
In this testing, two or more modules which are unit tested are
integrated to test i.e., technique interacting components, and are then
verified if these integrated modules work as per the expectation or not, and
interface errors are also detected.
3. System Testing:
In system testing, complete and integrated Softwares are tested i.e., all
the system elements forming the system are tested as a whole to meet the
requirements of the system.
4. Acceptance Testing:
This is a kind of testing conducted to ensure that the requirements of
the users are fulfilled before its delivery and that the software works
correctly in the user’s working environment.
These tests can be conducted at various stages of software development. The levels
of testing along with the corresponding software development phase are shown in
the following diagram:

Testing Types
Unit Testing

 Unit testing involves the testing of each unit or an individual component of the
software application.

 It is the first level of functional testing.

 A unit is a single testable part of a software system and tested during the development
phase of the application software.

Example of Unit testing


Let us see one sample example for a better understanding of the concept
of unit testing:

For the amount transfer, requirements are as follows:

1. Amount transfer

1.1 From account number (FAN)→ Text Box


1.1.1 FAN→ accept only 4 digit

1.2 To account no (TAN)→ Text Box

1.2.1 TAN→ Accept only 4 digit

1.3 Amount→ Text Box

1.3.1 Amount → Accept maximum 4 digit

1.4 Transfer→ Button

1.4.1 Transfer → Enabled

1.5 Cancel→ Button

1.5.1 Cancel→ Enabled

Below are the application access details, which is given by the customer

o URL→ login Page


o Username/password/OK → home page
o To reach Amount transfer module follow the below

Loans → sales → Amount transfer

While performing unit testing, we should follow some rules, which are as
follows:

o To start unit testing, at least we should have one module.


o Test for positive values
o Test for negative values
o No over testing
o No assumption required

When we feel that the maximum test coverage is achieved, we will stop
the testing.

Now, we will start performing the unit testing on the different components
such as
o From account number(FAN)
o To account number(TAN)
o Amount
o Transfer
o Cancel

For the FAN components

Values Description

1234 accept

4311 Error message→ account valid or not

blank Error message→ enter some values

5 digit/ 3 digit Error message→ accept only 4 digit

Alphanumeric Error message → accept only digit

Blocked account no Error message


Copy and paste the value Error message→ type the value

Same as FAN and TAN Error message

For the TAN component

o Provide the values just like we did in From account number (FAN)
components

For Amount component

o Provide the values just like we did in FAN and TAN components.

For Transfer component

o Enter valid FAN value


o Enter valid TAN value
o Enter the correct value of Amount
o Click on the Transfer button→ amount transfer successfully( confirmation
message)

For Cancel Component

o Enter the values of FAN, TAN, and amount.


o Click on the Cancel button → all data should be cleared.

Unit Testing Tools


We have various types of unit testing tools available in the market, which
are as follows:

o NUnit
o JUnit
o PHPunit
o Parasoft Jtest
o EMMA

Unit Testing Techniques:


Unit testing uses all white box testing techniques as it uses the code of software application:
o Data flow Testing
o Control Flow Testing
o Branch Coverage Testing
o Statement Coverage Testing
o Decision Coverage Testing

Advantages
o Unit testing uses module approach due to that any part can be tested without waiting for
completion of another parts testing.
o The developing team focuses on the provided functionality of the unit and how functionality
should look in unit test suits to understand the unit API.
o Unit testing allows the developer to refactor code after a number of days and ensure the
module still working without any defect.

Disadvantages
o It cannot identify integration or broad level error as it works on units of the code.
o In the unit testing, evaluation of all execution paths is not possible, so unit testing is not able
to catch each and every error in a program.
o It is best suitable for conjunction with other testing activities.

Integration testing
 Integration testing is the second level of the software testing process comes after unit
testing.

 In this testing, units or individual components of the software are tested in a group.

 The focus of the integration testing level is to expose defects at the time of interaction
between integrated components or units.
Once all the components or modules are working independently, then we need to check the
data flow between the dependent modules is known as integration testing.

Let us see one sample example of a banking application, as we can see in the below image of
amount transfer.

o First, we will login as a user P to amount transfer and send Rs200 amount, the confirmation
message should be displayed on the screen as amount transfer successfully. Now logout as P
and login as user Q and go to amount balance page and check for a balance in that account =
Present balance + Received Balance. Therefore, the integration test is successful.
o Also, we check if the amount of balance has reduced by Rs200 in P user account.
o Click on the transaction, in P and Q, the message should be displayed regarding the data and
time of the amount transfer.
Scenarios1:

o First, we login as P users and click on the Compose mail and performing the functional
testing for the specific components.
o Now we click on the Send and also check for Save Drafts.
o After that, we send a mail to Q and verify in the Send Items folder of P to check if the send
mail is there.
o Now, we will log out as P and login as Q and move to the Inbox and verify that if the mail
has reached.

o Among the two features, we must be performing only positive integrating testing or
both positive and negative integration testing, and this also depends on the features need.

Types of Integration Testing

Integration testing can be classified into two parts:

o Incremental integration testing


o Non-incremental integration testing
Incremental Approach

 In the Incremental Approach, modules are added in ascending order one


by one or according to need.

 The selected modules must be logically related.

 Generally, two or more than two modules are added and tested to
determine the correctness of functions.

 The process continues until the successful testing of all the modules.

For example: Suppose we have a Flipkart application, we will perform


incremental integration testing, and the flow of the application would like this:

Flipkart→ Login→ Home → Search→ Add cart→Payment → Logout

Incremental integration testing is carried out by further methods:

o Top-Down approach
o Bottom-Up approach

Non- incremental integration testing

We will go for this method, when the data flow is very complex and
when it is difficult to find who is a parent and who is a child. And in
such case, we will create the data in any module bang on all other
existing modules and check if the data is present. Hence, it is also
known as the Big bang method.

o Note: The combination incremental integration testing (I.I.T) and non-


incremental integration testing is known as sandwich testing.

System Testing
 System Testing includes testing of a fully integrated software system.
 Generally, a computer system is made with the integration of software
(any software is only a single element of a computer system).

 The software is developed in units and then interfaced with other


software and hardware to create a complete computer system.

Hierarchy of Testing Levels

System Testing includes the following steps.

o Verification of input functions of the application to test whether it is


producing the expected output or not.
o Testing of integrated software by including external peripherals to check
the interaction of various components with each other.
o Testing of the whole system for End to End testing.
o Behavior testing of the application via auser's experience
Types of System Testing

System testing is divided into more than 50 types, but software testing
companies typically uses some of them. These are listed below:
Performance Testing

we will learn about performance testing, why we need it, types of performance testing, and
the performance testing process.

What is performance testing

 Response time: Response time is the time taken by the server to respond to the
client's request.

 Load: Here, Load means that when N-number of users using the application
simultaneously or sending the request to the server at a time.

 Stability: For the stability factor, we can say that, when N-number of users using the
application simultaneously for a particular time.

Types of Performance Testing


o Load testing
o Stress testing
o Scalability testing
o Stability testing

Let us discuss one by one to give you a complete understanding of Load, Stress,
Scalability, and Stability performance testing.

Load testing

The load testing is used to check the performance of an application by applying some load
which is either less than or equal to the desired load is known as load testing.

For example: In the below image, 1000 users are the desired load, which is given by the
customer, and 3/second is the goal which we want to achieve while performing a load
testing.

Stress Testing

The stress testing is testing, which checks the behavior of an application by applying load
greater than the desired load.
For example: If we took the above example and increased the desired load 1000 to 1100
users, and the goal is 4/second. While performing the stress testing in this scenario, it will
pass because the load is greater (100 up) than the actual desired load.

Scalability Testing

Checking the performance of an application by increasing or decreasing the load in particular


scales (no of a user) is known as scalability testing. Upward scalability and downward
scalability testing are called scalability testing.

Scalability testing is divided into two parts which are as follows:

o Upward scalability testing


o Downward scalability testing

Upward scalability testing

It is testing where we increase the number of users on a particular scale until we get a
crash point. We will use upward scalability testing to find the maximum capacity of an
application.

Downward scalability testing

The downward scalability testing is used when the load testing is not passed, then
start decreasing the no. of users in a particular interval until the goal is achieved. So that it
is easy to identify the bottleneck (bug).

Stability Testing

Checking the performance of an application by applying the load for a particular duration
of time is known as Stability Testing.
If we perform a positive flow of the performance testing process, it could
follow the below process:

Performance test tools

 We have various types of performance testing tools available in the market, where
some are commercial tools and open-source tool.

 Commercial tools: LoadRunner[HP], WebLOAD, NeoLoad

 Open-source tool: JMeter

Security Testing
 Security testing is an integral part of software testing, which is used to discover the
weaknesses, risks, or threats in the software application and also help us to stop the
nasty attack from the outsiders and make sure the security of our software
applications.

 The primary objective of security testing is to find all the potential ambiguities and
vulnerabilities of the application so that the software does not stop working. If we
perform security testing, then it helps us to identify all the possible security threats
and also help the programmer to fix those errors.
Principle of Security testing

Key Areas in Security Testing


Security testing tools

We have various security testing tools available in the market, which are as
follows:

o SonarQube
o ZAP
o Netsparker
o Arachni
o IronWASP
Recovery testing

In this section, we are going to understand recovery testing, which is an


important part of Non-functional testing and used to test how soon the
application is recovered from the hardware crashed or fails.

And we also learn about its process, why we need to perform the recovery
testing, who perform the recovery testing, example, advantage and
disadvantage.

Recovery testing life cycle


The recovery testing life cycle includes the various phase, which is as
follows:

o Standard operations
o Disaster and failure occurrence
o Interruption to Standard Process
o Recovery Process
o Rebuild Process

Advantages:

Some of the major benefits of performing the recovery testing are as follows:

o One of the most important advantages of recovery testing is to recovers system


quality because whenever the bugs are detected and fixed, it improves the system's
quality.
o The recovery testing will help us to remove risks.
o It helps us to decreases the risk of failure of the software product in the market.
o When we implement the recovery testing, we can easily identify the performance-
related issues and fix them before the software product goes live in the market.
o The system is more stable, reliable and bug-free once we performed the recovery
testing.
Disadvantages

Following are the disadvantages of recovery testing:

o Recovery testing is a time-consuming process as the test cases are random.


o It is an expensive process.
o A skilled person is essential to test the recovery testing; if the untrained test engineer
implements the recovery testing, they should have all the data for testing: data and
backup files.
o In recovery testing, we may not detect all the potential bugs in a few cases because
sometimes the issues are unpredictable.

compatibility testing
 It is part of non-functional testing.
 Checking the functionality of an application on different software, hardware platforms,
network, and browsers is known as compatibility testing.

Types of Compatibility testing


o Software
o Hardware
o Network
o Mobile

Compatibility testing bug/issue


These bugs are those that are happening in one platform, but not occur in another platform.
Generally, the compatibility bugs are user interface issues, some of the U.I problems are as
follows:

o Alignment issue
o Overlap issue
o Scattered issue
o Look and feel issue

Alignment issue

The alignment issue is that in which the element of the page is not aligned in a proper format
as we can see in the below image:

Overlap issue

When one attribute is overlapping to another attribute, it may happen when we are trying to
open the application on the different platforms, browsers as we can see in the below image:
Scattered issue

When the test engineer performing compatibility testing on the application, and that
application is not compatible with all browsers, and platform that's why the scattered issues
may occur as we can see in the below image:

Testing the functionality, integration, and end-to-end flow on the different platforms are what
we do in the compatibility testing.

Compatibility issue: When the application feature is not working in one operating
system, but working fine in other operating systems. It happens because a program written by
the developer is not working in only one platform, but working fine on all other platforms.

Functionality issue: when a feature is not working in all operating system/ platform.
And it is also known as functionality defect issue.
For compatibility testing, the test execution report looks something like this:

Compatibility testing tools


Some of the most commonly used compatibility testing tools are as follows:

o LambdaTest
o BrowserStack
o BrowseEMAll
o TestingBot

Regression Testing:
 Regression testing is a black box testing techniques.

 It is used to authenticate a code change in the software does not impact the existing
functionality of the product.

 Regression testing is making sure that the product works fine with new
functionality, bug fixes, or any change in the existing feature.
Regression Testing Process
The regression testing process can be performed across the builds and
the releases.

Regression testing across the builds


Whenever the bug fixed, we retest the Bug, and if there is any dependent
module, we go for a Regression Testing.
Regression Testing Tools
 Selenium

 Ranorex Studio

 Quick Test Professional (QTP)

Differences between the Re-testing and Regression Testing are as


follows:

Re-testing Regression Testing

Re-testing is performed to ensure that the Regression Testing is done to confirm


test cases that are failed in the final whether the code change has not affected
execution are passing after the defects fixed. the existing features.

Re-Testing works on defect fixes. The purpose of regression testing is to


ensure that the code changes adversely not
affect the existing functionality.

Defect verification is the part of the Regression testing does not include defect
Retesting. verification

The priority of Retesting is higher than Based on the project type and availability of
Regression Testing, so it is done before the resources, regression testing can be
Regression Testing. parallel to Retesting.

Re-Test is a planned Testing. Regression testing is a generic Testing.

We cannot automate the test-cases for We can do automation for regression


Retesting. testing; manual testing could be expensive
and time-consuming.

Re-testing is for failed test-cases. Regression testing is for passed Test-cases.

Advantages of Regression Testing


o Regression Testing increases the product's quality.
o It ensures that any bug fix or changes do not impact the existing functionality of the
product.
o Automation tools can be used for regression testing.
o It makes sure the issues fixed do not occur again.

Disadvantages of Regression Testing


o Regression Testing should be done for small changes in the code because even a slight change
in the code can create issues in the existing functionality.
o If in case automation is not used in the project for testing, it will time consuming and tedious
task to execute the test again and again.

Installation testing:
 Testing the procedures to achieve an installed software system that can be
used is known as installation testing.
 In this installation testing checking full or partial upgrades and other
features install/uninstall processes are included.
 The installation testing ensures that the software application has been
successfully installed with all its inherent features or not. It is also named
implementation testing, mainly it’s done in the end phase.
The features of installation testing:
 Network Installation: It tests the installation process across a network
if the programme allows network installations. Make that the
programme can be installed correctly on various computers connected
to the network.
 Error Handling: Examine the ways in which the installation process
responds to different types of errors, including invalid input,
insufficient disc space and interrupted installations. Make that the right
error messages appear and that instructions on how to fix problems are
provided to users.
 Impact on Performance: Evaluate how the installation procedure
affects the functionality of the machine. Make sure the installation
won’t interfere with other open apps or drastically decrease system
performance.
 Validation of Documentation: Make sure the installation instructions
are easy to understand for users and that the documentation
appropriately depicts the installation procedure. This involves ensuring
that the installation instructions and the documentation are consistent
with one another.
 Verification of File Integrity: To make sure that all required files are
accurately copied throughout the installation process, run a file integrity
check. This include confirming rights, checksums and file sizes.
 Registry and Configuration Parameters: Verify that during
installation, the programme accurately modifies configuration settings
and registry entries. Examine the setup for any inconsistencies or
mistakes that can affect the software’s functionality.
Advantages of installation testing
 The first biggest advantage is that it verifies the designs of apps and
software on a basic level of test performance.
 It’s a very crucial part of STLC which helps in maintaining the standard
according to that.
 It’s a very quick and handy method to check the version of the software
Dis-advantages of installation testing
 Time-consuming: Installation testing can be time-consuming, especially
if the software needs to be tested on multiple operating systems,
hardware, and software configurations.
 Resource-intensive: Installation testing requires significant resources,
including hardware, software, and personnel, which can be costly for
organizations, especially for smaller ones.
 Limited scope: Installation testing typically focuses on the installation
and configuration process and may not cover other areas of the
software, such as functionality or performance.
 False sense of security: If installation testing is the only type of testing
conducted, there may be a false sense of security that the software is of
high quality.
 Dependence on user environment: Installation testing is dependent on
the user environment, and the software may behave differently on
different systems and configurations.
Usability Testing:

Usability testing is instead focused on the end-user, on how easily he was


able to use the interface and if the design of the interface was friendly
enough.
CHARACTERISTICS

The Advantages of Usability Testing


o The execution of usability testing helps us to validate the usability of the software.
o Its enhanced user satisfaction with the software product and also ensured to deliver a good
quality product.
o The implementation of usability testing will improve the adequacy and consistency of the
software product.
o With the help of usability testing, we can discover the usability issues before delivering the
final product.
o The end-user is always eager to use the application.

The Disadvantage of Usability Testing


o As we know that budgeting is the most crucial factor while performing any software testing.
Here, usability testing costing also plays an essential role. It requires many resources to
establish a usability test lab, and sometimes hiring or recruiting a usability test engineer could
be costly.
o As we understood from the above discussion of the usability testing that it is implemented by
the end-users, sometimes it is a bit harder to identify the volunteers who can work as test
engineers.
o Primarily, usability testing is not 100% representative of the actual condition.

Acceptance testing

 Acceptance testing is formal testing based on user requirements and function


processing.

 It determines whether the software is conforming specified requirements and user


requirements or not.

 It is conducted as a kind of Black Box testing where the number of required users
involved testing the acceptance level of the system. It is the fourth and last level of
software testing.

Advantages of Acceptance Testing


o It increases the satisfaction of clients as they test application itself.
o The quality criteria of the software is defined in an early phase so that the tester has already
decided the testing points. It gives a clear view to testing strategy.
o The information gathered through acceptance testing used by stakeholders to better
understand the requirements of the targeted audience.
o It improves requirement definition as client tests requirement definition according to his
needs.
Disadvantages of Acceptance Testing
According to the testing plan, the customer has to write requirements in their own words and
by themselves but

a. Customers are not willing to do that; it defeats the whole point of acceptance testing.

b. If test cases are written by someone else, the customer does not understand them, so tester has
to perform the inspections by themselves only.

If the process is done in this manner, it destroys the existence of the Acceptance Testing.

Alpha Testing Introduction:

 Alpha testing is conducted in the organization and tested by a representative group of


end-users at the developer's side and sometimes by an independent team of testers.

 Alpha testing is simulated or real operational testing at an in-house site. It comes after
the unit testing, integration testing, etc. Alpha testing used after all the testing are
executed.

 It can be a white box, or Black-box testing depends on the requirements - particular


lab environment and simulation of the actual environment required for this testing.
1. Requirement Review: Review the design of the specification and functional requirement
2. Test Development: Test development is base on the outcome of the requirement review.
Develop the test cases and test plan.
3. Test case design: Execute the test plan and test cases.
4. Logging Defects: Logging the identified and detected bug found in the application.
5. Bug Fixation: When all the bugs are identified and logged, then there is a need to fix the bug.
6. Retesting: When all the issues are solved, and fixed retesting is done.

There are two phases of alpha testing.

First Phase: In-house developers of software engineers do the first phase of testing. In this
phase, the tester used hardware debugger or hardware aided debugger to catches the bugs
quickly. During the alpha testing, a tester finds a lot of bugs, crashes, missing features, and
docs.
Second Phase: The second phase involves the quality assurance staff performs the alpha
testing by involving black box and white box techniques.

The features of Alpha Testing:


o Alpha testing is a type of acceptance testing.
o Alpha testing is happening at the stage of the completion of the software product.
o Alpha testing is in the labs where we provide a specific and controlled environment.
o Alpha testing is in-house testing, which is performed by the internal developers and testers
within the organization.
o There is not any involvement of the public.
o Alpha testing is for testing the software application, products, and projects.

Advantages of alpha testing are:

o One of the benefits of alpha testing is it reduces the delivery time of the project.
o It provides a complete test plan and test cases.
o Free the team member for another project.

Disadvantages of alpha testing are:

o Alpha testing does not involve in-depth testing of the software.


o The difference between the tester's tests the data for testing the software and the customer's
data from their perspective may result in the discrepancy in the software functioning.

Beta Testing:
 Beta testing is a type of User Acceptance Testing among the most crucial testing,
which performed before the release of the software.

 Beta Testing is a type of Field Test. This testing performs at the end of
the software testing life cycle.
o This type of testing can be considered as external user acceptance testing. It is a type

of salient

Features of beta testing are:

o Beta testing used in a real environment at the user's site. Beta testing helps in providing the
actual position of the quality.
o Testing performed by the client, stakeholder, and end-user.
o Beta testing always is done after the alpha testing, and before releasing it into the market.
o Beta testing is black-box testing.
o Beta testing performs in the absence of tester and the presence of real users
o Beta testing is performed after alpha testing and before the release of the final product.
o Beta testing generally is done for testing software products like utilities, operating systems,
and applications, etc.

Types of beta testing:


1. Open Beta Testing
2. Closed Beta Testing
3. Traditional Beta Testing
4. Public Beta Testing
5. Technical Beta Testing
6. Focused Beta Testing
7. Post-Release Beta Testing

Advantages:
1. Beta testing focuses on the customer's satisfaction.
2. It helps to reduce the risk of product failure via user validations.
3. Beta testing helps to get direct feedback from users.
Disadvantages :

1. In this type of testing, a software engineer has no control over the process of the testing, as the
users in the real-world environment perform it.
2. This testing can be a time-consuming process and can delay the final release of the product.

Difference between Static testing and Dynamic Testing

Static testing Dynamic testing

In static testing, we will check the code or In dynamic testing, we will check the
the application without executing the code/application by executing the code.
code.

Static testing includes activities like code Dynamic testing includes activities like
Review, Walkthrough, etc. functional and non-functional testing such as
UT (usability testing), IT (integration testing),
ST (System testing) & UAT (user acceptance
testing).

Static testing is a Verification Process. Dynamic testing is a Validation Process.

Static testing is used to prevent defects. Dynamic testing is used to find and fix the
defects.

Static testing is a more cost-effective Dynamic testing is a less cost-effective


process. process.

This type of testing can be performed Dynamic testing can be done only after the
before the compilation of code. executables are prepared.

Under static testing, we can perform the Equivalence Partitioning and Boundary Value
statement coverage testing and structural Analysis technique are performed under
testing. dynamic testing.

Difference between the Black Box testing and White box testing
ASPECTS BLACK BOX TESTING WHITE BOX TESTING

1. Basic It is a software testing In white-box testing, the


technique that examines internal structure of the
the functionality of software is known to the
software without knowing tester.
its internal structure or
coding.

2. Also known as Black Box Testing is also It is also known as structural


known as functional testing, clear box testing,
testing, data-driven code-based testing, and
testing, and closed-box transparent testing.
testing.

3. Programming In black-box testing, there In white-box testing, there is


knowledge is less programming a requirement of
knowledge is required. programming knowledge.

4. Algorithm It is not well suitable for It is well suitable and


testing algorithm testing. recommended for algorithm
testing.

5. Usage It is done at higher levels It is done at lower levels of


of testing that are system testing that are unit testing
testing and acceptance and integration testing.
testing.

6. Automation It is hard to automate It is easy to automate the


black-box testing due to white box testing.
the dependency of testers
and programmers on each
other.

7. Tested by It is mainly performed by It is mainly performed by


the software testers. developers.

8. Time- It is less time-consuming. It is more time-consuming. It


consuming In Black box testing, time takes a long time to design
consumption depends upon test cases due to lengthy
the availability of the code.
functional specifications.

9. Base of testing The base of this testing is The base of this testing is
external expectations. coding which is responsible
for internal working.

10 Exhaustive It is less exhaustive than It is more exhaustive than


. White Box testing. Black Box testing.

11 Implementation In black-box testing, there In white-box testing, there is


. knowledge is no implementation a requirement of
knowledge is required. implementation knowledge.

12 Aim The main objective of Its main objective is to check


. implementing black box the code quality.
testing is to specify the
business needs or the
customer's requirements.

13 Defect In black-box testing, Whereas, in white box


. detection defects are identified once testing, there is a possibility
the code is ready. of early detection of defects.

14 Testing method It can be performed by trial It can test data domain and
. and error technique. data boundaries in a better
way.

15 Types Mainly, there are three The types of white box


. types of black-box testing: testing are – Path testing,
functional testing, Non- Loop
Functional testing, and Condition
testing, and Regression testing.
testing.

Manual testing vs. Automation testing


Manual testing Automation testing

Testing in which a human tester executes test In automation testing, automation tools are used to
cases execute the test cases

In this testing, human resources are involved, It is much faster than the manual testing
that's why it is time-consuming

It is repetitive and error-prone Here automated tools are used that make it interesting
and accurate
BVT (build verification testing) is time- It's easy to build verification testing
consuming and tough in manual testing

Instead of frameworks, this testing use Frameworks like keyword, hybrid, and data drive to
checklist, guidelines, and stringent process for accelerate the automation process.
drafting test cases.

The process turnaround time is higher than It completes a single round of testing within record time;
the automation testing process (one testing therefore, a process turnaround time is much lower than
cycle takes lots of time) a manual testing process.

The main goal of manual testing is user- Automation testing can only guarantee a positive
friendliness or improved customer customer experience and user-friendliness.
experience.

It is best for usability, exploratory and adhoc It is widely used for performing testing, load testing and
testing regression testing.

Low return on investment The high return on investment

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy