0% found this document useful (0 votes)
6 views106 pages

Unit 2 Types of Testing

Uploaded by

shevanisridhar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views106 pages

Unit 2 Types of Testing

Uploaded by

shevanisridhar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 106

Chapter

2 :Types Of
Testing
White-box testing
White-box testing (also known as clear
box testing, glass box
testing, transparent box testing,
and structural testing) is a method of
testing software that tests internal
structures or workings of an application.
 In white-box testing an internal perspective

of the system, as well as programming


skills, are used to design test cases. The
tester chooses inputs to exercise paths
through the code and determine the
expected outputs.
• White-box testing can be applied
at the unit, integration and system
levels of the software testing
process.

• It can test paths within a


unit, paths between units
during integration, and
between subsystems during
a system–level test.
White-box test design
techniques
 White-box test design techniques include
the following code coverage criteria:
◦ Control flow testing
◦ Data flow testing
◦ Branch testing
◦ Statement coverage
◦ Decision coverage
◦ Modified condition/decision coverage
◦ Prime path testing
◦ Path testing
Classification of White Box
Testing
Static Testing
 Static testing is the testing of the software
work products manually, or with a set of
tools, but they are not executed.
 It starts early in the Life cycle and so it is

done during the verification process.


 It does not need computer as the testing of

program is done without executing the


program. For example: reviewing, walk
through, inspection, etc.
Advantages Of Static Testing
 Since static testing can start early in the life
cycle, early feedback on quality issues can be
established.
 By detecting defects at an early stage, rework
costs are most often relatively low.
 Since rework effort is substantially reduced,
development productivity figures are likely to
increase.
 The evaluation by a team has the additional
advantage that there is an exchange of
information between the participants.
 Static tests contribute to an increased
awareness of quality issues.
Disadvantages Of Static
Testing
 Demand great amount of time when done
manually
 Automated tools works with only few

programming languages
 Automated tools may provide false positives

and false negatives


 Automated tools only scan the code
 Automated tools cannot pinpoint weak

points that may create troubles in run-time


Static Testing
1) Walkthrough
2) Inspection
3) Technical Review
Walkthrough

 In walkthrough, author guides the review


team via the document to fulfill the
common understanding and collecting the
feedback.
 Walkthrough is not a formal process.
 In walkthrough, a review team does not

require to do detailed study before meeting


while authors are already in the scope of
preparation.
 Walkthrough is useful for higher-level

documents i.e requirement specification


and architectural documents.
Goals Of Walkthrough
 Make the document available for the
stakeholders both outside and inside the
software discipline for collecting the
information about the topic under
documentation.
 Describe and evaluate the content of the

document.
 Study and discuss the validity of possible

alternatives and proposed solutions.


Structured Walkthrough Participants:
 Author - The Author of the document under
review.
 Presenter - The presenter usually develops the
agenda for the walkthrough and presents the
output being reviewed.
 Moderator - The moderator facilitates the
walkthrough session, ensures the walkthrough
agenda is followed, and encourages all the
reviewers to participate.
 Reviewers - The reviewers evaluate the document
under test to determine if it is technically accurate.
 Scribe - The scribe is the recorder of the
structured walkthrough outcomes who records the
issues identified and any other technical
comments, suggestions, and unresolved questions.
Benefits of Structured Walkthrough

 Saves time and money as defects are found


and rectified very early in the lifecycle.
 This provides value-added comments from
reviewers with different technical
backgrounds and experience.
 It notifies the project management team
about the progress of the development
process.
 It creates awareness about different
development or maintenance methodologies
which can provide a professional growth to
participants.
Inspection
 The trained moderator guides the
Inspection. It is most formal type of
review.
 The reviewers are prepared and check the

documents before the meeting.


 In Inspection, a separate preparation is

achieved when the product is examined and


defects are found. These defects are
documented in issue log.
 In Inspection, moderator performs a formal

follow-up by applying exit criteria.


Goals of Inspection
 Assist the author to improve the quality of the
document under inspection.
 Efficiently and rapidly remove the defects.
 Generating the documents with higher level
of quality and it helps to improve the product
quality.
 It learns from the previous defects found and
prohibits the occurrence of similar defects.
 Generate common understanding by
interchanging information.
Technical Review

 Technical review is a discussion meeting


that focuses on technical content of the
document. It is a less formal review.
 It is guided by a trained moderator or a

technical expert.
Goals of technical review
 The goal is to evaluate the value of
technical concept in the project
environment.
 Build the consistency in the use and

representation of the technical concepts.


 In early stages it ensures that the technical

concepts are used correctly.


 Notify the participants regarding the

technical content of the document.


Difference between walkthrough and
inspection
Inspection Walkthrough
Formal Informal
Initiated by the project team Initiated by the author
Planned meeting with fixed roles Unplanned.
assigned to all the members
involved

Reader reads the product code. Author reads the product code
Everyone inspects it and comes and his team mate comes up
up with defects. with defects or suggestions

Recorder records the defects Author makes a note of defects


and suggestions offered by team
mate

Moderator has a role in making Informal, so there is no


sure that the discussions moderator
proceed on the productive lines
Structural Testing
 The structural testing is the testing of the
structure of the system or component.
 Structural testing is often referred to as ‘white
box’ or ‘glass box’ or ‘clear-box testing’ because
in structural testing we are interested in what is
happening ‘inside the system/application’.
 In structural testing the testers are required to
have the knowledge of the internal
implementations of the code. Here the testers
require knowledge of how the software is
implemented, how it works.
• During structural testing the tester is concentrating on
how the software does it. For example, a structural
technique wants to know how loops in the software are
working. Different test cases may be derived to
exercise the loop once, twice, and many times.
• Structural testing can be used at all levels of testing.
Developers use structural testing in component testing
and component integration testing, especially where
there is good tool support for code coverage.
Structural testing is also used in system and
acceptance testing, but the structures are different. For
example, the coverage of menu options or major
business transactions could be the structural element in
system or acceptance testing.
Code Functional Testing
 Quick coverage test
 Done before subjecting the code to more

extensive code coverage testing or code


complexity testing
 To get the more obvious defects
Control Flow Graph
 It is a graphical representation of the
program depicting all the paths that may be
transverse during the execution. It contains
 Basic Block or Node: It is a sequence of

statements such that control can only have


one entry point and can exit the block only
when all the statements have been
executed.
 Edge:It shows the control flow.
N1, N2, N3, N4 and N5 represents Basic Blocks or
Nodes and E1, E2, E3, E4 and E5 represents
Edges. We can also observe that N2, N3, N4 and
N5 together represent an IF loop.
Statement Coverage:
 It aims to test all the statements present in
the program
 Adequacy Criterion should be equal to 1 to

ensure 100% coverage. It is a good


measure of testing each part in terms of
statements but it is not a good technique
for testing the control flow.
Here all the statements in the program can be covered using two flow
1.E1->E2->E5
2.E1->E3
But using these two statements the flow from N3 to N4 is not tested i.e.
E4. It does not provide branch coverage. N3 has 2 exit points
depending upon the decision statement in N3 i.e. True and False, but
since N4 has already been covered, the testing for a decision statement
is missed out.
Branch Coverage:

 It is also known as Decision coverage testing. It


aims to test all the branches or edges at least
once in the test suite or to test each branch
from a decision point at least once. It provides
solution for the problem faced in Statement
coverage.
 It is also known as Decision coverage testing. It
aims to test all the branches or edges at least
once in the test suite or to test each branch
from a decision point at least once. It provides
solution for the problem faced in Statement
coverage.
In this case, the 100% branch coverage can be provided as following
•E1->E2
•E3
But as we can see edge E1 can be tested for multiple conditions, but
under branch testing the aim is to just test the edge for one
condition and not for multiple conditions associated to it. The
different conditions can be:
•A>2 and B>8 (A True and B False)
•A<2 and B<8 (A False and B True) etc.
Condition Coverage:

 It aims to test individual conditions with


possible different combination of Boolean
input for the expression.
 It provides better coverage and the problem

discussed under Branch coverage can be


resolved
S.No. A B A or B

1 0 0 0

2 0 1 1

3 1 0 1

4 1 1 1

However when compound conditions are


involved the no. of test cases may increase
exponentially, which is not desired.
Modified Condition/Decision
coverage:
 It is a modification of condition coverage. Its
adequacy criterion can be defined as N+1
test cases for N variables. The test cases
are derived such that each variable
independently affects the final output. So it
provides coverage for different conditions
without increasing the size of test case suit.
Path Coverage:

 It aims to test the different path from entry


to the exit of the program, which is a
combination of different decisions taken in
the sequence.
 The paths can be too many to be

considered for testing, for ex, a loop can go


on and on. It can be avoided using
cyclomatic complexity, which help in finding
out the redundant test cases.
[Cyclomatic Complexity is quantitative
measure of no. of linearly independent
paths through a program and is used to
indicate complexity of a program].

So, cyclomatic complexity helps aiming to


test all linearly independent paths in a
program at least once. These were some of
the test coverage under this Testing.
Cyclomatic complexity is a software metric used
to measure the complexity of a program.
This metric measures independent paths through
the program's source code. An independent path
is defined as a path that has at least one edge
which has not been traversed before in any other
paths.
Cyclomatic complexity can be calculated with
respect to functions, modules, methods or classes
within a program.
IF a OR b
then procedure x
else procedure y
ENDIF
insertion_procedure (int a[], int p [], int N)

02. {

03. int i,j,k;

04. for (i=0; i<=N; i++) p[i] = i;

05. for (i=2; i<=N; i++)

06. {

07. k = p[i];

08. j = 1;

09. while (a[p[j-1]] > a[k]) {p[j] = p[j-1]; j--}

10. p[j] = k;

11. }

12. }
01.insertion_procedure (int a[], int p [], int N)

02. {

03. (1) Int i,j,k;

04. (2) for ((2a)i=0; (2b)i<=N; (2c)i++)

05. (3) p[i] = i;

06. (4) for ((4a)i=2; (4b)i<=N; (4c)i++)

07. {

08. (5) k=p[i];j=1;

09. (6) while (a[p[j-1]] > a[k]) {

10. (7) p[j] = p[j-1];

11. (8) j--

12. }

13. (9) p[j] = k;

14. }
Now, to calculate the cyclomatic
complexity you use one of three methods:
1.Count the number of regions on the
graph: 4
2.No. of predicates (red on graph) + 1 : 3 +
1=4
3.No of edges – no. of nodes + 2: 14 – 12 +
2=4
McCabe’s Cyclomatic
Complexity
Mathematically, the cyclomatic complexity of a
structured program is defined with reference to the
control flow graph of the program, a directed graph
containing the basic blocks of the program, with an edge
between two basic blocks if control may pass from the first
to the second. The complexity CC is then defined as
CC= E − N + 2P,
where
E = the number of edges of the graph.
N = the number of nodes of the graph.
P = the number of connected components.
The graph is strongly connected, and the cyclomatic
complexity of the program is equal to the cyclomatic number
of its graph which is defined as
CC = E − N + P.

For a single program (or subroutine or method), P is always


equal to 1. So a simpler formula for a single subroutine is
CC = E − N + 2

Or it can be defined as
CC=D+1
Where D=Number of decision points in the graph
Flow graph notation for a program:
Example :
 IF A = 10 THEN
 IF B > C THEN
 A=B
 ELSE
 A=C
 ENDIF
 ENDIF
 Print A
 Print B
 Print C
IF A = 354 THEN

IF B > C THEN

A=B

ELSE

A=C

END IF

END IF

PRINT A
IF A = 354 THEN

IF B > C THEN

A=B

ELSE

A=C

END IF

END IF

PRINT A
Method-01:

IF A = 354 THEN Cyclomatic Complexity


= Total number of
IF B > C THEN closed regions in the
control flow graph + 1
A=B =2+1
=3
ELSE
Method-02:
A=C
Cyclomatic Complexity
END IF =E–N+2
=8–7+2
END IF =3

PRINT A Method-03:

Cyclomatic Complexity
=P+1
=2+1
=3
{
int i, j, k;
for (i=0 ; i<=N ; i++)
p[i] = 1;
for (i=2 ; i<=N ; i++)
{
k = p[i];
j=1;
while (a[p[j-1]] > a[k]
{
p[j] = p[j-1];
j--;
}
p[j]=k;
}
{
int i, j, k;
for (i=0 ; i<=N ; i++)
p[i] = 1;
for (i=2 ; i<=N ; i++)
{
k = p[i];
j=1;
while (a[p[j-1]] > a[k]
{
p[j] = p[j-1];
j--;
}
p[j]=k;
}
{
int i, j, k;
for (i=0 ; i<=N ; i++)
p[i] = 1;
for (i=2 ; i<=N ; i++)
{
k = p[i];
j=1;
while (a[p[j-1]] > a[k]
{
p[j] = p[j-1];
j--;
}
p[j]=k;
}
{ Method-01:
int i, j, k;
for (i=0 ; i<=N ; i++) Cyclomatic Complexity
p[i] = 1; = Total number of closed
for (i=2 ; i<=N ; i++) regions in the control flow
{ graph + 1
k = p[i]; =3+1
j=1; =4
while (a[p[j-1]] > a[k]
{ Method-02:
p[j] = p[j-1];
j--; Cyclomatic Complexity
} =E–N+2
p[j]=k; = 16 – 14 + 2
} =4

Method-03:

Cyclomatic Complexity
=P+1
=3+1
=4
begin int x, y,
power;
float z;
input(x, y);
if(y<0)
power = -y;
else power = y;
z=1;
while(power!=0)
{ z=z*x;
power=power-1;
} if(y<0)
z=1/z;
output(z);
end
begin int x, y,
power;
float z;
input(x, y);
if(y<0)
power = -y;
else power = y;
z=1;
while(power!=0)
{ z=z*x;
power=power-1;
} if(y<0)
z=1/z;
output(z);
end
begin int x, y,
power;
float z;
input(x, y);
if(y<0)
power = -y;
else power = y;
z=1;
while(power!=0)
{ z=z*x;
power=power-1;
} if(y<0)
z=1/z;
output(z);
end
Method-01:
begin int x, y,
power; Cyclomatic Complexity
float z; = Total number of closed
input(x, y); regions in the CFG+1
if(y<0) =3+1
power = -y; =4
else power = y;
z=1; Method-02:
while(power!=0)
{ z=z*x; Cyclomatic Complexity
power=power-1; =E–N+2
} if(y<0) = 16 – 14 + 2
z=1/z; =4
output(z);
end Method-03:

Cyclomatic Complexity
=P+1
=3+1
=4
Advantages of Structural Testing:

 Provides a more thorough testing of the


software.
 Helps finding out defects at an early stage.
 Helps in eliminating dead code.
 Not time consuming as it is mostly

automated.
Disadvantages of Structural
Testing:
 Requires knowledge of the code.
 Requires training in the tool used for testing
 It is expensive.
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
This method attempts to find errors in the
following categories:

• Incorrect or missing functions


• Interface errors
• Errors in data structures or external database
access
• Behavior or performance errors
• Initialization and termination errors
EXAMPLE :
A tester, without knowledge of the internal
structures of a website, tests the web pages by
using a browser; providing inputs (clicks, keystrokes)
and verifying the outputs against the expected
outcome.
BLACK BOX TESTING
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
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.
 Ever wondered why a soothsayer closes the
eyes when foretelling events? So is almost the
case in Black Box Testing.
Techniques For Black Box
Testing
1.Requirement Based Testing

2.Positive & Negative Testing

3.Boundry Value Analysis

4.Decision Tables

5. Equivalence Partitioning

6.User Documentation Testing

7.Graph Based Testing


1.Requirement Based Testing

 Requirements-based testing is a testing


approach in which test cases, conditions
and data are derived from requirements. It
includes functional tests and also non-
functional attributes such as performance,
reliability or usability.
Stages in Requirements based Testing:

Defining Test Completion Criteria - Testing is completed only


when all the functional and non-functional testing is complete.
Design Test Cases - A Test case has five parameters namely
the initial state or precondition, data setup, the inputs, expected
outcomes and actual outcomes.
Execute Tests - Execute the test cases against the system
under test and document the results.
Verify Test Results - Verify if the expected and actual results
match each other.
Verify Test Coverage - Verify if the tests cover both functional
and non-functional aspects of the requirement.
Track and Manage Defects - Any defects detected during the
testing process goes through the defect life cycle and are
tracked to resolution. Defect Statistics are maintained which will
give us the overall status of the project.
2.Positive & Negative Testing

 Positive Testing is testing process where the


system validated against the valid input
data. In this testing tester always check for
only valid set of values and check if a
application behaves as expected with its
expected inputs.
 Positive Testing always tries to prove that a

given product and project always meets the


requirements and specifications.
Example of Positive testing:

 To test an application which contains a


simple textbox to enter age and
requirements say that it should take only
integers values.
Negative Testing is testing process where
the system validated against the invalid
input data. A negative test checks if a
application behaves as expected with its
negative inputs.

The main reason behind Negative testing is


to check the stability of the software
application against the influences of
different variety of incorrect validation data
It should show a validation error
set. for all invalid inputs or
message
system should not allow to enter
a non integer values.
Positive & Negative Testing Scenarios

Positive Testing Scenario


Negative Testing Scenario
 Password textbox should  Password textbox
accept 6 characters should not accept less
 Password textbox should than 6 characters
upto 20 characters  Password textbox
 Password textbox should should not exceeds
accepts any value in
more than 20
between 6-20 chars
characters
length.  Password textbox
 Password textbox should
accepts all numeric &
should not accept
alphabets values. special characters
3.Boundry Value Analysis

 For the most part, errors are observed in the


extreme ends of the input values, so these
extreme values like start/end or lower/upper
values are called Boundary values and
analysis of these Boundary values is called
“Boundary value analysis”. It is also
sometimes known as ‘range checking’.
 Boundary value analysis is used to find the

errors at boundaries of input domain rather


than finding those errors in the center of
input.
Example Of BVA
 Suppose you have very important tool at office, accepts
valid User Name and Password field to work on that tool,
and accepts minimum 8 characters and maximum 12
characters. Valid range 8-12, Invalid range 7 or less than 7
and Invalid range 13 or more than 13.

 Test Cases 1: Consider password length less than 8.


 Test Cases 2: Consider password of length exactly 8.
 Test Cases 3: Consider password of length between 9
and 11.
 Test Cases 4: Consider password of length exactly 12.
 Test Cases 5: Consider password of length more than
12.
Test cases for the application whose input box accepts numbers between
1-1000. Valid range 1-1000, Invalid range 0 and Invalid range 1001 or
more.

•Test Cases 1: Consider test data exactly as the input


boundaries of input domain i.e. values 1 and 1000.
•Test Cases 2: Consider test data with values just below the
extreme edges of input domains i.e. values 0 and 999.
•Test Cases 3: Consider test data with values just above the
extreme edges of input domain i.e. values 2 and 1001.
4.Decision Tables
 A decision table is a good way to deal with
different combination inputs with their
associated outputs and also called cause-
effect table.
 Used to determine the test scenarios

for complex business logic.


 It helps testers to search the effects of

combinations of different inputs


 Provides a regular way of stating complex

business rules
Decision Table
 A structured tool in software testing that
maps various input conditions to
corresponding actions, ensuring
comprehensive test coverage.
 A Decision Table is a tool used in

software testing to represent and


analyze different combinations of
conditions and actions.
Key Components of a Decision
Table
 Conditions: Inputs influencing decisions.
 Actions: Expected outcomes based on

conditions.
 Condition Alternatives: Possible states of

each condition.
 Decision Rules: Logical combinations of

conditions determining actions.


 Action Entries: Specific actions for each

condition combination.
Conditions
 inputs or variables that influence the
decision-making process
 Each condition can have different possible

states or values
 (like true/false, yes/no, or different ranges

of values).
 are typically represented as columns in the

table.
Actions
 the expected outcomes or responses
triggered by specific combinations of
conditions
 specify the outcomes that occur when

specific conditions are satisfied


 Each action is typically represented as a

column corresponding to the set of


conditions
Condition Alternatives
 For each condition, there can be multiple
alternatives or possible values
 For instance, if a condition checks whether

a user’s age is above a certain threshold,


the alternatives could be “Age > 18” or
“Age ≤ 18”
 These alternatives are listed in rows

beneath the condition


Decision Rules
 Each row in the decision table corresponds
to a specific combination of condition values
(alternatives)
 A decision rule specifies what actions are to

be taken for each specific combination of


conditions
 It indicates how the system should behave

for each situation


Action Entries
 indicate which actions to take for each
combination of condition alternatives
 are placed in the decision table according to

the decision rules defined by the tester.


Decision Outcome
 The result that comes from evaluating a
specific combination of conditions and
actions
 It helps the tester check if the system

behaves as expected for every scenario


defined in the table
Types of Decision Tables
 Limited Decision Table

 Extended Decision Table

 Condition-Action Table

 Switch Table

 Rule-Based Decision Table


Limited Decision Table
 used when the conditions are simple and
independent, typically with two possible
values (for example, True/False)
 the most basic form, offering minimal

complexity for straightforward decision-


making scenarios

 Example: Login system where conditions


are “Username Valid” and “Password
Correct.”
Extended Decision Table
 handles more complex scenarios involving
multiple conditions with various alternatives
and potential interdependencies
 is used when the decision logic is intricate

and there are many possible combinations


of conditions

 Example: Loan approval system with


conditions like “Income,” “Credit Score,”
and “Debt-to-Income Ratio.”
Condition-Action Table
 maps conditions directly to actions, making
it easier to visualize how each condition
triggers a specific outcome
 particularly useful for systems where

conditions have a clear, direct impact on


actions

 Example: Discount system where


“Membership” and “Purchase Total”
determine the discount
Switch Table
 used when decisions are based on a single
condition’s value
 simplifies decision-making by focusing on

one key condition that determines the


outcome

 Example: Traffic light control system where


the action depends on the light color (Red,
Yellow, Green).
Rule-Based Decision Table
 integrates multiple decision rules to handle
complex conditions and actions
 suitable for systems with several interacting

conditions and rules that dictate outcomes.

 Example: Insurance eligibility system


based on “Age,” “Driving Record,” and
“Location”
Comparison
Type of Decision Table Characteristics Use Case Example

Limited Decision Table Simple, conditions are Basic systems with simple
independent, few conditions.
combinations.

Extended Decision Table Complex, handles multiple Systems with more intricate
conditions and decision logic.
interdependencies.

Condition-Action Table Directly links conditions to Situations where conditions


actions. directly map to actions.

Switch Table Decisions are based on a Systems with simple decision


single condition. trees.

Rule-Based Decision Table Combines multiple rules to Expert systems or rule-based


define conditions and actions. decision-making.
How to Create a Decision Table?
 Step 1. Identify the Conditions: These are the factors that will influence the
decision. Think about the inputs that will determine the result.
◦ For example, in a login system, conditions might be “Is the username valid?”
and “Is the password correct?”

 Step 2. Define Possible Condition Alternatives: For each condition, define the
possible outcomes or values
◦ for example, Yes/No, True/False, or ranges like “greater than 100” or “less
than 100“

 Step 3. Define the Actions: These are the results that follow from the conditions
being met.
◦ Actions could be something like “Allow login,” “Deny access,” or “Apply
discount.”

 Step 4. Map Out the Rules: Create rows that represent all combinations of the
conditions. Each row shows a rule and the resulting action based on the conditions.

 Step 5. Fill in the Table: Based on the combinations of conditions, determine the
corresponding action for each rule and fill it into the table.

 Step 6. Simplify: If there are redundant or conflicting rules, simplify them to


improve clarity and efficiency.
Example 1 - login system
 Condition 1: Is the username valid? (Yes/No)
 Condition 2: Is the password correct? (Yes/No)

 Action 1: Allow login


 Action 2: Deny login
Example 1 - login system
 Condition 1: Is the username valid? (Yes/No)
 Condition 2: Is the password correct? (Yes/No)

 Action 1: Allow login


 Action 2: Deny login

Condition 1 Condition 2 Action 1 Action 2


(Username (Password (Allow Login) (Deny Login)
Valid) Correct)

Yes Yes Yes No

Yes No No Yes

No Yes No Yes

No No No Yes
Example 2: Discount
System
Condition 1: Is the customer a member?

 Condition 2: Is the total purchase above $100?


 Action 1: 10% discount
 Action 2: 5% discount
 Action 3: No discount
Condition 1 Condition 2 Action 1 Action 2 (5%
(Is Member) (Total > (10% Discount)
$100) Discount)

Yes Yes Yes No

Yes No No Yes

No Yes No Yes

No No No No
Way to use decision tables in
test designing
 Firstly; get to know a suitable function or
subsystem that acts according to a combination
of inputs or events.
 Taken system should be with fewer inputs or else
combinations will become impossible. Always
better to take maximum numbers of conditions,
split them into subsets and use these subsets
one at a time.
 After getting features that need to be combined,
add them to a table showing all combinations of
“Yes” and “No” for each of the feature.
Let’s take an example of a finance application, where users pay money
– monthly Repayment or year wise (the term of loan). If user chooses
both options, the system will create a negotiation between two. So,
there are two conditions of the loan amount, mention in the given
below table,
TABLE 1: Blank decision table

Conditions Step 1 Step 2 Step 3 Step 4

Repayment money
has
been mentioned

Terms of loan has


been mentioned
Next, recognize all of the combinations in “Yes” and “No” (In Table 2). In
each column of two conditions mention “Yes” or “No”, user will get here
four combinations (two to the power of the number of things to be
combined). Note, if user has three things to combine, they will have
eight combinations, with four things, there are 16, etc. Because of this,
it’s always good to take small sets of combinations at once. To keep
track on combinations, give alternate “Yes” and “No” on the bottom
row, put two “Yes” and then two “No” on the row above the bottom row,
etc., so the top row will have all “Yes” and then all “No” (Apply the same
principle to all such tables).
TABLE 2: Decision table – Input combination

Conditions Step 1 Step 2 Step 3 Step 4


Repayment money Y Y N N
has
been mentioned
Terms of loan has Y N Y N
been mentioned
In the next step, recognize the exact outcome for each combination (In
Table 3). In this example, user can enter one or both of the two fields.
Each combination is sometimes referred to as a step.

TABLE 3: Decision table – Combinations and outcomes

Conditions Step 1 Step 2 Step 3 Step 4


Repayment money Y Y N N
has
been mentioned
Terms of loan has Y N Y N
been mentioned
Actions/Outcomes
Process loan money Y Y
Process term Y Y
At this time you didn’t think that what will happen when customer don’t
enter anything in either of the two fields. The table has shown a
combination that was not given in the specification for this example. This
combination can result as an error message, so it is necessary to add
another action (In Table 4). This will flash the strength this method to find
out omissions and ambiguities in specifications.
TABLE 4: Decision table – Additional outcomes

Conditions Step 1 Step 2 Step 3 Step 4

Repayment money has Y Y N N


been mentioned

Terms of loan has been Y N Y N


mentioned
Actions/Outcomes

Process loan money Y Y

Process term Y Y
Error message Y
We will provide you some other example that allows the customer to
enter both repayment and term. This will change the outcome of our
table, this will generate an error message if both are entered

TABLE 5: Decision table – Changed outcomes


Conditions Step 1 Step 2 Step 3 Step 4

Repayment money Y Y N N
has
been mentioned

Terms of loan has Y N Y N


been mentioned

Actions/Outcomes

Process loan money Y

Process term Y
Error message Y Y
The final process of this method is to write test cases to use each of
the four steps in our table.
Conditions Rule 1 Rule 2 Rule 3
Rule 4
Repayment amount has Y Y N
N
been entered:
Term of loan has been Y N Y
N
entered:
Actions/Outcomes:
Result: Error Process loan Process
Error
message amount term message
message
Advantage of decision table technique:

1.Any complex business flow can be easily converted


into the test scenarios & test cases using this technique.
2.Such type of table are work iteratively, means the
table created at the first iteration is used as input table
for next tables. Such iteration can be carried out only if
the initial table is unsatisfactory.
3.Simple to understand and everyone can use this
method design the test scenarios & test cases.
4.It provide complete coverage of test cases which help
to reduce the rework on writing test scenarios & test
cases.
5.These tables guarantee that we consider every
possible combination of condition values. This is known as
its “completeness property”.
Credit card example:
Let’s take another example. If you are a new customer and you want to
open a credit card account then there are three conditions first you will
get a 15% discount on all your purchases today, second if you are an
existing customer and you hold a loyalty card, you get a 10% discount
and third if you have a coupon, you can get 20% off today (but it can’t
be used with the ‘new customer’ discount). Discount amounts are
added, if applicable. This is shown in Table
5. Equivalence Partitioning

 In this method, the input domain data is


divided into different equivalence data
classes. This method is typically used to
reduce the total number of test cases
to a finite set of testable test cases, still
covering maximum requirements.
Let us consider a program that separates integers into positive or
negative. And accepts any number between -5 and + 5.

The range of input integers can be split into the following partitions :
•Negative Integers: Values between -5 and -1
•Zero (neither positive nor negative)
•Positive Integers: Values between 1 and 5
•Values > 5 (Invalid)
•Values < -5 (Invalid)

Valid Valid Valid Invalid Invalid


-5 -1 0 1 5 >5 < -5
•Ticket values 1 to 10 are considered valid & ticket is booked. While value 11 to
99 are considered invalid for reservation and error message will appear, "Only
ten tickets may be ordered at one time."

1.Any Number greater than 10 entered in the reservation column (let say 11) is
considered invalid.
2.Any Number less than 1 that is 0 or below, then it is considered invalid.
3.Numbers 1 to 10 are considered valid
4.Any 3 Digit Number say 100 is invalid.
6.User Documentation Testing
 It is a type of non-functional testing.
 Any written or pictorial information describing, defining, specifying,
reporting, or certifying activities, requirements, procedures, or results’.
Documentation is as important to a product’s success as the product
itself. If the documentation is poor, non-existent, or wrong, it reflects on
the quality of the product and the vendor.
 As per the IEEE Documentation describing plans for, or results of, the
testing of a system or component, Types include test case specification,
test incident report, test log, test plan, test procedure, test report. Hence
the testing of all the above mentioned documents is known as
documentation testing.
 This is one of the most cost effective approaches to testing. If the
documentation is not right: there will be major and costly problems. The
documentation can be tested in a number of different ways to many
different degrees of complexity. These range from running the documents
through a spelling and grammar checking device, to manually reviewing
the documentation to remove any ambiguity or inconsistency.
 Documentation testing can start at the very beginning of the software
process and hence save large amounts of money, since the earlier a
defect is found the less it will cost to be fixed.
BENEFITS
 Removes Uncertainties
 Offer good training material to

fresher’s
 Good Marketing Strategy
 Good Coverage and Estimating the

Project’s Deadline
7.Graph Based Testing

 Graph based testing is useful to represent a


transaction or work flows. consider a example of a
leave application by an employee. A typical leave
application process can be visualized as being made up
of the following steps.

1. Employee desires leave


2. He applies leave application form
3. HR verify eligibility for leave
4. If it is eligible manager ensures feasibility
If it is feasible manager approve leave
If it is not feasible manager rejects leave
5.If it is not eligible HR rejects leave

You might also like