Chapter 3 Levels of Testing TY Bcs
Chapter 3 Levels of Testing TY Bcs
MANDAL'S
HUTUTMA RAJGURU MAHAVIDYALAYA,
RAJGURUNAGAR TAL-KHED, DIST-PUNE 410 505
DEPARTMENT OF COMPUTER SCIENCE
F.Y.Bsc (Computer Science)
Semester- II
Software Testing
Subject – CS-362 -Software Testing
According to New Syllabus w.e.f. 2021-2022
Prof. Pallavi G. Darakhe
DEPARTMENT OF COMPUTER SCIENCE
Chapter 3.
Levels Of Testing
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.
TEST STRATEGIES FOR CONVENTIONAL SOFTWARE
System Testing
INTRODUCTION:
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
complete 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 together. System testing detects defects within both the
integrated units and the whole system. The result of system testing is
the observed behavior of a component or a system when it is
tested. System Testing is carried out on the whole system in the
context of either system requirement specifications or functional
requirement specifications or in the context of both. System testing
tests the design and behavior of the system and also the expectations
of the customer. It is performed to test the system beyond the bounds
mentioned in the software requirements specification (SRS). System
Testing is basically performed by a testing team that is independent
of the development team that helps to test the quality of the system
impartial. It has both functional and non-functional testing. System
Testing is a black-box testing. System Testing is performed after
the integration testing and before the acceptance testing.
System Testing Process: System Testing is performed in the
following steps:
• Test Environment Setup: Create testing environment for
the better quality testing.
• Create Test Case: Generate test case for the testing process.
• Create Test Data: Generate the data that is to be tested.
• Execute Test Case: After the generation of the test case and
the test data, test cases are executed.
Types of System Testing:
• Performance Testing: Performance Testing is a type of
software testing that is carried out to test the speed,
scalability, stability and reliability of the software product or
application.
• Load Testing: Load Testing is a type of software Testing
which is carried out to determine the behavior of a system or
software product under extreme load.
• Stress Testing: Stress Testing is a type of software testing
performed to check the robustness of the system under the
varying loads.
• Scalability Testing: Scalability Testing is a type of software
testing which is carried out to check the performance of a
software application or system in terms of its capability to
scale up or scale down the number of user request load.
• 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.
•
• User acceptance testing (UAT) is a type of testing, which is done
by the customer before accepting the final product. Generally,
UAT is done by the customer (domain expert) for their
satisfaction, and check whether the application is working
according to given business scenarios, real-time scenarios.
• In this, we concentrate only on those features and scenarios which
are regularly used by the customer or mostly user scenarios for
the business or those scenarios which are used daily by the end-
user or the customer.
• However, the software has passed through three testing levels
(Unit Testing, Integration Testing, System Testing) But still there
are some minor errors which can be identified when the system is
used by the end user in the actual scenario.
• Alpha Testing
Second Phase: The second phase involves the quality assurance staff
performs the alpha testing by involving black box and white box
techniques.
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. This type of testing can be considered as
external user acceptance testing. It is a type of salient testing. Real users
perform this testing. This testing executed after the alpha testing. In this
the new version, beta testing is released to a limited audience to check
the accessibility, usability, and functionality, and more.
Beta testing is the last phase of the testing, which is carried out at the
client's or customer's site.
2) Open beta version: Open beta is also known as a public beta. The
open beta opened to the public. Any user as a tester can assess the beta
version to provide the relevant feedback and reviews. Open beta
version improves the quality of the final release. This version helps to
find the various undetected errors and issues.
Any product undergoing to beta test should be reviewed for the entire
checklist before launching it.
Load/Stress Testing
Stress Testing is a type of software testing that verifies stability &
reliability of software application. The goal of Stress testing is
measuring software on its robustness and error handling capabilities
under extremely heavy load conditions and ensuring that software
doesn’t crash under crunch situations. It even tests beyond normal
operating points and evaluates how software works under extreme
conditions.
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.
o Availability
o Integrity
o Authorization
o Confidentiality
o Authentication
o Non-repudiation
Security Scanning
Security scanning can be done for both automation testing and manual
testing. This scanning will be used to find the vulnerability or unwanted
file modification in a web-based application, websites, network, or the
file system. After that, it will deliver the results which help us to
decrease those threats. Security scanning is needed for those systems,
which depends on the structure they use.
Risk Assessment
Vulnerability Scanning
Penetration testing
Security Auditing
Ethical hacking
Ethical hacking is used to discover the weakness in the system and also
helps the organization to fix those security loopholes before the nasty
hacker exposes them. The ethical hacking will help us to increase the
security position of the association because sometimes the ethical
hackers use the same tricks, tools, and techniques that nasty hackers
will use, but with the approval of the official person.
Internationalization Testing
Software testing is an important part of the software development
life cycle. There are different types of software testing are performed
during the development of a software product/service. Software
testing ensures that our developed software product/service is bug-
free and delivers fulfilling the desired requirements.
The most important factor is when an IT company develops a
software product/service beyond any specific region then the
company has to perform a test to check if the product will work in
different regions of the world or not as it will be used by different
cultural people. It is also shortly known as i18n, in which 18
represents the number of characters in between I & N in the word
Internationalization. Internationalization simply makes applications
ready for localization.
Just imagine, your native language is Hindi and you are more
comfortable with it than English. And you are opening the Amazon
application for buying a brand new mobile. There you select Marathi
as your preferred language since you are comfortable with it the
most. Then the content and user interface will be adapted to the
language “Marathi”.
After that, the functionality and the responses of the application are
not going to change. The words and visual representations are
customized to your language. Along with that, you will get
recommendations depending on special occasions and specific
festivals in your culture and region. This customization for a specific
language and region is made possible with the process of
localization.
Likewise, the Amazon application now supports several languages
including seven popular Indian languages. If you prefer any of the
languages, the entire page will be customized in just seconds based
on the language selected. This process of designing an application
for the localization to any given international language and region is
called Internationalization.
Configuration Testing
Configuration Testing is a software testing technique in which the
software application is tested with multiple combinations of software
and hardware in order to evaluate the functional requirements and
find out optimal configurations under which the software application
works without any defects or flaws.