Software Testing Polytech 28 Feb 2024
Software Testing Polytech 28 Feb 2024
International Software
Qualifications Board
Course Faculty:
Sachin N. Pardeshi.
M.E. (Comp. Engg.)
Software Quality
• Testing can help us measure the Quality of software
• Quality - ‘The degree to which a component, system or
process meets specified requirements and/or user/customer
needs and expectations’
• This is measured in terms of defects found
• Defects covering:
– functional software requirements and characteristics
– and non-functional software requirements and
characteristics (e.g. reliability, usability, efficiency, portability
and maintainability)
• Testing can give confidence in the Quality of the software if it
finds few or no defects
What is an error?
We can’t compile or run a program due to coding mistake in a
program. If a developer unable to successfully compile or run a
program then they call it as an error.
What is a failure?
Once the product is deployed and customers find any issues
then they call the product as a failure product. After release, if
an end user finds an issue then that particular issue is called
as failure
1.3 Testing Objectives
• The Objectives of testing can vary depending on the stage of testing being
conducted. E.g.:
Module design/ Low level Design: In this phase each and every
module or the software components are designed individually.
Methods, classes, interfaces, data types etc are all finalized in this
phase.
Verification activities: Design reviews
Validation activities: Creation and review of unit test cases.
Artifacts produced: Unit test cases,
VERIFICATION AND VALIDATION MODE OR V MODEL
Integration Testing: In this phase the integration test cases are executed
which were created in the Architectural design phase. In case of any
anomalies, defects are logged and tracked.
*Integration Testing: Integration testing is a technique where the unit
tested modules are integrated and tested whether the integrated modules
are rendering the expected results. In simpler words, It validates whether
the components of the application work together as expected.
Artifacts produced: Integration test results.
Systems testing: In this phase all the system test cases, functional test cases
and nonfunctional test cases are executed. In other words, the actual and
full fledge testing of the application takes place here. Defects are logged and
tracked for its closure. Progress reporting is also a major part in this phase.
The traceability metrics are updated to check the coverage and risk
mitigated.
Artifacts produced: Test results, Test logs, defect report, test summary
report and updated traceability matrices.
VERIFICATION AND VALIDATION MODE OR V MODEL
PROS CONS
Disadvantages of V-model:
• Very rigid and least flexible.
• Software is developed during the implementation phase, so no
early prototypes of the software are produced.
• If any changes happen in midway, then the test documents
along with requirement documents has to be updated.
When to use the V-model:
The V-shaped model should be used for small to medium sized
projects where requirements are clearly defined and fixed.
The V-Shaped model should be chosen when ample technical
resources are available with needed technical expertise.
VERIFICATION AND VALIDATION MODE OR V MODEL
Static Testing :
1. Inspection
2. Structured Walkthroughs
3. Technical Reviews
Static Techniques
Static Testing – a
Definition
• Static testing techniques involve examination of the project’s documentation,
software and other information about the software products without
executing them
• Static Testing Includes both Reviews (e.g. of documentation) and Static
Analysis of code
• Reviews, Static Analysis and dynamic testing have the same objective –
identifying defects
• Static Testing and Dynamic Testing are complementary
• Each technique can find different types of defects effectively and efficiently
100
90
80
70
60
Relative
50 Cost
40
Multiple
30
s
20
10
0
Reqs Des Code Unit Accept Use
30%
25%
20%
15%
Errors
10%
5%
0%
Reqs Funct Logical Code Other
Des Des
Moderator the person who leads, plans and runs the review
May mediate between the various points of view and is often the
person upon whom the success of the review rests
Author the writer or person with chief responsibility for the document(s)
to be reviewed
- Process is complete when entire s/w element have been walkthrough in detail
- All deficiencies, omissions & suggestions for improvement are noted
- Issued the walkthrough report
WALKTHROUGH OUTPUT
WALKTHROUGH PROCEDURE
Planning:-
-Identify walkthrough team ,schedule meeting & distribute all necessary i/p material
Overview: presentation is made by author
Preparation:- participant review the i/p material
Examination:-
-author walkthrough the specific s/w element
- Walkthrough team ask question regarding s/w element
Review Process
Formal Review Types –
Walkthroughs
• A walkthrough is a review of authored material led by the author and
attended by a group of the author's peers (typically 2 to 6 peers).
Primary purpose is education
• The material is presented by the author to the peer group, who
focus on learning about the material, improving it and recording
defects
• Peer group should include development, operation
representatives, target audience, etc.
• Examples are Dry Runs or Scenario playing to validate product
• Sessions can be formal or informal
• Review sessions often open-ended (not time-boxed)
• Pre-meeting preparation often (regularly) involved
• Weaknesses – do not find as many defects as technical reviews and
inspections
• Detect errors that Dynamic test execution unlikely to find, e.g. requirement spec
errors
• Shorten development timescales
• Involves debugging sort of activities require the code knowledge, loop iteration,
conditions, input and corresponding output
• Branch Coverage
• Condition Coverage
2.2.2 Code Coverage Testing
Scenario 1:
If A = 3, B = 9
The statements marked in yellow color are those which are executed as per the scenario.
Number of executed statements = 6
Total number of statements = 7
But overall if you see, all the statements are being covered by 2nd scenario's
considered. So we can conclude that overall statement coverage is 100%.
White Boox Test
Statement
Techniques
Testing 1 Control
Flow Graph
Example 1 2
1. Read vehicle
3
2. Read colour
4
3. If vehicle = ‘Car’ Then
4. If colour = ‘Red’ Then 5
5. Print “Fast”
6
6. End If
7. End If 7
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 71 • SNP - Internal
White Box Test
Techniques 1
Statement
Testing
2
Example 2
3
1.Read A
2.If A > 40 Then 3. 4
A 5
=A*2
6
4.End If
5.If A > 100 Then 6. 7
A=
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 72 • SNP - Internal
White Box Test
Techniques Statement 1
Example 3
1. Read bread Testing
2
2. Read filling
3. If bread = ‘Roll’ Then 3/9
4. If filling = ‘Tuna’ Then
4/6
5. Price = 1.50
6. Else 7 5
7. Price = 1.00 10
8. End If 8
9. Else
10. Price = 0.75 11
11. End
SNP - ISTQB Testing Foundation If
Course RCPIT,Shirpur Slide 73 • SNP - Internal
b) BRANCH COVERAGE
Demo(int a) {
If (a> 5)
a=a*3
Print (a)
}
Branch Coverage will consider unconditional branch as well
Example:
This metric was developed by Thomas J. McCabe in 1976 and it is based on a control
flow representation of the program.
In the graph, Nodes represent processing tasks while edges represent control flow
between the nodes.
Flow graph notation for a program:
Flow Graph notation for a program is defines. several nodes connected through the
edges. Below are Flow diagrams for statements like if-else, While, until and normal
sequence of flow.
How to Calculate Cyclomatic Complexity
Mathematical representation:
Mathematically, it is set of independent paths through the graph diagram. The Code
complexity of the program can be defined using the formula -
V(G) = E - N + 2
Where,
E - Number of edges
N - Number of Nodes
V (G) = P + 1
Where P = Number of predicate nodes (node that contains condition)
V (F)= e-n+2
OR
V (F)= 1+d
e= 11 & n=10
V (F)=11-10+2=3
OR
V (F)=1+2=3
Properties of Cyclomatic complexity:
Following are the properties of Cyclomatic complexity:
V (G) is the maximum number of independent paths in the graph
V (G) >=1
G will have one path if V (G) = 1
Minimize complexity to 10
2.2 BLACK BOX TESTING
BLACK BOX TESTING, also known as Behavioral Testing, is a
software testing method in which the internal structure/design/implementation of the
item being tested is not known to the tester. These tests can be functional or non-
functional, though usually functional.
BLACK BOX TESTING Contd..
Advantages
Tests are done from a user’s point of view and will help in exposing
discrepancies in the specifications.
•Tester need not know programming languages or how the software
has been implemented.
•Tests can be conducted by a body independent from the
developers, allowing for an objective perspective and the avoidance of
developer-bias.
•Test cases can be designed as soon as the specifications are
complete.
BLACK BOX TESTING Contd..
Disadvantages
• Only a small number of possible inputs can be tested and many program paths will
be left untested.
• Without clear specifications, which is the situation in many projects, test cases will
be difficult to design.
• Tests can be redundant if the software designer/developer has already run a test
case.
BLACK BOX TESTING Contd..
in which test cases, conditions and data are derived from requirements. It includes functional
tests and also non-functional attributes
Stages in Requirements based Testing:
•Execute Tests
Testing of application can be carried out in two different ways, Positive testing and Negative
testing.
Positive Testing
Negative Testing
• BVA operates on the basis that experience shows us that errors are most likely to
exist at the boundaries between partitions and in doing so incorporates a degree of
negative testing into the test design
• BVA Test cases are designed to exercise the software on and at either side of boundary
values
Boundary Value
Analysis
Boundary Value
Analysis
• find the boundary and then test one value above and
below it
• ALWAYS results in two test cases per boundary for
valid inputs and three tests cases per boundary for all
inputs
• inputs should be in the smallest significant values for
the boundary (e.g. Boundary of ‘a > 10.0’ should
result in test values of 10.0, 10.1 & 10.2)
• only applicable for numeric (and date) fields
Decision Table
Testing
• Table based technique where
– Inputs to the system are recorded
– Outputs to the system are defined
• Inputs are usually defined in terms of actions which are Boolean
(true or false)
• Outputs are recorded against each unique combination of inputs
• Using the Decision Table the relationships between the inputs and the
possible outputs are mapped together
• As with State Transition testing, an excellent tool to capture certain
types of system requirements and to document internal system design. As
such can be used for a number of test levels
• Especially useful for complex business rules
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 100 • SNP - Internal
Black Box Test Techniques
Decision Table
Structure
Inputs / Actions Test 1 Test 2 Test 3
Input 1 T T F
Input 2 T T F
Input 3 T DON’T CARE F
Input 4 T F T
Output / Response 1 Y Y N
Response Response 2 Y N Y
Response 3 N Y N
Each column of the table corresponds to a business rule that defines a unique
combination of conditions that result in the execution of the actions associated
with that rule
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 101 • SNP - Internal
Black Box Test Techniques
Decision Table
Example
Test 3
Test 1 Test 2 T
Smoker F T T
Insure Y N Y
Offer
What 30% Discount
will be Y
the out come of the following N
Scenarios?
Joe is a 22 year old non smoker who goes to the gym 4 times / week and has
no history of heart attacks in his family
Kevin is 62 year old non smoker who swims twice a week and plays tennis. He
has no history of heart attacks in his family
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 102 • SNP - Internal
Black Box Test Techniques
Equivalence
• aim is to treat groupsPartitioning
of inputs as equivalent and to
select one representative input to test them all
• Best shown in the following example….
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 103 • SNP - Internal
Black Box Test Techniques
Equivalence Partitioning
0 101
37 65 99
1 100
-1 19 53
48 87
OUT OF OUT OF
RANGE IN RANGE RANGE
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 104 • SNP - Internal
Black Box Test Techniques
Equivalence
Partitioning
• the numbers fall into a partition where each would have the
same, or equivalent, result i.e. an Equivalence Partition (EP) or
Equivalence Class
1)if one value finds a bug, the others probably will too
2)if one doesn't find a bug, the others probably won't
either
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 105 • SNP - Internal
Black Box Tesstttt Techniques
Equivalence
Partitioning
• in EP we must identify Valid Equivalence partitions and
Invalid Equivalence partitions where applicable (typically
in range tests)
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 106 • SNP - Internal
Black Box Test Techniques
Equivalence Partitioning
IF Value >= 1 AND Value <= 100 THEN ….
0 101
37 65 99
1 100
-1 19 53
48 87 1000
‘VALID’ PARTITION
‘INVALID’
‘INVALID’
SNPP- IASTRQBTTIeTstIiOng
RCPIT,Shirpu
Slide 207 • SNP -
PARTITION
r
NFoundation Course Internal
Black Box Test Techniques
Equivalence Partitioning
•EP can help reduce the number of tests from a list of all
possible inputs to a minimum set that would still test each
partition
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 108 • SNP - Internal
Black Box Test Techniques
Equivalence
Partitioning
• If the tester chooses the right partitions, the testing will be accurate and efficient
• If the tester mistakenly thinks of two partitions as equivalent and they are not, a test
situation will be missed
• Or on the other hand, if the tester thinks two objects are different and they are not, the
tests will be redundant
• EP is used to achieve good input and output coverage, knowing exhaustive testing is often
impossible
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 109 • SNP - Internal
User Documentation Testing
Cover all the manuals, user guides, installation guide, setup guide,
readme files, software release notes, Online help
Objectives:
1. To check what is stated in the document is available in the
software
2. To check what is available in product explained in Document
3. Documentation testing can save time, efforts and money.
4. Documentation testing can start very beginning of the software
process and hence project has high level of maturity.
User Documentation Testing
Graph Based Testing
It is also known as State Based Testing.
• State Transition Testing uses the following terms:
– state diagram: A diagram that depicts the states that a component or system can assume,
and shows the events or circumstances that cause and/or result from a change from one state
to another. [IEEE 610]
– state table: A grid showing the resulting transitions for each state combined with each
possible event, showing both valid and invalid transitions.
– state transition: A transition between two states of a component or system.
– state transition testing: A black box test design technique in which test cases are designed
to execute valid and invalid state transitions. Also known as N-switch testing.
• An excellent tool to capture certain types of system requirements and to document internal system
design. As such can be used for a number of test levels
• Often used in testing:
– Screen dialogues
State Transition
Diagram
Transition Between
Event/Action etc start and end states
End State
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 113 • SNP - Internal
Black Box Test Techniques
State Transition Example Simplified Car
Gears
Change Down/
Neutral Move Back Reverse
Change Up/
Change Up/ Change Down/ Accelerate
Accelerate Decelerate
Gear
1s
Change Up/t Change Down/
Accelerate Decelerate
Gear
Change Up/
2n
d Change Down/
Accelerate Decelerate
Gear
3rd
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 114 • SNP - Internal
Black Box Test Techniques
State Transition - Switch
Coverage
• Switch Coverage is a method of determining the number tests based on
the number of “hops” between transitions. Some times known as
Chow
0-Switch Coverage (1 hop) 1-Switch Coverage (2 hops)
R N R N 1
N R R N R
N 1 N R N
1 N N 1 2
1 2 N 1 N
2 1 1 N R
2 3
3 2 Etc.
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 115 • SNP - Internal
Black Box Test Techniques
State Transition - State
•
Table
While Switch testing helps determine the valid tests, we also need to look
for the invalid tests.
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 116 • SNP - Internal
Black Box Test Techniques
State Transition – Another
example for a Theatre Show
reservation
Request Choose Reserve
Show Show Show
Options
Show
Show Options
Show selected Reservation
provided
Made
Pay for
Change Show
Mind/
Cancel
Return to
reservation
Options
Show
Reservation
Paid For
Cancelled
Cancel reservation/ Issue
Reservation Issue Refund
Ticket
Ticket
Cancel reservation
(return ticket)/Issue Received
Refund
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 117 • SNP - Internal
Chapter 3
Suppose you have two units and you do not want to test the units
individually but as an integrated system to save your time.
Once the system is integrated and you found error in an
integrated system it becomes difficult to differentiate that the
error occurred in which unit so unit testing is mandatory before
integrating the units.
When developer is coding the software it may happen that the
dependent modules are not completed for testing, in such cases
developers use stubs and drivers to simulate the called(stub) and
caller(driver) units. Unit testing requires stubs and drivers, stubs
simulates the called unit and driver simulates the calling unit.
STUBS:
Assume you have 3 modules, Module A, Module B and module C. Module A is ready
and we need to test it, but module A calls functions from Module B and C which are
not ready, so developer will write a dummy module which simulates B and C and
returns values to module A. This dummy module code is known as stub.
DRIVERS:
Now suppose you have modules B and C ready but module A which calls functions
from module B and C is not ready so developer will write a dummy piece of code for
module A which will return values to module B and C. This dummy piece of code is
known as driver.
Drivers:
For example: Suppose you are testing software that requires large
amount of data to enter for execution of test cases
With few hardware modification and software tools, you could be
replacing the keyboard or mouse of the system being tested with
additional computer acts as a test driver
You could write sample program which automatically generate key
stroke and mouse movements
Stubs:
Stubs are the just opposite to driver, They don’t control operate the
software being tested, instead receive or respond to data that the
software sends
For example: You are testing software that sends data to printer
3.2 Integration Testing
Q R
U V
S T
Stubs
Slide 129 • SNP - Internal
Advantages:
Disadvantages:
• Needs many Stubs.
• Modules at a lower level are tested inadequately.
Component Integration Testing
Bottom-up testing
Component under test
P
P is the driver for components Q
and R
Same for Q
Q R and R
driving
their
components
S T
U V
SNP - ISTQB Testing Foundation Course RCPIT,Shirpur Slide 132 • SNP - Internal
Bottom up Integration
Advantages:
• Fault localization is easier.
• No time is wasted waiting for all modules to be developed unlike
Big-bang approach
Disadvantages:
• Critical modules (at the top level of software architecture) which
control the flow of application are tested last and may be prone
to defects.
• An early prototype is not possible
Bi-directional integration
Bidirectional integration also called as sandwitch integration
In thetesting.
sandwich/hybrid strategy is a combination of Top Down and Bottom up
approaches. Here, top modules are tested with lower modules at the same time lower
modules are integrated with top modules and tested. This strategy makes use of stubs as
well as drivers.
Advantages of Sandwich Testing
•Sandwich approach is useful for very large projects having
several subprojects. When development follows a spiral model
and the module itself is as large as a system, then one can use
sandwich testing.
•Both Top-down and Bottom-up approach starts at a time as per
development schedule. Units are tested and brought together to
make a system. Integration is done downwards.
•It needs more resources and big teams perform both bottom-up
and top-down methods of testing at a time or one after the other.
Disadvantages of Sandwich Testing
•It require very high cost for testing because one part has Top-
down approach while another part has bottom-up approach.
•It cannot be used for smaller system with huge
interdependence between different modules. It makes sense
when the individual subsystem is as good as complete system.
•Different skill sets are required for tester at different level as
module are separate system handling separate domains like ERP
products with modules representing different functional areas.
Incremental Integration
• Each Module i.e. M1, M2, M3, etc. are tested individually as part of unit
testing
• Modules are combined incrementally i.e. one by one and tested for
successful interaction
• In Fig2, Module M1 & Module M2 are combined and tested
• In Fig3, Module M3 is added and tested
• In Fig4, Module M4 is added and testing is done to make sure everything
works together successfully
• Rest of the Modules are also added incrementally at each step and
tested for successful integration
Fig2
Fig3
Fig4
Objective of Incremental Test
• To ensure that different modules work together successfully after integration
• Identify the defects earlier and in each phase. This gives developers an edge to
identify where the problem is. Like if testing after M1 and M2 are integrated is
successful but when M3 is added, the test fails; this will help the developer in
segregating the issue
• Issues can be fixed in early phase without much rework and in less cost
Non-Incremental Integration
We go for this testing whenever we don’t have clear relationship between the modules. This type of
testing is also known as Big Bang method. In these cases we create the data in one module and bang on
all other modules and check for the data flow. Hence it is known as Big Bang Method.
Big Bang Integration Testing is an integration testing strategy wherein all units are linked
at once, resulting in a complete system. When this type of testing strategy is adopted, it
is difficult to isolate any errors found, because attention is not paid to verifying the
interfaces across individual units.
This test mainly determines the system on its robustness and error
handling under extremely heavy load conditions.
A most prominent use of stress testing is to determine the limit, at which
the system or software or hardware breaks. It also checks whether the
system demonstrates effective error management under extreme
conditions.
Need for Stress Testing
Consider the following scenarios -
•During festival time, an online shopping site may witness a spike in traffic, or when it
announces a sale.
•When a blog is mentioned in a leading newspaper, it experiences a sudden surge in
traffic.
It is imperative to perform Stress Testing to accommodate such abnormal traffic spikes.
Failure to accommodate this sudden traffic may result in loss of revenue and repute.
Load Testing
Load testing identifies the bottlenecks in the system under various workloads
and checks how the system reacts when the load is gradually increased
Stress Testing
Stress Testing determines the breaking point of the system to reveal the
maximum point after which it breaks.
Usability Testing
Usability Testing is defined as a type of software testing where, a small set of target
end-users, of a software system, "use" it to expose usability defects. This testing
mainly focuses on the user's ease to use the application, flexibility in handling
controls and the ability of the system to meet its objectives. It is also called User
Experience(UX) Testing.
There are many software applications/websites, which miserably fail, once
launched, due to following reasons –
What is Compatibility?
Compatibility is nothing but the capability of existing or living together. In normal life, Oil
is not compatible with water, but milk can be easily combined with water.
Types of Compatibility Tests
• Hardware: It checks software to be compatible with different hardware configurations.
• Operating Systems: It checks your software to be compatible with different Operating
Systems like Windows, Unix, Mac OS etc.
• Software: It checks your developed software to be compatible with other software. For
example, MS Word application should be compatible with other software like MS Outlook, MS
Excel, VBA etc.
• Network: Evaluation of performance of a system in a network with varying parameters such
as Bandwidth, Operating speed, Capacity. It also checks application in different networks with
all parameters.
• Browser: It checks the compatibility of your website with different browsers like Firefox,
Google Chrome, Internet Explorer etc.
• Devices: It checks compatibility of your software with different devices like USB port Devices,
Printers and Scanners, Other media devices and Blue tooth.
• Mobile: Checking your software is compatible with mobile platforms like Android, iOS etc.
• Versions of the software: It is verifying your software application to be compatible with
different versions of the software. For instance checking your Microsoft Word to be
compatible with Windows 7, Windows 7 SP1, Windows 7 SP2, Windows 7 SP3.
There are two types of version checking
Beta version of the software is released to a limited number of end-users of the product
to obtain feedback on the product quality. Beta testing reduces product failure risks and
provides increased quality of the product through customer validation.
It is the final test before shipping a product to the customers. Direct feedback from
customers is a major advantage of Beta Testing. This testing helps to tests the product in
customer's environment.
Alpha Testing Beta Testing
Alpha testing involves both the white Beta Testing typically uses Black
box and black box techniques Box Testing
Alpha testing requires a lab Beta testing doesn't require any lab
environment or testing environment environment or testing environment.
The software is made available to
the public and is said to be real time
environment
Alpha testing is to ensure the quality Beta testing also concentrates on the
of the product before moving to Beta quality of the product, but gathers
testing users input on the product and
ensures that the product is ready for
real time users.
3.6 Special Tests:
Sanity Testing is done during the release phase to check for the main functionalities of
the application without going deeper. It is also called as a subset of Regression testing.
It is done at the “release level”.
At times due to release time constraints rigorous regression testing can’t be done to the
build, sanity testing does that part by checking main functionalities.
Most of the times, we don’t get enough time to complete the whole testing. Especially in
Agile Methodology, we will get pressure from the Product owners to complete testing in
few hours or end of the day. In this scenarios we choose Sanity Testing. Sanity Testing
plays a key role in these kind of situations.
How to Conduct Sanity Testing?
• We just pick the necessary test cases from already written test cases.
• When it comes to Sanity testing, the main focus is to make sure
whether the planned functionality is working as expected.
• Real Time Example: Let’s take the same example as above. Assume
you are working on an eCommerce site. A new feature is released
which is related to Search functionality. Here your main focus should
be on the Search functionality. Once you make sure that the Search
functionality is working fine then you move on to other major
functionality such as payment flow.
SMOKE TESTI NG SANI TY TESTI NG
• recent program or code change has not adversely affected existing features.
• This testing is done to make sure that new code changes should not have side
effects on the existing functionalities.
• It ensures that the old code still works once the new code changes are done.
Need of Regression Testing
Regression Testing is required when there is a
•Change in requirements and code is modified according to the requirement
•New feature is added to the software
•Defect fixing
•Performance issue fix
Retest All
all the tests in the existing test bucket or suite should be re-executed. This is very
expensive as it requires huge time and resources.
Effective Regression Tests can be done by selecting the following test cases -
• Test cases which have frequent defects
• Functionalities which are more visible to the users
• Test cases which verify core features of the product
• Test cases of Functionalities which has undergone more and recent changes
• All Integration Test Cases
• All Complex Test Cases
• Boundary value test cases
• A sample of Successful test cases
• A sample of Failure test cases
GUI Testing
What is GUI?
There are two types of interfaces for a computer application. Command Line Interface
is where you type text and computer responds to that command.
GUI stands for Graphical User Interface where you interact with the computer using
images rather than text.
In above example, if we have to do GUI testing we first check that the images should be completely visible
in different browsers.
Also, the links are available, and the button should work when clicked.
Also, if the user resizes the screen, neither images nor content should shrink or crop or overlap.
Why do GUI testing?
Is it really needed?
Does testing of functionally and logic of Application is not more than enough?? Then why to waste
time on UI testing.
To get the answer to think as a user, not as a tester. A user doesn't have any knowledge about XYZ
software/Application. It is the UI of the Application which decides that a user is going to use the
Application further or not.
A normal User first observes the design and looks of the Application/Software and how easy it is for him
to understand the UI. If a user is not comfortable with the Interface or find Application complex to
understand he would never going to use that Application Again. That's why, GUI is a matter for
concern, and proper testing should be carried out in order to make sure that GUI is free of Bugs.
GUI Testing Approaches:
GUI testing can be performed in the following three ways:
Integration testing
System testing
Client Server Testing in Different Layers
D) Security Testing
Web Based Testing
Web application testing, a software testing technique exclusively adopted to test the applications
that are hosted on web in which the application interfaces and other functionalities are tested.
3. Interface testing - Performed to verify the interface and the dataflow from one
system to other.
Load testing - It is the simplest form of testing conducted to understand the behaviour of the system
under a specific load. Load testing will result in measuring important business critical transactions and
load on the database, application server, etc. are also monitored.
Stress testing - It is performed to find the upper limit capacity of the system and also to determine
how the system performs if the current load goes well above the expected maximum.
Soak testing - Soak Testing also known as endurance testing, is performed to determine the system
parameters under continuous expected load. During soak tests the parameters such as memory
utilization is monitored to detect memory leaks or other performance issues. The main aim is to
discover the system's performance under sustained use.
Spike testing - Spike testing is performed by increasing the number of users suddenly by a very large
amount and measuring the performance of the system. The main aim is to determine whether the
system will be able to sustain the work load.
6. Security testing - Performed to verify if the application is secured on web as data theft and
unauthorized access are more common issues and below are some of the techniques to verify the
security level of the system.
• Injection
• Broken Authentication and Session Management
• Cross-Site Scripting (XSS)
• Insecure Direct Object References
• Security Misconfiguration
• Sensitive Data Exposure
• Missing Function Level Access Control
• Cross-Site Request Forgery (CSRF)
• Using Components with Known Vulnerabilities
• Unvalidated Redirects and Forwards
Chapter 4: Test Management
1. Test Planning
Preparing Test Plan
8 Steps are used to prepare a test plan
1. Analyze the product
2. Develop test strategy
3. Define objective of test
4. Define test criteria
5. Planning the resources
6. Plan test environment
7. Schedule and Cost
8. Test Deliverables
1. Scope
2. Methodology
3. Requirements
4. Criteria for Pass and fail
5. Schedule
Test Plan Types:
•Master Test Plan
•Testing Level Specific test plan
•Unit Test Plan
•Integration test plan
•System Test Plan
•Acceptance Test Plan
• Testing Type Specific Test Plan
Standard Template for Test Plan:
1. Test Plan Identifier
2. References
3. Introduction
4. Test Items
5. Software Risk Issues
6. Features to be tested
7. Features not to be tested
8. Approach
9. Item Pass/Fail criteria
10. Suspension Criteria and Resumptions requirements
11. Test Deliverables
12. Remaining Test Task
13. Environmental Needs
14. Staffing and Training Needs
15. Responsibilities
16. Schedule
17. Planning Risk and Contingencies
18. Approvals
19. Glossary
Risk Management during Test Planning
List of everything
• Managing, designing, preparing, executing and resolving different types of test activities
• Training
• Product Training provided to test analyst on the application or system
• Test design techniques provided to business users involved in UAT
• Training for use of test executions and reporting tools provided to all users
• Staffing Needs
• Test team size and number of resources required
• Numbers of individual required for each role and if multiple users required for certain number
of individuals
• It is important to state when and how long resource required
4.1.7 Resource Requirements
4.1.8 Test Deliverables and Milestone
4.1.9 Testing Tasks
Need to work together, follow the process, delivered the work product
Severity Wise
•Major : observable product failure or departure from requirements
•Minor : Defect that will not cause a failure in execution of product
•Fatal: cause the system to crash or close abruptly or effect other application
Next build
While using the final sw product the defect is found and sw is not
Working or fails
5.3.2 Reporting Defects: