SlideShare a Scribd company logo
IV
Software Testing: Testing Process, Design of Test Cases, Types of
Testing, Functional Testing, Structural Testing, Test Activities, Unit
Testing, Integration Testing and System Testing. Debugging
Activities.
Software Maintenance: Management of Maintenance, Maintenance
Process, Reverse Engineering, Software Re-engineering,
Configuration Management, Documentation.
10
Testing in Software Engineering
As per ANSI/IEEE 1059, Testing in Software Engineering is a process of
evaluating a software product to find whether the current software product
meets the required conditions or not. The testing process involves evaluating the
features of the software product for requirements in terms of any missing
requirements, bugs or errors, security, reliability and performance.
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. Properly tested software product ensures reliability, security
and high performance which further results in time saving, cost effectiveness
and customer satisfaction.
What are the Steps of Software Testing?
Verification and Validation are two major steps in software testing. These steps
implement the fundamentals of software testing.
 In software testing, verification is the process through which your team
checks whether the program, system, or framework is consistent and
aligned with the documentation requirements.
 Validation is the procedure by which your team verifies the system's
accuracy. During this process, you will reflect on the product and the
system; and think of what users desire and what has been developed.
Types of Software Testing
In this section, we have covered the different aspects of some of the most
popular testing types and their subtypes.
White-box testing
It is conducted to test program and its implementation, in order to improve code
efficiency or structure. It is also known as ‘Structural’ testing.
In this testing method, the design and structure of the code are known to the
tester. Programmers of the code conduct this test on the code.
The below are some White-box testing techniques:
 Control-flow testing - The purpose of the control-flow testing to set up
test cases which covers all statements and branch conditions. The branch
conditions are tested for both being true and false, so that all statements
can be covered.
 Data-flow testing - This testing technique emphasis to cover all the data
variables included in the program. It tests where the variables were
declared and defined and where they were used or changed.
Working process of white box testing:
 Input: Requirements, Functional specifications, design documents, source
code.
 Processing: Performing risk analysis to guide through the entire process.
 Proper test planning: Designing test cases so as to cover the entire code.
Execute rinse-repeat until error-free software is reached. Also, the results
are communicated.
 Output: Preparing final report of the entire testing process.
Black-box testing
It is carried out to test functionality of the program. It is also called ‘Behavioral’
testing. The tester in this case, has a set of input values and respective desired
results. On providing input, if the output matches with the desired results, the
program is tested ‘ok’, and problematic otherwise.
In this testing method, the design and structure of the code are not known to the
tester, and testing engineers and end users conduct this test on the software.
Black-box testing techniques:
 Equivalence class - The input is divided into similar classes. If one
element of a class passes the test, it is assumed that all the class is passed.
 Boundary values - The input is divided into higher and lower end values.
If these values pass the test, it is assumed that all values in between may
pass too.
 Cause-effect graphing - In both previous methods, only one input value
at a time is tested. Cause (input) – Effect (output) is a testing technique
where combinations of input values are tested in a systematic way.
 Pair-wise Testing - The behavior of software depends on multiple
parameters. In pairwise testing, the multiple parameters are tested pair-
wise for their different values.
 State-based testing - The system changes state on provision of input.
These systems are tested based on their states and input.
Black Box Testing White Box Testing
An application's internal workings
are not necessary.
Internal workings must be understood.
Also known as closed box/data-
driven testing.
Also known as structural testing or clear
box testing.
Performed by end users, testers, and
programmers
Typically performed by testers and
developers.
This can only be accomplished by
trial and error.
Data domains and internal bounds can be
tested more thoroughly.
Compatibility testing – The test case result not only depends on the product
but is also on the infrastructure for delivering functionality. When the
infrastructure parameters are changed it is still expected to work properly.
Some parameters that generally affect the compatibility of software are:
1. Processor (Pentium 3, Pentium 4) and several processors.
2. Architecture and characteristics of machine (32-bit or 64-bit).
3. Back-end components such as database servers.
4. Operating System (Windows, Linux, etc).
Black Box Testing Type
The following are the several categories of black box testing:
1. Functional Testing
2. Regression Testing
3. Nonfunctional Testing (NFT)
What is Functional Testing?
Functional Testing is a type of software testing that validates the software
system against the functional requirements/specifications. The purpose of
Functional tests is to test each function of the software application, by providing
appropriate input, verifying the output against the Functional requirements.
Functional testing mainly involves black box testing and it is not concerned
about the source code of the application. This testing checks User Interface,
APIs, Database, Security, Client/Server communication and other functionality
of the Application Under Test. The testing can be done either manually or using
automation.
What do you test in Functional Testing?
The prime objective of Functional testing is checking the functionalities of the
software system. It mainly concentrates on –
 Mainline functions: Testing the main functions of an application
 Basic Usability: It involves basic usability testing of the system. It
checks whether a user can freely navigate through the screens without
any difficulties.
 Accessibility: Checks the accessibility of the system for the user
 Error Conditions: Usage of testing techniques to check for error
conditions. It checks whether suitable error messages are displayed.
How to do Functional Testing
Following is a step by step process on How to do Functional Testing :
 Understand the Functional Requirements
 Identify test input or test data based on requirements
 Compute the expected outcomes with selected test input values
 Execute test cases
 Compare actual and computed expected results
Functional Testing Types
 Integration Testing
Integration testing is a type of software testing in which individual units are
combined and tested as a group. This testing aims to expose errors in the
interaction between integrated teams, and integration testing is often performed
after unit testing and before system testing.
 Unit Testing
Unit testing is software testing in which individual units are tested to verify that
they are fit for use. A team is the smallest testable part of an application. In
object-oriented programming, a branch is usually an individual class or method.
Unit testing is often performed by the programmer who writes the code.
 Regression Testing
The system is retested after changes have been made to ensure that the changes
did not introduce new bugs. This is important because it can help catch errors
introduced by the changes.
 Acceptance Testing
Acceptance testing is an essential step in software testing. This step helps
ensure the software is correct and meets the end user's needs.
Functional Vs Non-Functional Testing:
Functional Testing Non-Functional Testing
Functional testing is performed using
the functional specification provided by
the client and verifies the system against
the functional requirements.
Non-Functional testing checks
the Performance, reliability,
scalability and other non-functional
aspects of the software system.
Functional testing is executed first Non-functional testing should be
performed after functional testing
Manual Testing or automation tools can Using tools will be effective for this
be used for functional testing testing
Business requirements are the inputs to
functional testing
Performance parameters like speed,
scalability are inputs to non-
functional testing.
Functional testing describes what the
product does
Nonfunctional testing describes how
good the product works
Easy to do Manual Testing Tough to do Manual Testing
Examples of Functional testing are
 Unit Testing
 Smoke Testing
 Sanity Testing
 Integration Testing
 White box testing
 Black Box testing
 User Acceptance testing
 Regression Testing
Examples of Non-functional testing
are
 Performance Testing
 Load Testing
 Volume Testing
 Stress Testing
 Security Testing
 Installation Testing
 Penetration Testing
 Compatibility Testing
 Migration Testing
Functional Testing Tools
Here is a list of popular Functional Testing Tools. They are explained as
follows:
1) Selenium
Popular Open Source Functional Testing Tool
Selenium is an open-source web automation tool, currently in demand, and
widely used tool in the market. It is one of the best QA automation tools that
can automate across multiple OS Like Windows, Mac, and Linux and browsers
like Firefox, Chrome, IE, as well as Headless Browsers. Check our Selenium
tutorial.
Key Features:
 Selenium test script can be written in programming languages like Java,
C#, Python, Ruby, PHP, Perl and JavaScript
 Selenium offers record and playback features with its browser add-on
Selenium IDE
 The powerful Selenium WebDriver helps you create more complex and
advanced automation scripts.
 Price: Free to use
Visit Selenium >>
2) SoapUI
This is an open source functional testing tool, mainly used for Web service
testing. It supports multiple protocols such as HTTP, SOAP, and JDBC.
Key Features:
 The GUI of the software is easy to handle and use
 Vulnerability testing feature helps to secure website from hackers and
viruses.
 It is possible to do the detailed analysis using its reporting feature.
 The SQL Injection feature, which can be utilized to perform functional
testing, provides some standard SQL queries and methods to identify the
weak areas of the application.
Download Link: https://www.soapui.org/downloads/download-soapui-pro-
trial.html
3) Watir
This is a functional testing tool for web applications. It supports tests executed
at the web browser and uses a ruby scripting language. It is an open-source,
cross-platform web application performance testing tool. It is one of the best
open source test automation tools that interacts with a browser just like a human
being, so it clicks links, filling out forms, and validating text.
Key Features:
 It is a free, so there are no costs to use the tool.
 This automated testing tool, suitable for conducting functional tests, is
supported by a very active and growing community.
 It supports multiple browsers on different platforms.
 It is a powerful and lightweight tool.
4) QTP – Very user-friendly Functional Test tool by HP
5) JUnit– Used mainly for Java applications and this can be used in Unit
and System Testing
Explain the types of functional testing.
The main objective of functional testing is to test the functionality of the
component.
Functional testing is divided into multiple parts.
Here are the following types of functional testing.
Unit Testing: Unit testing is a type of software testing, where the individual
unit or component of the software tested. Unit testing, examine the different part
of the application, by unit testing functional testing also done, because unit
testing ensures each module is working correctly.
The developer does unit testing. Unit testing is done in the development phase
of the application.
Smoke Testing: Functional testing by smoke testing. Smoke testing includes
only the basic (feature) functionality of the system. Smoke testing is known as
"Build Verification Testing." Smoke testing aims to ensure that the most
important function work.
For example, Smoke testing verifies that the application launches successfully
will check that GUI is responsive.
Sanity Testing: Sanity testing involves the entire high-level business scenario
is working correctly. Sanity testing is done to check the functionality/bugs
fixed. Sanity testing is little advance than smoke testing.
For example, login is working fine; all the buttons are working correctly; after
clicking on the button navigation of the page is done or not.
Regression Testing: This type of testing concentrate to make sure that the code
changes should not side effect the existing functionality of the system.
Regression testing specifies when bug arises in the system after fixing the bug,
regression testing concentrate on that all parts are working or not. Regression
testing focuses on is there any impact on the system.
Integration Testing: Integration testing combined individual units and tested
as a group. The purpose of this testing is to expose the faults in the interaction
between the integrated units.
Developers and testers perform integration testing.
White box testing: White box testing is known as Clear Box testing, code-
based testing, structural testing, extensive testing, and glass box testing,
transparent box testing. It is a software testing method in which the internal
structure/design/ implementation tested known to the tester.
The white box testing needs the analysis of the internal structure of the
component or system.
Black box testing: It is also known as behavioral testing. In this testing, the
internal structure/ design/ implementation not known to the tester. This type of
testing is functional testing. Why we called this type of testing is black-box
testing, in this testing tester, can't see the internal code.
For example, A tester without the knowledge of the internal structures of a
website tests the web pages by using the web browser providing input and
verifying the output against the expected outcome.
User acceptance testing: It is a type of testing performed by the client to
certify the system according to requirement. The final phase of testing is user
acceptance testing before releasing the software to the market or production
environment. UAT is a kind of black-box testing where two or more end-users
will involve.
Retesting: Retesting is a type of testing performed to check the test cases that
were unsuccessful in the final execution are successfully pass after the defects
fixed. Usually, tester assigns the bug when they find it while testing the product
or its component. The bug allocated to a developer, and he fixes it. After fixing,
the bug is assigned to a tester for its verification. This testing is known as
retesting.
Database Testing: Database testing is a type of testing which checks the
schema, tables, triggers, etc. of the database under test. Database testing may
involve creating complex queries to load/stress test the database and check its
responsiveness. It checks the data integrity and consistency.
Example: let us consider a banking application whereby a user makes a
transaction. Now from database testing following, things are important. They
are:
o Application store the transaction information in the application database
and displays them correctly to the user.
o No information lost in this process
o The application does not keep partially performed or aborted operation
information.
o The user information is not allowed individuals to access by the
Ad-hoc testing: Ad-hoc testing is an informal testing type whose aim is to
break the system. This type of software testing is unplanned activity. It does not
follow any test design to create the test cases. Ad-hoc testing is done randomly
on any part of the application; it does not support any structured way of testing.
Recovery Testing: Recovery testing is used to define how well an application
can recover from crashes, hardware failure, and other problems. The purpose of
recovery testing is to verify the system's ability to recover from testing points of
failure.
Static Testing: Static testing is a software testing technique by which we can
check the defects in software without actually executing it. Static testing is done
to avoid errors in the early stage of the development as it is easier to find failure
in the early stages. Static testing used to detect the mistakes that may not found
in dynamic testing.
Why we use static testing?
Static testing helps to find the error in the early stages. With the help of static
testing, this will reduce the development timescales. It reduces the testing cost
and time. Static testing also used for development productivity.
Component Testing: Component Testing is also a type of software testing in
which testing is performed on each component separately without integrating
with other parts. Component testing is also a type of black-box testing.
Component testing also referred to as Unit testing, program testing, or module
testing.
Grey Box Testing: Grey Box Testing defined as a combination of both white
box and black-box testing. Grey Box testing is a testing technique which
performed with limited information about the internal functionality of the
system.
Nonfunctional Testing:
It’s in the name. Non functional tests check the non functional attributes of any
software – performance, usability, reliability, security, quality, responsiveness, etc.
These tests establish software quality and performance in real user conditions.
Example: Tests are created to simulate high user traffic so as to check if a site or
app can handle peak traffic hours/days/occasions.
The main sub-sets of non-functional testing are:
 Performance Testing: Software is tested for how efficiently and resiliently it handles
increased loads in traffic or user function. Load testing, stress testing, spike testing, and
endurance testing are various ways in which software resilience is verified.
 Compatibility Testing: Is your software compatible with different browsers, browser
versions, devices (mobile and desktop), operating systems and OS versions? Can a
Samsung user play with your app as easily as an iPhone user? Cross Browser Compatibility
tests help you check that.
 Security Testing: Conducted from the POV of a hacker/attacker, security tests look
for gaps in security mechanisms that could be exploited for data theft or for making
unauthorized changes.
 Usability Testing: Usability tests are run to verify if a software can be used without
hassle by actual target users. So, you put it in the hands of a few prospective users,
in order to get feedback before its actual deployment.
 Visual Testing: Visual tests check if all UI elements are rendering as expected, with
the right shape, size, color, font, and placement. The question these tests answer is:
Does the software as it was meant to in the requirements?
 Accessibility Testing: Accessibility testing evaluates if the software can be used by
individuals who are disabled. Its goal is to optimize the apps so that differently-abled
users can perform all key actions without external assistance.
 Responsive Testing: Responsive tests verify if the app/site renders well on screen
sizes and resolutions offered by different devices, mobile, tablets, desktops, etc. A
site’s responsive design is massively important since most people access the internet
from their mobile devices, and expect software to work without hassle on their
personal endpoints.

More Related Content

Similar to Testing in Software Engineering.docx

Interview questions for manual testing technology.
Interview questions for manual testing technology.Interview questions for manual testing technology.
Interview questions for manual testing technology.
Vinay Agnihotri
 
Software testing
Software testingSoftware testing
Software testing
Sengu Msc
 
Software testing
Software testingSoftware testing
Software testing
Sengu Msc
 
Software testing career
Software testing careerSoftware testing career
Software testing career
Ahmed Ahmed Mokhtar
 
softwaretestingppt-FINAL-PPT-1
softwaretestingppt-FINAL-PPT-1softwaretestingppt-FINAL-PPT-1
softwaretestingppt-FINAL-PPT-1FAIZALSAIYED
 
Software testing
Software testingSoftware testing
Software testing
Bhagyashree pathak
 
S.t.
S.t.S.t.
UNIT 2.pptx
UNIT 2.pptxUNIT 2.pptx
UNIT 2.pptx
PallawiBulakh1
 
Software testing and types.pptx
Software testing and types.pptxSoftware testing and types.pptx
Software testing and types.pptx
KLS GOGTE INSTITUTE OF TECHNOLOGY
 
Software test life cycle
Software test life cycleSoftware test life cycle
Software testing
Software testingSoftware testing
Software testing
Eng Ibrahem
 
Types of software testing
Types of software testingTypes of software testing
Types of software testing
Testbytes
 
Software testing sengu
Software testing  senguSoftware testing  sengu
Software testing senguSengu Msc
 
Software testing career 20180929 update
Software testing career 20180929 updateSoftware testing career 20180929 update
Software testing career 20180929 update
Ahmed Ahmed Mokhtar
 
Software Testing
Software TestingSoftware Testing
Software Testing
Sengu Msc
 
Object Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slidesObject Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slides
Punjab University
 
Software Testing or Quality Assurance
Software Testing or Quality AssuranceSoftware Testing or Quality Assurance
Software Testing or Quality Assurance
Trimantra Software Solutions
 
unit 4.pptx very needful and important p
unit 4.pptx very needful and important punit 4.pptx very needful and important p
unit 4.pptx very needful and important p
20EC040
 
Validation & verification software engineering
Validation & verification software engineeringValidation & verification software engineering
Validation & verification software engineering
Sweta Kumari Barnwal
 

Similar to Testing in Software Engineering.docx (20)

Interview questions for manual testing technology.
Interview questions for manual testing technology.Interview questions for manual testing technology.
Interview questions for manual testing technology.
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing
Software testingSoftware testing
Software testing
 
Software testing career
Software testing careerSoftware testing career
Software testing career
 
softwaretestingppt-FINAL-PPT-1
softwaretestingppt-FINAL-PPT-1softwaretestingppt-FINAL-PPT-1
softwaretestingppt-FINAL-PPT-1
 
Software testing
Software testingSoftware testing
Software testing
 
S.t.
S.t.S.t.
S.t.
 
UNIT 2.pptx
UNIT 2.pptxUNIT 2.pptx
UNIT 2.pptx
 
Software testing and types.pptx
Software testing and types.pptxSoftware testing and types.pptx
Software testing and types.pptx
 
Software test life cycle
Software test life cycleSoftware test life cycle
Software test life cycle
 
Software testing
Software testingSoftware testing
Software testing
 
Types of software testing
Types of software testingTypes of software testing
Types of software testing
 
Software testing sengu
Software testing  senguSoftware testing  sengu
Software testing sengu
 
Software testing career 20180929 update
Software testing career 20180929 updateSoftware testing career 20180929 update
Software testing career 20180929 update
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Object Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slidesObject Oriented Testing(OOT) presentation slides
Object Oriented Testing(OOT) presentation slides
 
Testing strategies
Testing strategiesTesting strategies
Testing strategies
 
Software Testing or Quality Assurance
Software Testing or Quality AssuranceSoftware Testing or Quality Assurance
Software Testing or Quality Assurance
 
unit 4.pptx very needful and important p
unit 4.pptx very needful and important punit 4.pptx very needful and important p
unit 4.pptx very needful and important p
 
Validation & verification software engineering
Validation & verification software engineeringValidation & verification software engineering
Validation & verification software engineering
 

More from 8759000398

COMPUTER WINDOWS AND ITS LAB ASSESSMENT.docx
COMPUTER WINDOWS AND ITS LAB ASSESSMENT.docxCOMPUTER WINDOWS AND ITS LAB ASSESSMENT.docx
COMPUTER WINDOWS AND ITS LAB ASSESSMENT.docx
8759000398
 
SAD_UnitII.docx
SAD_UnitII.docxSAD_UnitII.docx
SAD_UnitII.docx
8759000398
 
JavaScript Date Objects.docx
JavaScript Date Objects.docxJavaScript Date Objects.docx
JavaScript Date Objects.docx
8759000398
 
C Programming Strings.docx
C Programming Strings.docxC Programming Strings.docx
C Programming Strings.docx
8759000398
 
Nursing Infromatics.pptx
Nursing Infromatics.pptxNursing Infromatics.pptx
Nursing Infromatics.pptx
8759000398
 
Basics of C.ppt
Basics of C.pptBasics of C.ppt
Basics of C.ppt
8759000398
 
newone2.pdf
newone2.pdfnewone2.pdf
newone2.pdf
8759000398
 
College app for android device
College app for android deviceCollege app for android device
College app for android device
8759000398
 
Android
AndroidAndroid
Android
8759000398
 

More from 8759000398 (9)

COMPUTER WINDOWS AND ITS LAB ASSESSMENT.docx
COMPUTER WINDOWS AND ITS LAB ASSESSMENT.docxCOMPUTER WINDOWS AND ITS LAB ASSESSMENT.docx
COMPUTER WINDOWS AND ITS LAB ASSESSMENT.docx
 
SAD_UnitII.docx
SAD_UnitII.docxSAD_UnitII.docx
SAD_UnitII.docx
 
JavaScript Date Objects.docx
JavaScript Date Objects.docxJavaScript Date Objects.docx
JavaScript Date Objects.docx
 
C Programming Strings.docx
C Programming Strings.docxC Programming Strings.docx
C Programming Strings.docx
 
Nursing Infromatics.pptx
Nursing Infromatics.pptxNursing Infromatics.pptx
Nursing Infromatics.pptx
 
Basics of C.ppt
Basics of C.pptBasics of C.ppt
Basics of C.ppt
 
newone2.pdf
newone2.pdfnewone2.pdf
newone2.pdf
 
College app for android device
College app for android deviceCollege app for android device
College app for android device
 
Android
AndroidAndroid
Android
 

Recently uploaded

Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
Celine George
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
Delapenabediema
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
Jheel Barad
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
EverAndrsGuerraGuerr
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
Vivekanand Anglo Vedic Academy
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
JosvitaDsouza2
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
Jisc
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
Tamralipta Mahavidyalaya
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
Celine George
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
siemaillard
 
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
AzmatAli747758
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
Celine George
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
joachimlavalley1
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
Col Mukteshwar Prasad
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
Vikramjit Singh
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
Steve Thomason
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
TechSoup
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
RaedMohamed3
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
Excellence Foundation for South Sudan
 

Recently uploaded (20)

Model Attribute Check Company Auto Property
Model Attribute  Check Company Auto PropertyModel Attribute  Check Company Auto Property
Model Attribute Check Company Auto Property
 
The Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official PublicationThe Challenger.pdf DNHS Official Publication
The Challenger.pdf DNHS Official Publication
 
Instructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptxInstructions for Submissions thorugh G- Classroom.pptx
Instructions for Submissions thorugh G- Classroom.pptx
 
Thesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.pptThesis Statement for students diagnonsed withADHD.ppt
Thesis Statement for students diagnonsed withADHD.ppt
 
The French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free downloadThe French Revolution Class 9 Study Material pdf free download
The French Revolution Class 9 Study Material pdf free download
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx1.4 modern child centered education - mahatma gandhi-2.pptx
1.4 modern child centered education - mahatma gandhi-2.pptx
 
The approach at University of Liverpool.pptx
The approach at University of Liverpool.pptxThe approach at University of Liverpool.pptx
The approach at University of Liverpool.pptx
 
Home assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdfHome assignment II on Spectroscopy 2024 Answers.pdf
Home assignment II on Spectroscopy 2024 Answers.pdf
 
How to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERPHow to Create Map Views in the Odoo 17 ERP
How to Create Map Views in the Odoo 17 ERP
 
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...Cambridge International AS  A Level Biology Coursebook - EBook (MaryFosbery J...
Cambridge International AS A Level Biology Coursebook - EBook (MaryFosbery J...
 
How to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS ModuleHow to Split Bills in the Odoo 17 POS Module
How to Split Bills in the Odoo 17 POS Module
 
Additional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdfAdditional Benefits for Employee Website.pdf
Additional Benefits for Employee Website.pdf
 
How to Break the cycle of negative Thoughts
How to Break the cycle of negative ThoughtsHow to Break the cycle of negative Thoughts
How to Break the cycle of negative Thoughts
 
Digital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and ResearchDigital Tools and AI for Teaching Learning and Research
Digital Tools and AI for Teaching Learning and Research
 
The Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve ThomasonThe Art Pastor's Guide to Sabbath | Steve Thomason
The Art Pastor's Guide to Sabbath | Steve Thomason
 
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup   New Member Orientation and Q&A (May 2024).pdfWelcome to TechSoup   New Member Orientation and Q&A (May 2024).pdf
Welcome to TechSoup New Member Orientation and Q&A (May 2024).pdf
 
Palestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptxPalestine last event orientationfvgnh .pptx
Palestine last event orientationfvgnh .pptx
 
Introduction to Quality Improvement Essentials
Introduction to Quality Improvement EssentialsIntroduction to Quality Improvement Essentials
Introduction to Quality Improvement Essentials
 

Testing in Software Engineering.docx

  • 1. IV Software Testing: Testing Process, Design of Test Cases, Types of Testing, Functional Testing, Structural Testing, Test Activities, Unit Testing, Integration Testing and System Testing. Debugging Activities. Software Maintenance: Management of Maintenance, Maintenance Process, Reverse Engineering, Software Re-engineering, Configuration Management, Documentation. 10 Testing in Software Engineering As per ANSI/IEEE 1059, Testing in Software Engineering is a process of evaluating a software product to find whether the current software product meets the required conditions or not. The testing process involves evaluating the features of the software product for requirements in terms of any missing requirements, bugs or errors, security, reliability and performance. 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. Properly tested software product ensures reliability, security and high performance which further results in time saving, cost effectiveness and customer satisfaction. What are the Steps of Software Testing? Verification and Validation are two major steps in software testing. These steps implement the fundamentals of software testing.  In software testing, verification is the process through which your team checks whether the program, system, or framework is consistent and aligned with the documentation requirements.
  • 2.  Validation is the procedure by which your team verifies the system's accuracy. During this process, you will reflect on the product and the system; and think of what users desire and what has been developed. Types of Software Testing In this section, we have covered the different aspects of some of the most popular testing types and their subtypes. White-box testing It is conducted to test program and its implementation, in order to improve code efficiency or structure. It is also known as ‘Structural’ testing.
  • 3. In this testing method, the design and structure of the code are known to the tester. Programmers of the code conduct this test on the code. The below are some White-box testing techniques:  Control-flow testing - The purpose of the control-flow testing to set up test cases which covers all statements and branch conditions. The branch conditions are tested for both being true and false, so that all statements can be covered.  Data-flow testing - This testing technique emphasis to cover all the data variables included in the program. It tests where the variables were declared and defined and where they were used or changed. Working process of white box testing:  Input: Requirements, Functional specifications, design documents, source code.  Processing: Performing risk analysis to guide through the entire process.  Proper test planning: Designing test cases so as to cover the entire code. Execute rinse-repeat until error-free software is reached. Also, the results are communicated.  Output: Preparing final report of the entire testing process. Black-box testing It is carried out to test functionality of the program. It is also called ‘Behavioral’ testing. The tester in this case, has a set of input values and respective desired results. On providing input, if the output matches with the desired results, the program is tested ‘ok’, and problematic otherwise.
  • 4. In this testing method, the design and structure of the code are not known to the tester, and testing engineers and end users conduct this test on the software. Black-box testing techniques:  Equivalence class - The input is divided into similar classes. If one element of a class passes the test, it is assumed that all the class is passed.  Boundary values - The input is divided into higher and lower end values. If these values pass the test, it is assumed that all values in between may pass too.  Cause-effect graphing - In both previous methods, only one input value at a time is tested. Cause (input) – Effect (output) is a testing technique where combinations of input values are tested in a systematic way.  Pair-wise Testing - The behavior of software depends on multiple parameters. In pairwise testing, the multiple parameters are tested pair- wise for their different values.  State-based testing - The system changes state on provision of input. These systems are tested based on their states and input. Black Box Testing White Box Testing An application's internal workings are not necessary. Internal workings must be understood. Also known as closed box/data- driven testing. Also known as structural testing or clear box testing. Performed by end users, testers, and programmers Typically performed by testers and developers. This can only be accomplished by trial and error. Data domains and internal bounds can be tested more thoroughly. Compatibility testing – The test case result not only depends on the product but is also on the infrastructure for delivering functionality. When the
  • 5. infrastructure parameters are changed it is still expected to work properly. Some parameters that generally affect the compatibility of software are: 1. Processor (Pentium 3, Pentium 4) and several processors. 2. Architecture and characteristics of machine (32-bit or 64-bit). 3. Back-end components such as database servers. 4. Operating System (Windows, Linux, etc). Black Box Testing Type The following are the several categories of black box testing: 1. Functional Testing 2. Regression Testing 3. Nonfunctional Testing (NFT) What is Functional Testing? Functional Testing is a type of software testing that validates the software system against the functional requirements/specifications. The purpose of Functional tests is to test each function of the software application, by providing appropriate input, verifying the output against the Functional requirements. Functional testing mainly involves black box testing and it is not concerned about the source code of the application. This testing checks User Interface, APIs, Database, Security, Client/Server communication and other functionality of the Application Under Test. The testing can be done either manually or using automation. What do you test in Functional Testing? The prime objective of Functional testing is checking the functionalities of the software system. It mainly concentrates on –  Mainline functions: Testing the main functions of an application
  • 6.  Basic Usability: It involves basic usability testing of the system. It checks whether a user can freely navigate through the screens without any difficulties.  Accessibility: Checks the accessibility of the system for the user  Error Conditions: Usage of testing techniques to check for error conditions. It checks whether suitable error messages are displayed. How to do Functional Testing Following is a step by step process on How to do Functional Testing :  Understand the Functional Requirements  Identify test input or test data based on requirements  Compute the expected outcomes with selected test input values  Execute test cases  Compare actual and computed expected results
  • 7. Functional Testing Types  Integration Testing Integration testing is a type of software testing in which individual units are combined and tested as a group. This testing aims to expose errors in the interaction between integrated teams, and integration testing is often performed after unit testing and before system testing.  Unit Testing Unit testing is software testing in which individual units are tested to verify that they are fit for use. A team is the smallest testable part of an application. In object-oriented programming, a branch is usually an individual class or method. Unit testing is often performed by the programmer who writes the code.  Regression Testing The system is retested after changes have been made to ensure that the changes did not introduce new bugs. This is important because it can help catch errors introduced by the changes.  Acceptance Testing Acceptance testing is an essential step in software testing. This step helps ensure the software is correct and meets the end user's needs. Functional Vs Non-Functional Testing: Functional Testing Non-Functional Testing Functional testing is performed using the functional specification provided by the client and verifies the system against the functional requirements. Non-Functional testing checks the Performance, reliability, scalability and other non-functional aspects of the software system. Functional testing is executed first Non-functional testing should be performed after functional testing Manual Testing or automation tools can Using tools will be effective for this
  • 8. be used for functional testing testing Business requirements are the inputs to functional testing Performance parameters like speed, scalability are inputs to non- functional testing. Functional testing describes what the product does Nonfunctional testing describes how good the product works Easy to do Manual Testing Tough to do Manual Testing Examples of Functional testing are  Unit Testing  Smoke Testing  Sanity Testing  Integration Testing  White box testing  Black Box testing  User Acceptance testing  Regression Testing Examples of Non-functional testing are  Performance Testing  Load Testing  Volume Testing  Stress Testing  Security Testing  Installation Testing  Penetration Testing  Compatibility Testing  Migration Testing Functional Testing Tools Here is a list of popular Functional Testing Tools. They are explained as follows: 1) Selenium Popular Open Source Functional Testing Tool Selenium is an open-source web automation tool, currently in demand, and widely used tool in the market. It is one of the best QA automation tools that can automate across multiple OS Like Windows, Mac, and Linux and browsers like Firefox, Chrome, IE, as well as Headless Browsers. Check our Selenium tutorial.
  • 9. Key Features:  Selenium test script can be written in programming languages like Java, C#, Python, Ruby, PHP, Perl and JavaScript  Selenium offers record and playback features with its browser add-on Selenium IDE  The powerful Selenium WebDriver helps you create more complex and advanced automation scripts.  Price: Free to use Visit Selenium >> 2) SoapUI This is an open source functional testing tool, mainly used for Web service testing. It supports multiple protocols such as HTTP, SOAP, and JDBC. Key Features:  The GUI of the software is easy to handle and use  Vulnerability testing feature helps to secure website from hackers and viruses.  It is possible to do the detailed analysis using its reporting feature.  The SQL Injection feature, which can be utilized to perform functional testing, provides some standard SQL queries and methods to identify the weak areas of the application.
  • 10. Download Link: https://www.soapui.org/downloads/download-soapui-pro- trial.html 3) Watir This is a functional testing tool for web applications. It supports tests executed at the web browser and uses a ruby scripting language. It is an open-source, cross-platform web application performance testing tool. It is one of the best open source test automation tools that interacts with a browser just like a human being, so it clicks links, filling out forms, and validating text. Key Features:  It is a free, so there are no costs to use the tool.  This automated testing tool, suitable for conducting functional tests, is supported by a very active and growing community.  It supports multiple browsers on different platforms.  It is a powerful and lightweight tool. 4) QTP – Very user-friendly Functional Test tool by HP 5) JUnit– Used mainly for Java applications and this can be used in Unit and System Testing
  • 11. Explain the types of functional testing. The main objective of functional testing is to test the functionality of the component. Functional testing is divided into multiple parts. Here are the following types of functional testing.
  • 12. Unit Testing: Unit testing is a type of software testing, where the individual unit or component of the software tested. Unit testing, examine the different part of the application, by unit testing functional testing also done, because unit testing ensures each module is working correctly. The developer does unit testing. Unit testing is done in the development phase of the application. Smoke Testing: Functional testing by smoke testing. Smoke testing includes only the basic (feature) functionality of the system. Smoke testing is known as "Build Verification Testing." Smoke testing aims to ensure that the most important function work. For example, Smoke testing verifies that the application launches successfully will check that GUI is responsive. Sanity Testing: Sanity testing involves the entire high-level business scenario is working correctly. Sanity testing is done to check the functionality/bugs fixed. Sanity testing is little advance than smoke testing. For example, login is working fine; all the buttons are working correctly; after clicking on the button navigation of the page is done or not.
  • 13. Regression Testing: This type of testing concentrate to make sure that the code changes should not side effect the existing functionality of the system. Regression testing specifies when bug arises in the system after fixing the bug, regression testing concentrate on that all parts are working or not. Regression testing focuses on is there any impact on the system. Integration Testing: Integration testing combined individual units and tested as a group. The purpose of this testing is to expose the faults in the interaction between the integrated units. Developers and testers perform integration testing. White box testing: White box testing is known as Clear Box testing, code- based testing, structural testing, extensive testing, and glass box testing, transparent box testing. It is a software testing method in which the internal structure/design/ implementation tested known to the tester. The white box testing needs the analysis of the internal structure of the component or system. Black box testing: It is also known as behavioral testing. In this testing, the internal structure/ design/ implementation not known to the tester. This type of testing is functional testing. Why we called this type of testing is black-box testing, in this testing tester, can't see the internal code. For example, A tester without the knowledge of the internal structures of a website tests the web pages by using the web browser providing input and verifying the output against the expected outcome. User acceptance testing: It is a type of testing performed by the client to certify the system according to requirement. The final phase of testing is user acceptance testing before releasing the software to the market or production environment. UAT is a kind of black-box testing where two or more end-users will involve. Retesting: Retesting is a type of testing performed to check the test cases that were unsuccessful in the final execution are successfully pass after the defects fixed. Usually, tester assigns the bug when they find it while testing the product or its component. The bug allocated to a developer, and he fixes it. After fixing, the bug is assigned to a tester for its verification. This testing is known as retesting. Database Testing: Database testing is a type of testing which checks the schema, tables, triggers, etc. of the database under test. Database testing may
  • 14. involve creating complex queries to load/stress test the database and check its responsiveness. It checks the data integrity and consistency. Example: let us consider a banking application whereby a user makes a transaction. Now from database testing following, things are important. They are: o Application store the transaction information in the application database and displays them correctly to the user. o No information lost in this process o The application does not keep partially performed or aborted operation information. o The user information is not allowed individuals to access by the Ad-hoc testing: Ad-hoc testing is an informal testing type whose aim is to break the system. This type of software testing is unplanned activity. It does not follow any test design to create the test cases. Ad-hoc testing is done randomly on any part of the application; it does not support any structured way of testing. Recovery Testing: Recovery testing is used to define how well an application can recover from crashes, hardware failure, and other problems. The purpose of recovery testing is to verify the system's ability to recover from testing points of failure. Static Testing: Static testing is a software testing technique by which we can check the defects in software without actually executing it. Static testing is done to avoid errors in the early stage of the development as it is easier to find failure in the early stages. Static testing used to detect the mistakes that may not found in dynamic testing. Why we use static testing? Static testing helps to find the error in the early stages. With the help of static testing, this will reduce the development timescales. It reduces the testing cost and time. Static testing also used for development productivity. Component Testing: Component Testing is also a type of software testing in which testing is performed on each component separately without integrating with other parts. Component testing is also a type of black-box testing. Component testing also referred to as Unit testing, program testing, or module testing.
  • 15. Grey Box Testing: Grey Box Testing defined as a combination of both white box and black-box testing. Grey Box testing is a testing technique which performed with limited information about the internal functionality of the system. Nonfunctional Testing: It’s in the name. Non functional tests check the non functional attributes of any software – performance, usability, reliability, security, quality, responsiveness, etc. These tests establish software quality and performance in real user conditions. Example: Tests are created to simulate high user traffic so as to check if a site or app can handle peak traffic hours/days/occasions. The main sub-sets of non-functional testing are:  Performance Testing: Software is tested for how efficiently and resiliently it handles increased loads in traffic or user function. Load testing, stress testing, spike testing, and endurance testing are various ways in which software resilience is verified.  Compatibility Testing: Is your software compatible with different browsers, browser versions, devices (mobile and desktop), operating systems and OS versions? Can a Samsung user play with your app as easily as an iPhone user? Cross Browser Compatibility tests help you check that.  Security Testing: Conducted from the POV of a hacker/attacker, security tests look for gaps in security mechanisms that could be exploited for data theft or for making unauthorized changes.  Usability Testing: Usability tests are run to verify if a software can be used without hassle by actual target users. So, you put it in the hands of a few prospective users, in order to get feedback before its actual deployment.  Visual Testing: Visual tests check if all UI elements are rendering as expected, with the right shape, size, color, font, and placement. The question these tests answer is: Does the software as it was meant to in the requirements?
  • 16.  Accessibility Testing: Accessibility testing evaluates if the software can be used by individuals who are disabled. Its goal is to optimize the apps so that differently-abled users can perform all key actions without external assistance.  Responsive Testing: Responsive tests verify if the app/site renders well on screen sizes and resolutions offered by different devices, mobile, tablets, desktops, etc. A site’s responsive design is massively important since most people access the internet from their mobile devices, and expect software to work without hassle on their personal endpoints.