introduction to software testing with types description
TRANSCRIPT
-
7/30/2019 Introduction to Software Testing with Types Description
1/7
What is Software Testing?
Software Testing is a process of verifying and
validating whether the program is performing correctly
with no bugs. It is the process of analyzing oroperating software for the purpose of finding bugs. It
also helps to identify the defects / flaws / errors that
may appear in the application code, which needs to be
fixed. Testing not only means fixing the bug in the
code, but also to check whether the program is
behaving according to the given specifications and
testing strategies. There are various types of software
testing strategies such as white box testing
strategy, black box testing strategy, gray box software
testing strategy, etc.
White Box Testing
It is the process of giving the input to the system and
checking, how the system processes the input, to
generate the output. It is mandatory for a tester to
have the knowledge of the source code.
Security Testing: Testing that confirms, how well asystem protects itself against unauthorized internal or
external, or willful damage of code, means security
testing of the system. Security testing assures that the
program is accessed by the authorized personnel only.
http://www.buzzle.com/editorials/4-10-2005-68350.asphttp://www.buzzle.com/editorials/4-10-2005-68350.asphttp://www.buzzle.com/editorials/4-10-2005-68349.asphttp://www.buzzle.com/editorials/4-10-2005-68349.asphttp://www.buzzle.com/editorials/4-10-2005-68350.asphttp://www.buzzle.com/editorials/4-10-2005-68350.asp -
7/30/2019 Introduction to Software Testing with Types Description
2/7
Black Box Testing
It explains the process of giving the input to the
system and checking the output, without considering
how the system generates the output. It is also knownas Behavioral Testing.
Functional Testing: In this type of testing, the
software is tested for the functional requirements. This
checks whether the application is behaving according to
the specification.
System Testing: System testing is the testing
conducted on a complete, integrated system, to
evaluate the system's compliance with the specified
requirements. This type of software testing validates
that the system meets its functional and non-functional
requirements and is also intended to test beyond the
bounds defined in the software/hardware requirement
specifications.
White Box Testing Strategy: Testing of internalstructure of the software is known as white boxtesting.
Black Box Testing Strategy: This testing strategy isused to test different functionalities of thesoftware, that is being developed.
Gray Box Testing Strategy: The software is testedto find defects of any kinds, whether in code or instructure.
-
7/30/2019 Introduction to Software Testing with Types Description
3/7
There are other types of software testing, which are
used to test a product to ensure that the softwaremeets requirements of the end-user. They include:
Functional Testing Smoke Testing Usability Testing Validation Testing Compatibility Testing Sanity Testing Exploratory Testing
Security Testing Regression Testing Recovery Testing Performance Testing (This includes 2 sub-types -
Load Testing and Stress Testing)
Software Testing ModelsThere are different software testing models, which the
software testing team can choose from. Each of thesemodels have different methods, as they are based ondifferent principles. A number of factors are taken into
consideration, before a particular model is chosen. Thedifferent models that are used are:
Waterfall Model in Testing
Validation and Verification Model Spiral Model Rational Unified Process (RUP) Model Agile Model Rapid Application Development (RAD) Model
-
7/30/2019 Introduction to Software Testing with Types Description
4/7
1. Validation vs. VerificationVerification answers the question, Am I building
the product right, while validation answers thequestion, Am I building the right product. Toexplain it further, verification is carried out at theend of every phase to ensure that the software has
been developed in accordance with the conditionsset up at the beginning of the said phase. On theother hand, validation is carried throughout the
software development life cycle, to ensure that allthe requirements are satisfied.
What is Verification
The standard definition of verification goes like this: "Are we building
the product RIGHT?" i.e., Verification is a process that makes it sure
that the software product is developed in the right way. The software
should confirm to its predefined specifications. As the product
development goes through different stages, an analysis is done to
ensure that all required specifications are met.
Methods and techniques used in the verification and validation shall
be designed carefully, the planning of which starts right from the
beginning of the development process. The verification part of
'Verification and Validation Model' comes before validation, which
-
7/30/2019 Introduction to Software Testing with Types Description
5/7
incorporates software inspections, reviews, audits, walkthroughs,
buddy checks, etc. in each phase of verification (every phase of
verification is a phase of the testing life cycle).
During the verification, the work product (the ready part of the
software being developed and various documentations) is
reviewed/examined personally by one or more persons in order to
find and point out the defects in it. This process helps in prevention of
potential bugs, which may cause failure of the project.
What is Validation
Validation is a process of finding out if the product being built is
right? That is, whatever software product is being developed, it
should do what the user expects it to do. The software product should
functionally do what it is supposed to, it should satisfy all the
functional requirements set by the user. Validation is done during or
at the end of the development process in order to determine whether
the product satisfies specified requirements.
Validation and verification processes go hand in hand, but visibly
validation process starts after verification process ends (after coding
of the product ends). Each verification activity (such as requirement
specification verification, functional design verification, etc.) has its
corresponding validation activity (such as functional
validation/testing, code validation/testing, system/integration
validation, etc.).
-
7/30/2019 Introduction to Software Testing with Types Description
6/7
All types of testing methods are basically carried out during the
validation process. Test plan, test suits and test cases are developed,
which are used during the various phases of validation process. The
phases involved in validation process are: Code Validation/Testing,
Integration Validation/Integration Testing, Functional
Validation/Functional Testing, and System/User Acceptance
Testing/Validation.
Code Validation/Testing
Developers as well as testers do the code validation. Unit Code
Validation or Unit Testing is a type of testing, which the developers
conduct in order to find out any bug in the code unit/module
developed by them. Code testing, other than Unit Testing, can be
done by testers or developers.
Functional Validation/Testing
This type of testing is carried out in order to find if the system meets
the functional requirements. In this type of testing, the system is
validated for its functional behavior. Functional testing does not deal
with internal coding of the project, instead, it checks if the system
behaves as per the expectations.
Black box testing Internal system design is notconsidered in this type of testing. Tests are based onrequirements and functionality.
-
7/30/2019 Introduction to Software Testing with Types Description
7/7
White box testing This testing is based on
knowledge ofthe internal logic of an applications code.Also known as Glass box Testing. Internal software and
code working should be known for this type of testing.Tests are based on coverage of code statements,branches, paths, conditions.
Functional testing This type of testing ignores the
internal parts and focus on the output is as per
requirement or not. Black-box type testing geared to
functional requirements of an application.
Performance testing Term often used
interchangeably with stressand load testing. To
check whether system meets performance
requirements. Used different performance and load
tools to do this.
Security testing Can system be penetrated by any
hacking way. Testing how well the system protects
against unauthorized internal or external access.
Checked if system, database is safe from external
attacks.