0% found this document useful (0 votes)
456 views145 pages

Software Testing Techniques With Test Case Design Examples

The document discusses several software testing techniques: - Boundary Value Analysis tests at minimum, maximum, and boundary values of input conditions to find errors that often occur at boundaries rather than in the middle. - Equivalence Partitioning divides input conditions into equivalence classes of data that are considered the same, allowing test cases to be designed from representative values of each class. - Decision Table Testing identifies conditions by creating tables listing all input combinations and expected outputs to comprehensively test logical conditions. The techniques help reduce test cases needed for exhaustive testing while improving coverage through strategically designed cases. Examples demonstrate applying Boundary Value Analysis and Equivalence Partitioning to test an online pizza order form.

Uploaded by

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

Software Testing Techniques With Test Case Design Examples

The document discusses several software testing techniques: - Boundary Value Analysis tests at minimum, maximum, and boundary values of input conditions to find errors that often occur at boundaries rather than in the middle. - Equivalence Partitioning divides input conditions into equivalence classes of data that are considered the same, allowing test cases to be designed from representative values of each class. - Decision Table Testing identifies conditions by creating tables listing all input combinations and expected outputs to comprehensively test logical conditions. The techniques help reduce test cases needed for exhaustive testing while improving coverage through strategically designed cases. Examples demonstrate applying Boundary Value Analysis and Equivalence Partitioning to test an online pizza order form.

Uploaded by

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

Software Testing Techniques with Test

Case Design Examples


What is Software Testing Technique?
Software Testing Techniques help you design better test cases. Since
exhaustive testing is not possible; Manual Testing Techniques help reduce the
number of test cases to be executed while increasing test coverage. They
help identify test conditions that are otherwise difficult to recognize.

Boundary Value Analysis (BVA)


Boundary value analysis is based on testing at the boundaries between
partitions. It includes maximum, minimum, inside or outside boundaries,
typical values and error values.

It is generally seen that a large number of errors occur at the boundaries of


the defined input values rather than the center. It is also known as BVA and
gives a selection of test cases which exercise bounding values.

This black box testing technique complements equivalence partitioning. This


software testing technique base on the principle that, if a system works well
for these particular values then it will work perfectly well for all values which
comes between the two boundary values.

Guidelines for Boundary Value analysis

 If an input condition is restricted between values x and y, then the test


cases should be designed with values x and y as well as values which
are above and below x and y.
 If an input condition is a large number of values, the test case should be
developed which need to exercise the minimum and maximum
numbers. Here, values above and below the minimum and maximum
values are also tested.
 Apply guidelines 1 and 2 to output conditions. It gives an output which
reflects the minimum and the maximum values expected. It also tests
the below or above values.

Example:
Input condition is valid between 1 to 10

Boundary values 0,1,2 and 9,10,11


Equivalence Class Partitioning
Equivalent Class Partitioning allows you to divide set of test condition into a
partition which should be considered the same. This software testing method
divides the input domain of a program into classes of data from which test
cases should be designed.

The concept behind this technique is that test case of a representative value
of each class is equal to a test of any other value of the same class. It allows
you to Identify valid as well as invalid equivalence classes.

Example:

Input conditions are valid between

1 to 10 and 20 to 30

Hence there are five equivalence classes

--- to 0 (invalid)
1 to 10 (valid)
11 to 19 (invalid)
20 to 30 (valid)
31 to --- (invalid)

You select values from each class, i.e.,

-2, 3, 15, 25, 45


Decision Table Based Testing.
A decision table is also known as to Cause-Effect table. This software testing
technique is used for functions which respond to a combination of inputs or
events. For example, a submit button should be enabled if the user has
entered all required fields.

The first task is to identify functionalities where the output depends on a


combination of inputs. If there are large input set of combinations, then divide
it into smaller subsets which are helpful for managing a decision table.
For every function, you need to create a table and list down all types of
combinations of inputs and its respective outputs. This helps to identify a
condition that is overlooked by the tester.

Following are steps to create a decision table:

 Enlist the inputs in rows


 Enter all the rules in the column
 Fill the table with the different combination of inputs
 In the last row, note down the output against the input combination.

Example: A submit button in a contact form is enabled only when all the
inputs are entered by the end user.

State Transition
In State Transition technique changes in input conditions change the state of
the Application Under Test (AUT). This testing technique allows the tester to
test the behavior of an AUT. The tester can perform this action by entering
various input conditions in a sequence. In State transition technique, the
testing team provides positive as well as negative input test values for
evaluating the system behavior.
Guideline for State Transition:

 State transition should be used when a testing team is testing the


application for a limited set of input values.
 The technique should be used when the testing team wants to test
sequence of events which happen in the application under test.

Example:

In the following example, if the user enters a valid password in any of the first
three attempts the user will be able to log in successfully. If the user enters
the invalid password in the first or second try, the user will be prompted to re-
enter the password. When the user enters password incorrectly 3rd time, the
action has taken, and the account will be blocked.

State transition diagram

In this diagram when the user gives the correct PIN number, he or she is
moved to Access granted state. Following Table is created based on the
diagram above-
State Transition Table
Correct PIN Incorrect PIN

S1) Start S5 S2

S2) 1st attempt S5 S3

S3) 2nd attempt S5 S4

S4) 3rd attempt S5 S6

S5) Access Granted - -

S6) Account blocked - -

In the above-given table when the user enters the correct PIN, the state is
transitioned to Access granted. And if the user enters an incorrect password,
he or she is moved to next state. If he does the same 3rd time, he will reach
the account blocked state.

Error Guessing
Error Guessing is a software testing technique based on guessing the error
which can prevail in the code. The technique is heavily based on the
experience where the test analysts use their experience to guess the
problematic part of the testing application. Hence, the test analysts must be
skilled and experienced for better error guessing.

The technique counts a list of possible errors or error-prone situations. Then


tester writes a test case to expose those errors. To design test cases based
on this software testing technique, the analyst can use the past experiences to
identify the conditions.

Guidelines for Error Guessing:


 The test should use the previous experience of testing similar
applications
 Understanding of the system under test
 Knowledge of typical implementation errors
 Remember previously troubled areas
 Evaluate Historical data & Test results

Boundary Value Analysis & Equivalence


Partitioning with Examples
Practically, due to time and budget considerations, it is not possible to perform
exhausting testing for each set of test data, especially when there is a large
pool of input combinations.

 We need an easy way or special techniques that can select test cases
intelligently from the pool of test-case, such that all test scenarios are
covered.
 We use two techniques - Equivalence Partitioning & Boundary Value
Analysis testing techniques to achieve this.

What is Boundary Testing?


Boundary testing is the process of testing between extreme ends or
boundaries between partitions of the input values.

 So these extreme ends like Start- End, Lower- Upper, Maximum-


Minimum, Just Inside-Just Outside values are called boundary values
and the testing is called "boundary testing".
 The basic idea in boundary value testing is to select input variable
values at their:

1. Minimum
2. Just above the minimum
3. A nominal value
4. Just below the maximum
5. Maximum
 In Boundary Testing, Equivalence Class Partitioning plays a good role
 Boundary Testing comes after the Equivalence Class Partitioning.

Equivalence Partitioning
Equivalence Partitioning or Equivalence Class Partitioning is type of black
box testing technique which can be applied to all levels of software testing like
unit, integration, system, etc. In this technique, input data units are divided
into equivalent partitions that can be used to derive test cases which reduces
time required for testing because of small number of test cases.

 It divides the input data of software into different equivalence data


classes.
 You can apply this technique, where there is a range in the input field.

Example 1: Equivalence and Boundary Value


 Let's consider the behavior of Order Pizza Text Box Below
 Pizza values 1 to 10 is considered valid. A success message is shown.
 While value 11 to 99 are considered invalid for order and an error
message will appear, "Only 10 Pizza can be ordered"

Submit
Order Pizza:      

Here is the test condition

1. Any Number greater than 10 entered in the Order Pizza field(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.

We cannot test all the possible values because if done, the number of test
cases will be more than 100. To address this problem, we use equivalence
partitioning hypothesis where we divide the possible values of tickets into
groups or sets as shown below where the system behavior can be considered
the same.

The divided sets are called Equivalence Partitions or Equivalence Classes.


Then we pick only one value from each partition for testing. The hypothesis
behind this technique is that if one condition/value in a partition passes all
others will also pass. Likewise, if one condition in a partition fails, all
other conditions in that partition will fail.
Boundary Value Analysis- in Boundary Value Analysis, you test boundaries
between equivalence partitions

In our earlier example instead of checking, one value for each partition you
will check the values at the partitions like 0, 1, 10, 11 and so on. As you may
observe, you test values at both valid and invalid boundaries. Boundary
Value Analysis is also called range checking.

Equivalence partitioning and boundary value analysis(BVA) are closely related


and can be used together at all levels of testing.

Example 2: Equivalence and Boundary Value


Following password field accepts minimum 6 characters and maximum 10
characters

That means results for values in partitions 0-5, 6-10, 11-14 should be
equivalent

Submit
Enter Password:       

Test Scenario # Test Scenario Description Expected Outcome

1 Enter 0 to 5 characters in password field System should not accep


2 Enter 6 to 10 characters in password field System should accept

3 Enter 11 to 14 character in password field System should not accep

Examples 3: Input Box should accept the Number 1 to 10


Here we will see the Boundary Value Test Cases

Test Scenario Description Expected Outcome

Boundary Value = 0 System should NOT accept

Boundary Value = 1 System should accept

Boundary Value = 2 System should accept

Boundary Value = 9 System should accept

Boundary Value = 10 System should accept

Boundary Value = 11 System should NOT accept

Why Equivalence & Boundary Analysis Testing


1. This testing is used to reduce a very large number of test cases to
manageable chunks.
2. Very clear guidelines on determining test cases without compromising
on the effectiveness of testing.
3. Appropriate for calculation-intensive applications with a large number of
variables/inputs

Summary:
 Boundary Analysis testing is used when practically it is impossible to
test a large pool of test cases individually
 Two techniques - Equivalence Partitioning & Boundary Value Analysis
testing techniques are used
 In Equivalence Partitioning, first, you divide a set of test condition into a
partition that can be considered.
 In Boundary Value Analysis you then test boundaries between
equivalence partitions
 Appropriate for calculation-intensive applications with variables that
represent physical quantities

Decision Table Testing: Learn with


Example

Decision Table
A Decision Table is a tabular representation of inputs versus rules/cases/test
conditions. It is a very effective tool used for both complex software testing
and requirements management. Decision table helps to check all possible
combinations of conditions for testing and testers can also identify missed
conditions easily. The conditions are indicated as True(T) and False(F)
values.

What is Decision Table Testing?


Decision table testing is a software testing technique used to test system
behavior for different input combinations. This is a systematic approach where
the different input combinations and their corresponding system behavior
(Output) are captured in a tabular form. That is why it is also called as
a Cause-Effect table where Cause and effects are captured for better test
coverage.

Let's learn with an example.


Example 1: How to make Decision Base Table for
Login Screen

The condition is simple if the user provides correct username and password
the user will be redirected to the homepage. If any of the input is wrong, an
error message will be displayed.

Conditions Rule 1 Rule 2 Rule 3 Rule 4

Username (T/F) F T F T

Password (T/F) F F T T

Output (E/H) E E E H

Legend:

 T – Correct username/password
 F – Wrong username/password
 E – Error message is displayed
 H – Home screen is displayed

Interpretation:
 Case 1 – Username and password both were wrong. The user is shown
an error message.
 Case 2 – Username was correct, but the password was wrong. The
user is shown an error message.
 Case 3 – Username was wrong, but the password was correct. The
user is shown an error message.
 Case 4 – Username and password both were correct, and the user
navigated to homepage

While converting this to test case, we can create 2 scenarios ,

 Enter correct username and correct password and click on login, and
the expected result will be the user should be navigated to homepage

And one from the below scenario

 Enter wrong username and wrong password and click on login, and the
expected result will be the user should get an error message
 Enter correct username and wrong password and click on login, and the
expected result will be the user should get an error message
 Enter wrong username and correct password and click on login, and the
expected result will be the user should get an error message

As they essentially test the same rule.

Example 2: How to make Decision Table for Upload


Screen
Now consider a dialogue box which will ask the user to upload photo with
certain conditions like –

1. You can upload only '.jpg' format image


2. file size less than 32kb
3. resolution 137*177.

If any of the conditions fails the system will throw corresponding error
message stating the issue and if all conditions are met photo will be updated
successfully
Let's create the decision table for this case.

Conditio Case 1 Case 2 Case 3 Case 4 Case 5 Case 6 Case 7 Case 8


ns

Format .jpg .jpg .jpg .jpg Not .jpg Not .jpg Not .jpg Not .jpg

Size Less Less >= >= 32kb Less Less >= >= 32k
than than 32kb than than 32kb
32kb 32kb 32kb 32kb

resolutio 137*17 Not 137*17 Not 137*17 Not 137*17 Not


n 7 137*17 7 137*17 7 137*17 7 137*17
7 7 7 7

Output Photo Error Error Error Error Error Error Error


upload messag messag messag messag messag messag messa
ed e e size e size e for e e for e for
resoluti mismat and format format format format,
on ch resoluti mismat and and size,
mismat on ch resoluti size and
ch mismat on mismat resolut
ch mismat ch on
ch misma
ch

For this condition, we can create 8 different test cases and ensure complete
coverage based on the above table.

1. Upload a photo with format '.jpg', size less than 32kb and resolution
137*177 and click on upload. Expected result is Photo should upload
successfully
2. Upload a photo with format '.jpg', size less than 32kb and resolution not
137*177 and click on upload. Expected result is Error message
resolution mismatch should be displayed
3. Upload a photo with format '.jpg', size more than 32kb and resolution
137*177 and click on upload. Expected result is Error message size
mismatch should be displayed
4. Upload a photo with format '.jpg', size more than equal to 32kb and
resolution not 137*177 and click on upload. Expected result is Error
message size and resolution mismatch should be displayed
5. Upload a photo with format other than '.jpg', size less than 32kb and
resolution 137*177 and click on upload. Expected result is Error
message for format mismatch should be displayed
6. Upload a photo with format other than '.jpg', size less than 32kb and
resolution not 137*177 and click on upload. Expected result is Error
message format and resolution mismatch should be displayed
7. Upload a photo with format other than '.jpg', size more than 32kb and
resolution 137*177 and click on upload. Expected result is Error
message for format and size mismatch should be displayed
8. Upload a photo with format other than '.jpg', size more than 32kb and
resolution not 137*177 and click on upload. Expected result is Error
message for format, size and resolution mismatch should be displayed

Why Decision Table Testing is Important?


Decision Table Testing is Important because it helps to test different
combinations of conditions and provide better test coverage for complex
business logic. When testing the behavior of a large set of inputs where
system behaviour differs with each set of input, decision table testing provides
good coverage and the representation is simple so it is easy to interpret and
use.

In Software Engineering, boundary value and equivalent partition are other


similar techniques used to ensure better coverage. They are used if the
system shows the same behavior for a large set of inputs. However, in a
system where for each set of input values the system behavior is different,
boundary value and equivalent partitioning technique are not effective in
ensuring good test coverage.

In this case, decision table testing is a good option. This technique can make
sure of good coverage, and the representation is simple so that it is easy to
interpret and use.
This table can be used as the reference for the requirement and for the
functionality development since it is easy to understand and cover all the
combinations.

The significance of this technique becomes immediately clear as the number


of inputs increases. Number of possible Combinations is given by 2 ^ n ,
where n is the number of Inputs. For n = 10, which is very common in the web
based testing, having big input forms, the number of combinations will be
1024. Obviously, you cannot test all but you will choose a rich sub-set of the
possible combinations using decision based testing technique.

Advantages of Decision Table Testing


 When the system behavior is different for different input and not same
for a range of inputs, both equivalent partitioning, and boundary value
analysis won't help, but decision table can be used.
 The representation is simple so that it can be easily interpreted and is
used for development and business as well.
 This table will help to make effective combinations and can ensure a
better coverage for testing
 Any complex business conditions can be easily turned into decision
tables
 In a case we are going for 100% coverage typically when the input
combinations are low, this technique can ensure the coverage.

Disadvantages of Decision Table Testing


The main disadvantage is that when the number of input increases the table
will become more complex

What is State Transition Testing?


Diagram, Technique, Example

What is State Transition Testing?


State Transition Testing is a black box testing technique in which changes
made in input conditions cause state changes or output changes in the
Application under Test(AUT). State transition testing helps to analyze
behaviour of an application for different input conditions. Testers can provide
positive and negative input test values and record the system behavior.

It is the model on which the system and the tests are based. Any system
where you get a different output for the same input, depending on what has
happened before, is a finite state system.

State Transition Testing Technique is helpful where you need to test


different system transitions.

When to Use State Transition?


 This can be used when a tester is testing the application for a finite set
of input values.
 When the tester is trying to test sequence of events that occur in the
application under test. I.e., this will allow the tester to test the application
behavior for a sequence of input values.
 When the system under test has a dependency on the events/values in
the past.

When to Not Rely On State Transition?


 When the testing is not done for sequential input combinations.
 If the testing is to be done for different functionalities like exploratory
testing

Four Parts Of State Transition Diagram


There are 4 main components of the State Transition Model as below
1) States that the software might get
2) Transition from one state to another

3) Events that origin a transition like closing a file or withdrawing money

4) Actions that result from a transition (an error message or being given the
cash.)

State Transition Diagram and State Transition Table


There are two main ways to represent or design state transition, State
transition diagram, and state transition table.

In state transition diagram the states are shown in boxed texts, and the
transition is represented by arrows. It is also called State Chart or Graph. It is
useful in identifying valid transitions.

In state transition table all the states are listed on the left side, and the events
are described on the top. Each cell in the table represents the state of the
system after the event has occurred. It is also called State Table. It is useful in
identifying invalid transitions.

How to Make a State Transition (Examples of a State


Transition)
Example 1:
Let's consider an ATM system function where if the user enters the invalid
password three times the account will be locked.

In this system, if the user enters a valid password in any of the first three
attempts the user will be logged in successfully. If the user enters the invalid
password in the first or second try, the user will be asked to re-enter the
password. And finally, if the user enters incorrect password 3rd time, the
account will be blocked.

State transition diagram

In the diagram whenever the user enters the correct PIN he is moved to
Access granted state, and if he enters the wrong password he is moved to
next try and if he does the same for the 3rd time the account blocked state is
reached.

State Transition Table


Correct PIN Incorrect PIN

S1) Start S5 S2

S2) 1st attempt S5 S3

S3) 2nd attempt S5 S4

S4) 3rd attempt S5 S6
S5) Access Granted - -

S6) Account blocked - -

In the table when the user enters the correct PIN, state is transitioned to S5
which is Access granted. And if the user enters a wrong password he is
moved to next state. If he does the same 3rd time, he will reach the account
blocked state.

In the flight reservation login screen, consider you have to enter correct agent
name and password to access the flight reservation application.

State Transition Graph

It gives you the access to the application with correct password and login
name, but what if you entered the wrong password.

The application allows three attempts, and if users enter the wrong password
at 4th attempt, the system closes the application automatically.

The State Graphs helps you determine valid transitions to be tested. In this
case, testing with the correct password and with an incorrect password is
compulsory. For the test scenarios, log-in on 2nd, 3rd and 4th attempt anyone
could be tested.

You can use State Table to determine invalid system transitions.

In a State Table, all the valid states are listed on the left side of the table, and
the events that cause them on the top.

Each cell represents the state system will move to when the corresponding
event occurs.

For example, while in S1 state you enter a correct password you are taken to
state S6 (Access Granted). Suppose if you have entered the wrong password
at first attempt you will be taken to state S3 or 2nd Try.

Likewise, you can determine all other states.

Two invalid states are highlighted using this method. Suppose you are in state
S6 that is you are already logged into the application, and you open another
instance of flight reservation and enter valid or invalid passwords for the same
agent. System response for such a scenario needs to be tested.
Advantages and Disadvantages of State Transition
Technique
Advantages Disadvantages

This testing technique will provide a pictorial The main disadvantage of this testing
or tabular representation of system behavior technique is that we can't rely in this
which will make the tester to cover and technique every time. For example, if the
understand the system behavior effectively. system is not a finite system (not in
sequential order), this technique cannot be
used.

By using this testing, technique tester can Another disadvantage is that you have to
verify that all the conditions are covered, define all the possible states of a system.
and the results are captured While this is all right for small systems, it
soon breaks down into larger systems as
there is an exponential progression in the
number of states.

Summary:
 State Transition testing is defined as the testing technique in which
changes in input conditions cause's state changes in the Application
under Test.
 In Software Engineering, State Transition Testing Technique is helpful
where you need to test different system transitions.
 Two main ways to represent or design state transition, State transition
diagram, and State transition table.
 In state transition diagram the states are shown in boxed texts, and the
transition is represented by arrows.
 In state transition table all the states are listed on the left side, and the
events are described on the top.
 This main advantage of this testing technique is that it will provide a
pictorial or tabular representation of system behavior which will make
the tester to cover and understand the system behavior efficiently.
 The main disadvantage of this testing technique is that we can't rely in
this technique every time.
What is Use Case Testing? Technique,
Examples
What is Use Case in Testing?
A Use Case in Testing is a brief description of a particular use of the
software application by an actor or user. Use cases are made on the basis of
user actions and the response of the software application to those user
actions. It is widely used in developing test cases at system or acceptance
level.

Use Case Testing


Use Case Testing is a software testing technique that helps to identify test
cases that cover entire system on a transaction by transaction basis from start
to end. Test cases are the interactions between users and software
application. Use case testing helps to identify gaps in software application that
might not be found by testing individual software components.

How to do Use Case Testing: Example


In a use-case, an actor is represented by "A" and system by "S". We create
Use for a login functionality of a Web Application as shown below

Main Success Scenario Step Description


A:Actor 1 A: Enter Agent Name & Password
S:System

2 S: Validate Password

3 S: Allow Account Access

Extensions 2a Password not valid


S: Display Message and ask for re-try 4 times

2b Password not valid 4 times


S: Close Application

 Consider the first step of an end to end scenario for a login functionality
for our web application where the Actor enters email and password.
 In the next step, the system will validate the password
 Next, if the password is correct, the access will be granted
 There can be an extension of this use case. In case password is not
valid system will display a message and ask for re-try four times
 If Password, not valid four times system will ban the IP address.

Here we will test the success scenario and one case of each extension.

Test Plan Template: Sample Document


with Web Application Example
What is test plan template?
TEST PLAN TEMPLATE is a detailed document that describes the test
strategy, objectives, schedule, estimation and deliverables, and resources
required for testing. Test Plan helps us determine the effort needed to validate
the quality of the application under test. The test plan serves as a blueprint to
conduct software testing activities as a defined process which is minutely
monitored and controlled by the test manager.

Creating a Test Plan is mandatory to ensure success of your Software testing


project.If you are new to Test Planning refer this tutorial on How to Create a
Test Plan

Download Sample Test Plan Template

1) Introduction
Brief introduction of the test strategies, process, workflow and methodologies
used for the project

1.1) Scope

1.1.1) In Scope
Scope defines the features, functional or non-functional requirements of the
software that will be tested

1.1.2) Out of Scope


Out Of Scope defines the features, functional or non-functional requirements
of the software that will NOT be tested

1.2) Quality Objective

Here make a mention of the overall objective that you plan to achive with your
manual testing and automation testing.

Some objectives of your testing project could be


 Ensure the Application Under Test conforms to functional and non-
functional requirements
 Ensure the AUT meets the quality specifications defined by the client
 Bugs/issues are identified and fixed before go live

1.3) Roles and Responsibilities

Detail description of the Roles and responsibilities of different team members


like

 QA Analyst
 Test Manager
 Configuration Manager
 Developers
 Installation Team

Amongst others

2) Test Methodology
2.1) Overview

Mention the reason of adopting a particular test methodology for the project.
The test methodology selected for the project could be

 WaterFall
 Iterative
 Agile
 Extreme Programming

The methodology selected depends on multiple factors. You can read about
Test Methodology here

2.2) Test Levels


Test Levels define the Types of Testing to be executed on the
Application Under Test (AUT). The Testing Levels primarily depends on the
scope of the project, time and budget constraints.

2.3) Bug Triage

The goal of the triage is to

 To define the type of resolution for each bug


 To prioritize bugs and determine a schedule for all "To Be Fixed Bugs'.

2.4) Suspension Criteria and Resumption Requirements

Suspension criteria define the criteria to be used to suspend all or part of the
testing procedure while Resumption criteria determine when testing can
resume after it has been suspended

2.5) Test Completeness

Here you define the criterias that will deem your testing complete.

For instance, a few criteria to check Test Completeness would be

 100% test coverage


 All Manual & Automated Test cases executed
 All open bugs are fixed or will be fixed in next release

3) Test Deliverables
Here mention all the Test Artifacts that will be delivered during different
phases of the testing lifecycle.

Here are the simple deliverables


 Test Plan
 Test Cases
 Requirement Traceability Matrix
 Bug Reports
 Test Strategy
 Test Metrics
 Customer Sign Off

4) Resource & Environment Needs


4.1) Testing Tools

Make a list of Tools like

 Requirements Tracking Tool


 Bug Tracking Tool
 Automation Tools

Required to test the project

4.2) Test Environment

It mentions the minimum hardware requirements that will be used to test the


Application.

Following software's are required in addition to client-specific software.

 Windows 8 and above


 Office 2013 and above
 MS Exchange, etc.

5) Terms/Acronyms
Make a mention of any terms or acronyms used in the project

TERM/ACRONYM DEFINITION
API Application Program Interface

AUT Application Under Test

Download the above Test Plan Template Format

Sample Test Plan Document Banking Web


Application Example
1 Introduction
The Test Plan is designed to prescribe the scope, approach, resources, and
schedule of all testing activities of the project Guru99 Bank.

The plan identify the items to be tested, the features to be tested, the types of
testing to be performed, the personnel responsible for testing, the resources
and schedule required to complete testing, and the risks associated with the
plan.

1.1 Scope
1.1.1 In Scope
All the feature of websiteGuru99 Bank which were defined in software
requirement specs are need to bested

Module Name Applicable Description


Roles

Balance Enquiry Manager Customer: A customer can have multiple bank


Customer accounts. He can
view balance of his accounts only
Manager: A manager can view balance of all the
customers who
come under his supervision

Fund Transfer Manager Customer: A customer can have transfer funds from
Customer his “own”
account to any destination account.
Manager: A manager can transfer funds from any
source bank
account to destination account

Mini Statement Manager A Mini statement will show last 5 transactions of an


Customer account
Customer: A customer can see mini-statement of
only his “own”
accounts
Manager: A manager can see mini-statement of any
account

Customized Manager A customized statement allows you to filter and


Statement Customer display
transactions in an account based on date,
transaction value
Customer: A customer can see Customized-
statement of only
his “own” accounts
Manager: A manager can see Customized
-statement of any
account

Change Manager Customer: A customer can change password of


Password Customer only his account.
Manager: A manager can change password of only
his account.
He cannot change passwords of his customers

New Customer Manager Manager: A manager can add a new customer.


  Manager Manager: A manager can edit details like address,
email,
telephone of a customer.

New Account Manager Currently system provides 2 types of accounts


• Saving
• Current
A customer can have multiple saving accounts (one
in his name,
other in a joint name etc).
He can have multiple current accounts for different
companies
he owns.
Or he can have a multiple current and saving
accounts.
Manager: A manager can add a new account for an
existing
customer.

Edit Account Manager Manager: A manager can add a edit account details
for an existing account

Delete Account Manager Manager: A manager can add a delete an account


for a customer.

Delete Customer Manager A customer can be deleted only if he/she has no


active current or saving accounts
Manager: A manager can delete a customer.

Deposit Manager Manager: A manager can deposit money into any


account.
Usually done when cash is deposited at a bank
branch.

Withdrawal Manager Manager: A manager can withdraw money from any


account.
Usually done when cash is withdrawn at a bank
branch.

1.1.2 Out of Scope


These feature are not be tested because they are not included in the software
requirement specs

 User Interfaces
 Hardware Interfaces
 Software Interfaces
 Database logical
 Communications Interfaces
 Website Security and Performance

1.2 Quality Objective


The test objectives are to verify the Functionality of website Guru99 Bank, the
project should focus on testing the banking operation such as Account
Management, Withdrawal, and Balance…etc. to guarantee all these
operation can work normally in real business environment.

1.3 Roles and Responsibilities


The project should use outsource members as the tester to save the project
cost.

No Member Tasks
.

1. Test Manager Manage the whole project


Define project directions
Acquire appropriate resources

2. Test Identifying and describing appropriate test


techniques/tools/automation architecture Verify and assess the Tes
Approach Execute the tests, Log results, Report the defects.
Outsourced members

3. Developer in Implement the test cases, test program, test suite etc.
Test

4. Test Builds up and ensures test environment and assets are managed
Administrator and maintained
Support Tester to use the test environment for test execution

5. SQA Take in charge of quality assurance


members Check to confirm whether the testing process is meeting specified
requirements

2 Test Methodology
2.1 Overview
2.2 Test Levels
In the project Guru99 Bank, there're 3 types of testing should be conducted.

 Integration Testing (Individual software modules are combined and


tested as a group)
 System Testing: Conducted on a complete, integrated system to
evaluate the system's compliance with its specified requirements
 API testing: Test all the APIs create for the software under tested

2.3 Bug Triage


2.4 Suspension Criteria and Resumption Requirements
If the team members report that there are 40% of test cases failed, suspend
testing until the development team fixes all the failed cases.

2.5 Test Completeness


 Specifies the criteria that denote a successful completion of a test
phase
 Run rate is mandatory to be 100% unless a clear reason is given.
 Pass rate is 80%, achieving the pass rate is mandatory
2.6 Project task and estimation and schedule
Task Members Estimate effort

Create the test specification Test Designer 170 man-hour

Perform Test Execution Tester, Test Administrator 80 man-hour

Test Report Tester 10 man-hour

Test Delivery 20 man-hour

Total 280 man-hour

Schedule to complete these tasks

3 Test Deliverables
Test deliverables are provided as below

 Test plans document.


 Test cases documents
 Test Design specifications.

During the testing

- Test Tool Simulators.

- Test Data

- Test Trace-ability Matrix - Error logs and execution logs.

After the testing cycles is over

 Test Results/reports
 Defect Report
 Installation/ Test procedures guidelines
 Release notes

4 Resource & Environment Needs


4.1 Testing Tools
No Resources Descriptions
.

1. Server Need a Database server which install MySQL server Web server which
install Apache Server

2. Test tool Develop a Test tool which can auto generate the test result to the
predefined form and automated test execution

3. Network Setup a LAN Gigabit and 1 internet line with the speed at least 5 Mb/s

4. Computer At least 4 computer run Windows 7, Ram 2GB, CPU 3.4GHZ

4.2 Test Environment


Test Environment to be setup as per figure below

Test Environment for Software Testing

What is a Test Environment?


A testing environment is a setup of software and hardware for the testing
teams to execute test cases. In other words, it supports test execution with
hardware, software and network configured.

Test bed or test environment is configured as per the need of the Application
Under Test. On a few occasion, test bed could be the combination of the test
environment and the test data it operates.
Setting up a right test environment ensures software testing success. Any
flaws in this process may lead to extra cost and time to the client

Key areas to set up in Test Environment


For the test environment, a key area to set up includes

 System and applications


 Test data
 Database server
 Front-end running environment
 Client operating system
 Browser
 Hardware includes Server Operating system
 Network
 Documentation required like reference documents/configuration
guides/installation guides/ user manuals

Process of Software Test environment setup


Tests are limited to what can be tested and what not should be tested.

Following people are involved in test environment setup

 System Admins,
 Developers
 Testers
 Sometimes users or techies with an affinity for testing.

The test environment requires setting up of various number of distinct areas


like,

Setup of Test Server

Every test may not be executed on a local machine. It may need establishing
a test server, which can support applications.

For example, Fedora set up for PHP, Java-based applications with or without
mail servers, cron set up, Java-based applications, etc.

Network
Network set up as per the test requirement. It includes,

 Internet setup
 LAN Wifi setup
 Private network setup

It ensures that the congestion that occurs during testing doesn't affect other
members. (Developers, designers, content writers, etc.)

Test PC setup

For web testing, you may need to set up different browsers for different
testers. For desktop applications, you need various types of OS for different
testers PCs.

For example, windows phone app testing may require

 Visual Studio installation


 Windows phone emulator
 Alternatively, assigning a windows phone to the tester.

Bug Reporting

Bug reporting tools should be provided to testers.

Creating Test Data for the Test Environment

Many companies use a separate test environment to test the software


product. The common approach used is to copy production data to test. This
helps the tester, to detect the same issues as a live production server, without
corrupting the production data.

The approach for copying production data to test data includes,

 Set up production jobs to copy the data to a common test environment


 All PII (Personally Identifiable Information) is modified along with other
sensitive data. The PII is replaced with logically correct, but non-
personal data.
 Remove data that is irrelevant to your test.

Testers or developers can copy this to their individual test environment. They
can modify it as per their requirement.
Privacy is the main issue in copy production data. To overcome privacy issues
you should look into obfuscated and anonymized test data.

For Anonymization of data two approaches can be used,

 BlackList: In this approach, all the data fields are left unchanged. Except
those fields specified by the users.
 WhiteList: By default, this approach, anonymizes all data fields. Except
for a list of fields which are allowed to be copied. A whitelisted field
implies that it is okay to copy the data as it is and anonymization is not
required.

Also, if you are using production data, you need to be smart about how to
source data. Querying the database using SQL script is an effective approach.

Test Environment Management


Test Environment Management deals with the maintenance and upkeep of the
test bed.

List of activities by the Test environment management function include,

1. Maintenance of a central repository with all the updated version of test


environments.
2. Test environment management as per the test team demands.
3. As per the new requirements creating new environments
4. Monitoring of the environments
5. Updating/deleting outdated test-environments
6. Investigation of issues on the environment
7. Co-ordination till an issue resolution.

Test Environment Checklist


Hardware

1 Check whether required If this is not the case, analyze the supply time!
equipment for testing is
available?

  Check whether peripheral Such as scanners, special printers, handhelds, etc.


equipment is available?

Software / connections

2 Are the needed applications An application such as excel, word, drawings, etc.
specified?

  For the new software does the Has the organization experience with use and
test environment exist for the maintenance of the software?
organization?

Environmental data

3 Check whether the standard With the regression test set, consider
test data sets are available? the Defect administration to collect test data.

  Do agreements with the test Consider functional maintenance.


data owners about the test
data exist?

Maintenance tools/processes

4 Check whether a single point If no, prepare a list of all possible members involved in
of contact exists for test keeping the test environment running. It should includ
environment maintenance? their contact information as well.

  Does the agreement reached For instance, acceptance criteria, maintenance


about the readiness and requirements, etc. Also, check whether other/extra
quality of the test quality attributes for environments are there in
environment? agreement.

  Do all members involved in  


the maintenance process are
known?

Besides these, there are a few more questions to answer before setting up the
test environment.

 Whether to develop an internal Test Environment or to outsource?


 Whether to follow an internal company standard or follow any External
(IEE, ISO, etc.)?
 How long the test environment is required?
 Differences between the test and production systems and their impact
on test validity must be determined.
 Can you re-use an existing setup for other projects in the company?

Challenges in setting up Test Environment


Management
1. Proper planning on resource usage

Ineffective planning for resource usage can affect the actual output.
Also, it may lead to conflict between teams.

2. Remote environment

It is possible that a Test environment is located geographically apart. In


such a case, the testing team has to rely on the support team for
various test assets. (Software, hardware, and other issues).

3. Elaborate setup time

Sometimes test set up gets too elaborated in cases of Integration


Testing.

4. Shared usage by teams

If the testing environment is used by development & testing team


simultaneously, test results will be corrupted.

5. Complex test configuration


Certain test requires complex test environment configuration. It may
pose a challenge to the test team.

Best practices for setting up a Test Environment


Management
1. Understand the test requirements thoroughly and educate the test team
members.
2. Connectivity should be checked before the initiation of the testing
3. Check for the required hardware and software, licenses
4. Browsers and versions
5. Planning out the Scheduled use of the test environment.
6. Automation tools and their configurations.

What is Test Bed in Software Testing?


A Test Bed in Software Testing is a software development environment. It
allows developers to test their modules without affecting the live production
servers. Test bed is not only confined to developers but also used by testers.
It is referred to as a test environment for rigorous and transparent testing of
new technologies.

Summary:

 A testing environment is a setup of software and hardware on which the


test team will conduct the testing
 For the test environment, a key area to set up includes
o System and applications
o Test data
o Database server
o Front-end running environment, etc.
 Few challenges while setting up a test environment include,
o Remote environment
o Combined usage between teams
o Elaborate setup time
o Ineffective planning for resource usage for integration
o Complex test configuration
Defect/Bug Life Cycle in Software
Testing
What is Defect Life Cycle?
Defect Life Cycle or Bug Life Cycle in software testing is the specific set of
states that defect or bug goes through in its entire life. The purpose of Defect
life cycle is to easily coordinate and communicate current status of defect
which changes to various assignees and make the defect fixing process
systematic and efficient.

Defect Status
Defect Status or Bug Status in defect life cycle is the present state from
which the defect or a bug is currently undergoing. The goal of defect status is
to precisely convey the current state or progress of a defect or bug in order to
better track and understand the actual progress of the defect life cycle.

The number of states that a defect goes through varies from project to project.
Below lifecycle diagram, covers all possible states

 New: When a new defect is logged and posted for the first time. It is
assigned a status as NEW.
 Assigned: Once the bug is posted by the tester, the lead of the tester
approves the bug and assigns the bug to the developer team
 Open: The developer starts analyzing and works on the defect fix
 Fixed: When a developer makes a necessary code change and verifies
the change, he or she can make bug status as "Fixed."
 Pending retest: Once the defect is fixed the developer gives a
particular code for retesting the code to the tester. Since the software
testing remains pending from the testers end, the status assigned is
"pending retest."
 Retest: Tester does the retesting of the code at this stage to check
whether the defect is fixed by the developer or not and changes the
status to "Re-test."
 Verified: The tester re-tests the bug after it got fixed by the developer. If
there is no bug detected in the software, then the bug is fixed and the
status assigned is "verified."
 Reopen: If the bug persists even after the developer has fixed the bug,
the tester changes the status to "reopened". Once again the bug goes
through the life cycle.
 Closed: If the bug is no longer exists then tester assigns the status
"Closed." 
 Duplicate: If the defect is repeated twice or the defect corresponds to
the same concept of the bug, the status is changed to "duplicate."
 Rejected: If the developer feels the defect is not a genuine defect then
it changes the defect to "rejected."
 Deferred: If the present bug is not of a prime priority and if it is expected
to get fixed in the next release, then status "Deferred" is assigned to
such bugs
 Not a bug:If it does not affect the functionality of the application then
the status assigned to a bug is "Not a bug".
Defect Life Cycle Explained

1. Tester finds the defect


2. Status assigned to defect- New
3. A defect is forwarded to Project Manager for analyze
4. Project Manager decides whether a defect is valid
5. Here the defect is not valid- a status is given "Rejected."
6. So, project manager assigns a status rejected. If the defect is not
rejected then the next step is to check whether it is in scope.
Suppose we have another function- email functionality for the
same application, and you find a problem with that. But it is not a
part of the current release when such defects are assigned as
a postponed or deferred status.
7. Next, the manager verifies whether a similar defect was raised
earlier. If yes defect is assigned a status duplicate.
8. If no the defect is assigned to the developer who starts fixing the
code. During this stage, the defect is assigned a status in-
progress.
9. Once the code is fixed. A defect is assigned a status fixed
10. Next, the tester will re-test the code. In case, the Test
Case passes the defect is closed. If the test cases fail again, the
defect is re-opened and assigned to the developer.
11. Consider a situation where during the 1st release of Flight
Reservation a defect was found in Fax order that was fixed and
assigned a status closed. During the second upgrade release the
same defect again re-surfaced. In such cases, a closed defect will
be re-opened.

That's all to Bug Life Cycle

This training video describes the various stages in a bug aka defect life cycle
and its importance with the help of an example

Top 50 Software Testing Tools in 2020


What are Testing Tools?
TESTING TOOLS in software testing can be defined as products that support
various test activities starting from planning, requirement gathering, build
creation, test execution, defect logging and test analysis. These testing tools
are mainly used for testing software firmness, thoroughness, and other
performance parameters.

There are tons of software testing tools available in the market, and with the
plethora of choices it becomes difficult to zero in on the best testing tools for
your project. The following list categorizes, ranks and grades the different
software testing tools in the market. For each tool - important features, USP
and download links are mentioned.

Test Management Tool:


These tools help organize the end to end test Cycle
1) Xray

Xray is the #1 Manual & Automated Test Management App for QA. It’s a full-
featured tool that lives inside and seamlessly integrates with Jira. Its aim is to
help companies improve the quality of their products through effective and
efficient testing.

Features:

 Traceability between requirements, tests, defects, executions


 Define reusable preconditions and associate to tests
 Organize tests in folders and test sets
 Test plans for tracking progress
 Test environments
 BDD - Write Cucumber scenarios in Jira
 Integrates with test automation frameworks (Selenium, JUnit, Nunit,
Robot, ...)
 Built-in REST API
 CI integrations (Bamboo, Jenkins)
 Built-in reports

2) Testpad
Testpad is a simpler and more accessible manual test tool that prioritises
pragmatism over process. Instead of managing cases one at a time, it uses
checklist-inspired test plans that can be adapted to a wide range of styles
including Exploratory testing, the manual side of Agile, syntax highlighted
BDD, and even traditional test case management.
Key features:

 Guest testers, invited by email, who don’t need accounts


 Simple enough to use by non-testers; get everyone to help at release
time
 Keyboard-driven editor with a javascript-powered (i.e. responsive) UI
 Drag'n'drop organisation of test plans
 Add new tests during testing, as you think of new ideas
 Lightweight integration with issue trackers, including JIRA

3) Practitest
PractiTest is an end-to-end test management tool. A common meeting ground
for all QA stakeholders, it enables full visibility into the testing process and a
deeper broader understanding of testing results.

Features:

 A vast array of third-party integrations with common bug trackers,


automation tools, and robust API for the rest.
 Fully customizable & flexible for the ever-changing needs of QA teams:
customize fields, views, permissions, issue workflows and more
 Reuse tests and correlate results across different releases and
products.
 Unique hierarchical filter trees - organize everything and find anything
quickly.
 Never work twice - with anti-bug duplicates, permutations, step
parameters and call to test
 Visualize data with advanced dashboards and reports
 Fast professional and methodological support

4) TestRail
TestRail is your source for scalable, customizable, web-based test case
management. Set up in just minutes with our cloud-based/SaaS solution, or
install on TestRail your own server.

 Efficiently manage manual and automated test cases, plans, and runs.
 Get real-time insights into testing progress with informative dashboards,
metrics, and activity reports.
 Boost efficiency with milestones, personal to-do lists, and email
notifications.
 Document test cases with screenshots and expected results. Use the
flexible built-in templates or create your own custom templates.
 Integrate with tools in your CI/CD/DevOps pipeline including JIRA,
Bugzilla, Jenkins, TFS and more.
 Enterprise edition designed for large teams & mission-critical projects.
 Support for Docker containers.
5) TestMonitor
TestMonitor is an end-to-end test management tool for every organization. A
simple, intuitive approach to testing. Whether you’re implementing enterprise
software, need QA, building a quality app or just need a helping hand in your
test project, TestMonitor has you covered.

Features

 Requirement and risk-based testing.


 Advanced test case design capable of supporting thousands of cases.
 Robust planning tools with multi-tester runs and milestone cloning.
 Comprehensive result tracking.
 Integrated issue management.
 Smart reporting with many filter and visualization options.
 Revolutionary simple UI.
 Third-party integrations featuring Jira, DevOps, and Slack. REST API
included.
 Professional support with quick response time.

Automated Testing Tools


This category of tools helps automate functional and Regression Testing of
your application under test.

6) 21
21 is a sophisticated, self-learning test automation and analytics platform for
iOS and Android applications.
Features:

 Fast and intelligent authoring - AI assisted authoring empowers users to


create automated functional and UI tests in minutes.
 Results you trust - Seamless algorithmic locators system ensures stable
results across all frameworks.
 Eliminate maintenance and flaky results - self-learning maintenance
autonomously updates tests and assures your team can focus on
developing new features, while relying on test results.
 Release with confidence - Production integration closes the feedback
loop and analyze actual coverage. Use data when releasing.
 Fully SaaS, requires no installation or devices to create or execute
tests. Offers access to dozens of devices seamlessly.

7) Parasoft Selenic
Parasoft Selenic leverages AI to address your problems with Selenium so you
don’t have to get rid of Selenium. It works directly with your existing Selenium
tests, so you're not locked into a proprietary platform.

Key Features:
 Self-healing at runtime and AI-driven recommendations post-execution.
You can efficiently maintain existing Selenium scripts, reducing the time
spent maintaining, repairing, and fixing broken tests.
 Create Selenium test suites with the Page Object Model. Teams can
rapidly build a maintainable testing practice from the start.
 Optimize test execution with Test Impact Analysis. Cross-correlating
test execution with underlying code changes gives you quicker feedback
from your CI/CD pipeline.

8) Squish
Squish is the GUI Test Automation tool of choice for more than 3000
companies worldwide to automate the functional regression tests and system
tests of their graphical user interface (GUIs) and Human Machine Interfaces
(HMIs). The Squish GUI testing tool, a 100% cross-platform tool, features

 In-depth support for all major GUI technologies


 Full support for all desktop, mobile, web and embedded platforms
 Test script recording
 Powerful and reliable object identification and verifications (object-based
and image based)
 No dependency on screenshots or visual appearance
 Powerful integrated development environment (IDE)
 A wide range of popular script languages for test scripting
 Full support for Behavior Driven Development (BDD)
 Full control via command line tools
 Integrations with Test Management and CI-Systems
9) Ranorex
Over 14,000 users worldwide accelerate testing with Ranorex Studio, an all-
in-one tool for cross-platform test automation. Ranorex is easy for beginners
with a codeless click-and-go interface, but powerful for automation experts
with a full IDE.

Features include:

 Robust object identification for reliable tests and reduced maintenance


 Shareable object repository and reusable code modules
 Cross-browser testing
 Automates challenging interfaces like SAP, ERP, Delphi and legacy
applications
 Run tests in parallel or distribute on a Selenium Grid
 Built-in reporting

Ranorex integrates with solutions for BDD, CI/CD, source control, test
management, defect-tracking, and more for a complete test automation
toolchain

10) Selenium:
Selenium is one of the most popular software testing tools. It specifically
designed to support Automation Testing of functional aspects of web based
applications, wide range of platforms and browsers.

Features:

 It is one of the best qa tools which offers the support for parallel test
execution that reduce the time taken in executing parallel tests.
 Selenium needs very lesser resources when compared to other manual
testing tools.
 Test cases prepared using this testing tool can be executed on any OS
 It supports the many known programming languages like Java, Python,
C#, Perl, PHP, and JavaScript.

Download Link: http://www.seleniumhq.org/download/

11) QTP:

Quick Test Professional (QTP) now called as Micro Focus UFT (Unified
Functional Testing) is an automated functional GUI testing tool which allows
the automation of user actions on a web or client based computer application.
It is widely used for functional regression test automation. It is one of the
manual testing tools which uses a scripting language to manipulate the
objects and controls of the application under test.

Features:

 QTP is one of the software testing tools that allows beginner testers to
learn this tool in the few minutes.
 The tool is very easy to understand. It presents a test case in a simple
workflow to the tester.
 The tool allows complete validation of applications through a full
complement of checkpoints
Download Link: https://www.microfocus.com/en-us/products/uft-
one/overview

12) Watir:

Waitr is an open-source cross-platform web application testing tool. It is most


reliable and flexible automation tool of Ruby libraries for web browsers
automation. This cross browser testing tool interacts with a browser just like
human being so it clicks links, filling out forms and validating text.

Features:

 It is one of the best testing tools which is free, so there is no costs to


use the tool.
 This automated testing tool is supported by very active and growing
community.
 It is one of the qa tools which supports multiple browsers on different
platforms.
 It is very powerful and lightweight tool.

Download Link: http://watir.com/guides/downloads/

13) Testim:
Testim is a modern day automated testing tool. It uses machine learning to
speed the authoring, execution, and maintenance of automated tests. The
tester can be analysis any test case in few minutes and execute them on
multiple web and mobile platforms.

Features:

 It is one of the qa testing tools that can easily add annotations to find
out what's wrong in the system.
 Quickly view and share easy-to-understand annotated screenshots
using the bug tracker.
 Developers just need to click the automated bug test to reproduce in the
browser automatically.

Download link: https://www.testim.io/

14) AppliTools:

Applitools is an automated testing tool which automatically validates the look


and feels and user experience of the apps and sites. It is designed is such a
way that it easily integrates with the existing tests instead of requiring to
create a new test.

Features:

 It is one of the qa tools which allows cross browser test in various


devices
 Provide Interactive visual test reports to the user
 Robust user access management
 It is available as a cloud service or on premise

Download Link: https://applitools.com/users/register
15) TestComplete:

TestComplete is an automated test management tool which helps to increase


efficiency and reduce the cost of the testing process. It's very easy-to-use
interface helps QA teams to implement an automation solution in very less
amount of time.

Features:

 It is one of the qa tools that supports multiple scripting languages


 Allows to record robust automated tests without scripting knowledge
 It offers data-driven testing
 Allows user to create Customize plugins and extensions

Download Link: https://support.smartbear.com/downloads/testcomplete/

Cross-browser Testing Tools


This category of tool help in Cross Browser Testing of your site across
Chrome, Firefox, IE, Edge, Safari, and other browsers.

16) LambdaTest
LambdaTest is a scalable cloud-based cross browser testing platform
designed to offer all website or web app testing need to cloud infrastructure.
LambdaTest platform helps you to ensure your website pr web app render
seamlessly across every desktop and mobile browser with support of manual,
visual, and automated testing. With LambdaTest, you can access up to 2000+
combinations of desktop and mobile browsers on the cloud.

Features

 Selenium Web Testing Automation


 Live Interactive Browser Compatibility Testing
 Faster Automated Screenshot Testing
 Parallel Testing For Faster Goto Market Launch
 API For Continuous Testing
 Continuous Testing with Continuous Integration tools

17) Browsera:

This is one of the best browser compatibility testing software which allows
testing website and its elements in multiple browsers. This tool also used to
test website and all web pages for scripting and layout errors.

Features:

 Browsera can quickly detect cross-browser layout problems


automatically by comparing each browser's output.
 JavaScript errors from every browser are collected and reported after
the every test.
 With its site crawling feature, it's easy to test all the web pages of the
single site.

Download Link: http://www.browsera.com/web_sites
18) CrossBrowser Testing:

Cross-browser testing helps to ensure that website or web application


functions correctly in various web browsers. With the help of this tool, it is
possible to run parallel automated tests, compare screenshots, and remotely
debug real desktop and mobile browsers.

Features:

 It is one of the qa testing tools that can run Numerous Tests on Multiple
Devices At One Time
 Easily run automated tests against real iOS, Androids, & other desktop
browsers
 It allows running testing frameworks like WebDriver.IO, and Nightwatch
for superior quality and speed

Download link: https://crossbrowsertesting.com/freetrial

19) SauceLabs:

Sauce Labs is a Selenium cloud-based solution that supports automated


cross-browser testing. It can perform testing in any OS and platform and
browser combination.

Features:

 It is possible to test the web and mobile apps with the highest number of
platforms, browsers, and OS combinations.
 The tool ensures web applications work efficiently with all the latest
Android and iOS mobile devices.
 Run JavaScript unit tests for web apps to make sure that code works in
every environment.

Download Link: https://saucelabs.com/signup/trial

20) Ghostlab:

Ghostlab is a Mac based testing app that allows test out responsive design
across a variety of devices and browsers. It is a tool for synchronized browser
testing. It synchronizes scrolls, clicks, reloads and form input across all
connected clients to test a full user experience.

Features:

 No setup required for installation


 This mobile testing tool can Synchronised clicks, events and scrolls
 It provides support for remote debugging for all types of browser

Download Link: https://saucelabs.com/signup/trial
21) Browsershots:

Browsershots is a cross-browser testing tool allows testing website which is


running on Windows, MacOS, Android or iOS. It provides screenshots of a
website across 200+ browsers. This tool provides screenshots of websites in
a testing environment which is helpful for finding all the major HTML or CSS
faults.

Features:

 Browsershots is a completely free tool, and it provides support for 200


different browser versions to capture screenshots
 Browsers supported range from Arora, Chrome, Dillo, Firefox,
Iceweasel, Konqueror, Links, SeaMonkey, and Safari.
 It allows to disable JavaScript, Change Color Depth, and disable/enable
Java and Flash.

Download link: http://browsershots.org/

Load Testing Tools


These tools help performance/load test a site or application.

22) Webload:
WebLOAD is an excellent testing tool which offers many powerful scripting
capabilities, that is helpful for testing complex scenarios. The tool supports
hundreds of technologies from Selenium to mobile, enterprise application to
web protocols. It is possible to generate load both in the cloud and on-premise
using this tool.

Features:

 Building load test scenarios more easily and efficiently with WebLOAD
 It helps you identify performance bottlenecks in your system with more
than 80 reports types and graphs.
 Performance Testing can run from the cloud by generating load from
Amazon EC2.

Download Link: http://www.radview.com/webload-download/

23) Loadrunner:

It is a load testing tool for Windows and Linux, which allows testing the web
application efficiently. It helpful testing tool to determining the performance
and result of the web application under heavy load.

Features:

 It offers supports for various types of Apps


 This testing tool can work on several enterprise environments.
 All the Vusers can be controlled with just a single dashboard.
 The LoadRunner provide support for several types of protocols.
 The monitoring and analysis is very user-friendly and easy to grasp.

Download Link: https://www.microfocus.com/en-us/products/loadrunner-
professional/free-trial

24) Wapt:

Wapt is a load, and stress testing tool works for all Windows. It provides an
easy and cost-effective way to test all types of websites. It works with the
same efficiency on secure HTTPS websites, dynamic content and RIA
applications under data-driven mode. This testing tool also provides supports
for RIA applications in the data-driven mode.

Features:

 Allows to include different types of users in a single test


 Provide most flexible load level definitions
 The tool uses a large number of advanced techniques to simulate real
load conditions.
 WAPT supports testing of websites and applications secured by SSL

Download Link: https://www.loadtestingtool.com/download.shtml

25) LoadUI Pro:


LoadUI is an open source load testing tool that allows performing complex
load tests by simply dragging the different components. It also allows to create
and update test cases while it's executing which make it a worthy tool to use.

Features:

 Allows to create multiple performance strategies.


 Reuse of existing SoapUI Pro functional tests.
 Real-time feedback about load testing results.
 Simultaneous load test even in the complex scenarios.

Download Link: https://www.loadui.org/downloads/download-loadui-pro.html

26) Silk Performer:

Silk Performer is the cost-effective load testing tool to meet all the critical
applications, performance expectations, and service-level requirements. It
also supports cloud integration which means that it is easy to simulate
massive loads without a need to invest in hardware setup.

Features:

 Quickly find the root cause of performance issues with in-depth analysis
 It can be used anywhere with unlimited scalability from the Cloud
 Authenticate real time user experience by transaction monitoring and
performance tracking

Download Link: https://www.microfocus.com/products/silk-portfolio/silk-
performer/trial/
27) Jmeter:

Apache JMeter is one of the open source testing tools for load testing. It is a
Java desktop application, designed to load test functional behavior and
measure performance of websites. The tool was developed for the purpose of
load testing web applications, but it is now expanded to other test functions.

Features:

 JMeter allows performing load and performance test for various server
types.
 This load testing tool store its test plans in XML format which allows
users to generate the test plan using a text editor.
 It is one of the manual testing tools that can be also used to perform
automated and functional testing of the applications.

Download link: http://jmeter.apache.org/download_jmeter.cgi

28) Agileload:

AgileLoad is a load testing tool to enhance the performance of business


critical applications. With the help of this load testing tool, it is easy to test the
performance of all kind of web and mobile application.

Features:

 Full support of dynamic web and mobile technologies


 Excellent monitoring and comprehensive analysis diagnostics
 It provides support for creating customizable test reports
 Take the right decisions to improve the application performance rapidly

Download link: http://www.agileload.com/signup-download/getting-started-
with-agileload

31) Loadfocus

LoadFocus is the best cloud testing tool for Load Testing and Performance
Testing. It also offers cloud testing services like Website Speed Testing,
Mobile Applications, APIs testing, and Mobile Emulation on different types of
Mobile Devices.

Features:

 Cloud Load Test Website and RESTful APIs


 Load tests can run in the cloud or on secure servers
 Allows number of repeats to inspect application behavior
 It offers Website Speed Testing and Insight Analytics

Download link: https://loadfocus.com/

32) BlazeMeter:

BlazeMeter is a Load testing tool which ensures delivery of high-performance


software to quickly run performance tests for mobile apps, website or API to
check the performance at every stage of its development.

Features:
 It allows to test website and integrate multi-geo locations results into
single report
 Retrieve site data from Google Analytics account and integrate them
into a new test setup.
 Use VPN credentials to integrate a series of load servers into the private
network.

Download Link: http://info.blazemeter.com/live-request-a-demo

33) LoadImpact:

Load Impact is the best cloud-based load testing system which widely used by
enterprises all over the world to develop their websites, mobile applications,
web-based apps, and APIs by performing all types of test.

Features:

 It simulates traffic exactly happen in real life. No hidden caching or


unreal user behaviour.
 Generating load from 10 different locations simultaneously is possible.
 Allows to Record an HTTP session using a proxy recorder and allow to
perform the same actions during the test.

Download Link: https://saucelabs.com/signup/trial

Defect Tracking Tools


This category of tools help in defect/bug management.
34) JIRA:

JIRA is a defect tracking tool which is used for defect/issue tracking as well as
project management. This tool is not only used for recording, reporting but
also integrated directly with code development environment.

Features:

 JIRA Query Language helps to create quick filters with a single click
 Possible to create custom workflows of any size which is helpful to
build, test, and release software.
 Install plug-and-play add-ons from The Atlassian Marketplace to fit all
types of cases.

Download Link: https://www.atlassian.com/software/jira/try

35) Mantishub:

Mantis is an open source defect tracking tool that provides a great balance
between simplicity and power. The users can easily get started with this tool
for managing their teammates and clients effectively.

Features:

 Improve workflow and efficiency of the organisation


 Support for internal issue tracking
 This tool allows Single-sign-on using Bitbucket and GitHub
 MantisHub has its own inbuilt time tracking feature which is helpful for
effectively report on time spent on the specific issues.
Download Link: https://www.mantishub.com/signup/gold

36) FogBugz:

The FogBugz is a tracking tool which can be used to track the status of
defects and changes in ongoing software projects, such as application
development and deployment. It is specifically helpful for organizations to
keep track of bugs for multiple projects.

Features:

 Fogbugz provide flexibility to find the information in no time.


 It provide support for Agile project management
 Notifications and emails keep team members updated about changes to
the projects and cases

Download Link: https://www.fogcreek.com/fogbugz

37) Bugzilla:

Bugzilla is one of the best defect Tracking System. The tool allows individual
or groups of developers to keep track of outstanding bugs in their system. It is
the best open source software used in the market by small scale as well as
large- scale organizations.

Features:
 Optimized database structure to enhance performance and scalability
 Advanced query tool that remembers customized searches of the user
 Editable user profiles and comprehensive email preferences
 Extension Mechanism for Highly Customizable Installations

Download Link: https://www.bugzilla.org/download/

38) BugNet:

BugNet is open source Bug Finding Tool. It is a cross-platform application that


is written using an ASP.NET platform, and it needs MySQL database as
backend tool. The main objective of this defect tracking tool is to make
codebase simple and easy to deploy.

Features:

 It is open source web base application under GPL license


 BugNET tool makes it simple to file, manage and report bugs
 The tool support multiple databases
 Offer an easy navigation and easy administration

Download Link: https://bugnet.codeplex.com/releases

39) Bug Genie:


It is an open source, web-based bug tracking software. Its main functionality
includes issue tracking, bug reporting, and project management. It also
includes a feedback publishing system.

Features:

 Easy and efficient source code management


 Helpful for Interactive project planning
 It offers Powerful command line tools
 Provide support for Incoming and outgoing email

Download Link: http://www.thebuggenie.com/

40) RedMine:

Redmine is another important defect tracing tool. The basic version of this tool
is open-source and it can work on any machine that supports Ruby. It takes
more time for installation, but once installed it runs smoothly.

Features:

 Issue creation via e-mail


 Offers support for multiple databases
 Flexible issue tracking system
 Flexible role based access control

Download Link: http://www.redmine.org/
Mobile Testing Tools
These tools help to automate testing of your Android or iOS applications.

41) Appium:

Appium is one of the open source testing tools for automation of mobile
applications. It allows users to test all kind of native, mobile, web, and hybrid
apps. It also supports the automated tests on emulators and simulators.

Features:

 Test the same application which is going to the marketplace.


 It is a simple application which needs a very little memory of for test
process.
 Testing Native apps do not need SDK, it offers standard automation
APIs which can be used on for all types of platforms.

Download Link: http://appium.io/
42) Espresso:

Espresso is a mobile testing tool for the enterprises. As an open-source tool,


it's very easy to use, and it can extend within that working environment. This
test recorder tool allows creating UI tests for the mobile app without writing a
single line of the test code.

Features:

 Espresso Workflow Is Simple to Use


 Less Mobile Testing Flakiness
 Fast and consistent feedback to developers
 Developing Espresso test automation is quite easy.

Download link: https://developer.android.com/training/testing/espresso/

43) Perfecto:

Perfecto is a SaaS platform that allows app developers to perform web,


mobile & IoT software testing. This tool also allows customers to select the
deployment options that are best for the specific project.

Features:
 Cloud base mobile application testing
 It provides support for Agile Environment
 The tool can integrate with other qa testing tools like Selenium and
Appium

Download link: https://www.perfecto.io/

44) ExperiTest:

Experitest is a quality assurance tools for mobile developers. The tool


includes Manual Testing, Performance Testing, and load testing for mobile
applications. This testing tool supports all mobile OS, iOS, Android, Windows
Phone, and Blackberry.

Features:

 Create and execute automated tests on simulators or emulators hosted


in Experitest data centers
 Record and play tests, and automatically recorded test to code and use
the same test script for different mobile OS.
 It offers reports with video or Screen HTML-based reporting
 View mobile apps element structure and generate identifiers with ease

Download Link: https://experitest.com
45) Robotium:

Robotium is an open-source test automation tool mainly use for Android UI


testing. It supports both native and hybrid applications. It is possible to
perform System Testing, functional testing, and user acceptance testing over
Android-based apps with the help of this tool.

Features:

 Record Android UI test cases in minutes


 Provide support to records from emulators and actual devices
 Automatically detects resource ID:s
 Complete support for native and hybrid Android apps

Downloadlink: https://robotium.com/pages/free-trial

API Testing Tools


These tools help in testing REST/SOAP protocols
46) SoapUI:

SoapUI is one of the best testing tools which is cross-platform open source
tool for functional testing of SOAP and REST, written use the Java language.
It is primarily used to perform functional and load testing on API.

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.
 SQL Injection feature provide 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

47) SOAPSonar:
SOAPSonar is an Api Testing tool which focuses on reducing the time and
complexity to develop and maintain test cases. It supports testing every
individual service independently of the client application and yet groups the
test workflow for automation. Moreover, the creation and execution of these
test cases require no programming or scripting skills.

Features:

 SOAP, XML, and REST service validation


 Functional Testing with Success Rule Framework
 Performance Profiling and Concurrent Client Load Testing
 Web Service Security Testing with Risk Mediation

Download Link: http://www.crosschecknet.com/products/soapsonar.php

48) WebInject:

WebInject is the best Api Testing tool for automated testing of web
applications and web services. It can also test individual system components
which have HTTP interfaces and can be used to perform automated
functional, regression and acceptance tests.

Features:

 HTTP response times can be monitored in real-time at the time of test


execution.
 Combine mobile and desktop GUI tests with web testing
 Timer statistics are calculated and displayed during the runtime.

Downloadlink: http://www.webinject.org/download.html
49) Tricentis:

Tricentis is an Api Testing tool which helps to manage test cases reduces
testing time, manual effort and costs by building up and executing test cases.

Features:

 It offers Autonomous SAP Testing


 Mature, Robust SAP Test Automation Capabilities
 Solution Manager Integration

Download link: https://www.tricentis.com/automated-software-testing-tool-
trial/

Security Testing Tools


These tools detect security vulnerabilities in your Application Under Test.

50) NetSparker:

NetSparker is a security testing tool which automatically scans websites, web


applications and web services for vulnerabilities. It is the only scanner that
automatically identified and verifies vulnerabilities with a proof of concept.

Features:

 Affordable and Maintenance Free Web Application Security Solution


 It is fully Configurable Online Web Vulnerability Scanner
 This security testing tool easily Integrate Web Security Scanning In
SDLC
 It supports Enterprise Level Collaboration
Download Link: http://browsershots.org/

51) OWASP:

The Open Web Application Security Project is known as OWASP is a tool that
helps organizations to develop, purchase, and maintain web and software
which are reliable and trusted.

Features:

 Verify for Security Early and Often


 Validate all types of Inputs
 Implement Identity and Authentication Controls
 Implement all the appropriate Access Controls

Download Link: https://github.com/zaproxy/zaproxy/wiki/Downloads

52) Acunetix Vulnerability Scanner:

Acunetix Web Vulnerability Scanner is the leading security testing tool. It can
find various types of security vulnerabilities than any other scanners and
displays the fewest number of false positives.

Features:
 Most advanced Cross site scripting testing and in-depth SQL injection
 Comprehensive scanning of Single Page Applications and JavaScript-
based websites
 Detection of Blind XSS vulnerabilities
 Automated detection of DOM-based XSS vulnerabilities

Download Link: https://www.acunetix.com/vulnerability-scanner/download/

CSS Validator Tool


53) W3C CSS validator:

It is a free software developed by the W3C to help Web designers and Web
developers to check their CSS. With the help of this validation tool. It also
helps users to find errors or incorrect uses of CSS.

Features:

 W3C CSS validator recognize many browser extensions and prefixes


 It includes an integrated web browser. Therefore, websites can be
browsed and checked at the same time.
 It checks for and alerts accessibility issues to prevent people from using
that page.

Download Link: https://jigsaw.w3.org/css-validator/DOWNLOAD.html

54) Telerik studio:


Telerik Studio is a software testing tool to test web and desktop applications of
all Windows OS. It is a useful tool to test functionality, load and the
performance of the web and mobile apps. It also offers a plugin to check
Cross-browsing issues.

Features:

 Test Automation for AJAX Applications


 Native in build Support for the Telerik UI Controls
 Testing HTML Popups and Browser Dialogs
 Support for JavaScript Invocation and Logging
 Allows Continuous Integration use the Build Server

Download Link: http://www.telerik.com/download/teststudio

FAQ
❓ What is Software Testing?
Software Testing is a method to check whether the actual software product
matches expected requirements and ensures that it is Defect free.

⚡ Which factors should you consider while selecting a


Software Testing Tool?
You should consider the following factors before selecting a tool.

 Compatibility across platforms.


 Easy maintenance.
 Quality of Customer support.
 Ease of creating test scripts.
 License cost, if applicable.
 In the case of an outsourcing project, you need to factor customer/Client
Preference of the software testing tool.
 The cost involved in training employees on a tool.
 Hardware/Software requirements of the software testing tool.
 Support and Update policy of the tool.
 Reviews of the company.
Agile Methodology: What is Agile
Software Development Model?
What is Agile Methodology?
AGILE methodology is a practice that promotes continuous iteration of
development and testing throughout the software development lifecycle of the
project. In the Agile model, both development and testing activities are
concurrent, unlike the Waterfall model.

What is Agile Software Development?


The Agile software development methodology is one of the simplest and
effective processes to turn a vision for a business need into software
solutions. Agile is a term used to describe software development approaches
that employ continual planning, learning, improvement, team collaboration,
evolutionary development, and early delivery. It encourages flexible
responses to change.

The agile software development emphasizes on four core values.

1. Individual and team interactions over processes and tools


2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan

Agile Model Vs Waterfall Model


Agile and Waterfall model are two different methods for software development
process. Though they are different in their approach, both methods are useful
at times, depending on the requirement and the type of the project.

Agile Model Waterfall Model


 Agile method proposes incremental and iterative  Development of the software flows
approach to software design sequentially from start point to end point.

 The agile process is broken into individual models that  The design process is not broken into an
designers work on individual models

 The customer has early and frequent opportunities to  The customer can only see the product at th
look at the product and make decision and changes to end of the project
the project

 Agile model is considered unstructured compared to the  Waterfall model are more secure because
waterfall model they are so plan oriented

 Small projects can be implemented very quickly. For  All sorts of project can be estimated and
large projects, it is difficult to estimate the development completed.
time.

 Error can be fixed in the middle of the project.  Only at the end, the whole product is tested.
If the requirement error is found or any
changes have to be made, the project has to
start from the beginning

 Development process is iterative, and the project is  The development process is phased, and the
executed in short (2-4) weeks iterations. Planning is very phase is much bigger than iteration. Every
less. phase ends with the detailed description of
the next phase.

 Documentation attends less priority than software  Documentation is a top priority and can even
development use for training staff and upgrade the
software with another team

 Every iteration has its own testing phase. It allows  Only after the development phase, the testin
implementing regression testing every time new phase is executed because separate parts ar
functions or logic are released. not fully functional.
 In agile testing when an iteration end, shippable  All features developed are delivered at once
features of the product is delivered to the customer. after the long implementation phase.
New features are usable right after shipment. It is useful
when you have good contact with customers.

 Testers and developers work together  Testers work separately from developers

 At the end of every sprint, user acceptance is performed  User acceptance is performed at the end of
the project.

 It requires close communication with developers and  Developer does not involve in requirement
together analyze requirements and planning and planning process. Usually, time delays
between tests and coding

Agile Process
Check below Agile process model to deliver successful systems quickly.
There are various Agile methods present in agile testing, and those are listed
below:

Scrum
SCRUM is an agile development method which concentrates specifically on
how to manage tasks within a team-based development environment.
Basically, Scrum is derived from activity that occurs during a rugby match.
Scrum believes in empowering the development team and advocates working
in small teams (say- 7 to 9 members). It consists of three roles, and their
responsibilities are explained as follows:

 Scrum Master
o Master is responsible for setting up the team, sprint meeting and
removes obstacles to progress
 Product owner
o The Product Owner creates product backlog, prioritizes the
backlog and is responsible for the delivery of the functionality at
each iteration
 Scrum Team
o Team manages its own work and organizes the work to complete
the sprint or cycle
Product Backlog
This is a repository where requirements are tracked with details on the no of
requirements(user stories) to be completed for each release. It should be
maintained and prioritized by Product Owner, and it should be distributed to
the scrum team. Team can also request for a new requirement addition or
modification or deletion

Scrum Practices
Practices are described in detailed:

Process flow of Scrum Methodologies:


Process flow of scrum testing is as follows:

 Each iteration of a scrum is known as Sprint


 Product backlog is a list where all details are entered to get the end-
product
 During each Sprint, top user stories of Product backlog are selected and
turned into Sprint backlog
 Team works on the defined sprint backlog
 Team checks for the daily work
 At the end of the sprint, team delivers product functionality

eXtreme Programming (XP)


Extreme Programming technique is very helpful when there is constantly
changing demands or requirements from the customers or when they are not
sure about the functionality of the system. It advocates frequent "releases" of
the product in short development cycles, which inherently improves the
productivity of the system and also introduces a checkpoint where any
customer requirements can be easily implemented. The XP develops software
keeping customer in the target.

Business requirements are gathered in terms of stories. All those stories are
stored in a place called the parking lot.

In this type of methodology, releases are based on the shorter cycles called
Iterations with span of 14 days time period. Each iteration includes phases like
coding, unit testing and system testing where at each phase some minor or
major functionality will be built in the application.
Phases of eXtreme programming:
There are 6 phases available in Agile XP method, and those are explained as
follows:

Planning
 Identification of stakeholders and sponsors
 Infrastructure Requirements
 Security related information and gathering
 Service Level Agreements and its conditions

Analysis
 Capturing of Stories in Parking lot
 Prioritize stories in Parking lot
 Scrubbing of stories for estimation
 Define Iteration SPAN(Time)
 Resource planning for both Development and QA teams

Design
 Break down of tasks
 Test Scenario preparation for each task
 Regression Automation Framework

Execution
 Coding
 Unit Testing
 Execution of Manual test scenarios
 Defect Report generation
 Conversion of Manual to Automation regression test cases
 Mid Iteration review
 End of Iteration review

Wrapping
 Small Releases
 Regression Testing
 Demos and reviews
 Develop new stories based on the need
 Process Improvements based on end of iteration review comments

Closure
 Pilot Launch
 Training
 Production Launch
 SLA Guarantee assurance
 Review SOA strategy
 Production Support

There are two storyboards available to track the work on a daily basis, and
those are listed below for reference.

 Story Cardboard
o This is a traditional way of collecting all the stories in a board in
the form of stick notes to track daily XP activities. As this manual
activity involves more effort and time, it is better to switch to an
online form.
 Online Storyboard
o Online tool Storyboard can be used to store the stories. Several
teams can use it for different purposes.

Crystal Methodologies
Crystal Methodology is based on three concepts

1. Chartering: Various activities involved in this phase are creating a


development team, performing a preliminary feasibility analysis,
developing an initial plan and fine-tuning the development methodology
2. Cyclic delivery: The main development phase consists of two or more
delivery cycles, during which the
1. Team updates and refines the release plan
2. Implements a subset of the requirements through one or more
program test integrate iterations
3. Integrated product is delivered to real users
4. Review of the project plan and adopted development
methodology
3. Wrap Up: The activities performed in this phase are deployment into
the user environment, post- deployment reviews and reflections are
performed.

Dynamic Software Development Method (DSDM)


DSDM is a Rapid Application Development (RAD) approach to software
development and provides an agile project delivery framework. The important
aspect of DSDM is that the users are required to be involved actively, and the
teams are given the power to make decisions. Frequent delivery of product
becomes the active focus with DSDM. The techniques used in DSDM are

1. Time Boxing
2. MoSCoW Rules
3. Prototyping

The DSDM project consists of 7 phases

1. Pre-project
2. Feasibility Study
3. Business Study
4. Functional Model Iteration
5. Design and build Iteration
6. Implementation
7. Post-project

Feature Driven Development (FDD)


This method is focused around "designing & building" features. Unlike other
agile methods, FDD describes very specific and short phases of work that has
to be accomplished separately per feature. It includes domain walkthrough,
design inspection, promote to build, code inspection and design. FDD
develops product keeping following things in the target

1. Domain object Modeling


2. Development by feature
3. Component/ Class Ownership
4. Feature Teams
5. Inspections
6. Configuration Management
7. Regular Builds
8. Visibility of progress and results

Lean Software Development


Lean software development method is based on the principle "Just in time
production". It aims at increasing speed of software development and
decreasing cost. Lean development can be summarized in seven steps.

1. Eliminating Waste
2. Amplifying learning
3. Defer commitment (deciding as late as possible)
4. Early delivery
5. Empowering the team
6. Building Integrity
7. Optimize the whole

Kanban
Kanban originally emerged from Japanese word that means, a card containing
all the information needed to be done on the product at each stage along its
path to completion. This framework or method is quite adopted in software
testing method especially in agile testing.

Scrum Vs Kanban
Scrum Kanban

 In scrum technique, test must be broken down so that  No particular item size is prescribed
they can be completed within one sprint

 Prescribes a prioritized product backlog  Prioritization is optional

 Scrum team commits to a particular amount of work for  Commitment is optional


the iteration

 Burndown chart is prescribed  No particular item size is prescribed

 Between each sprint, a scrum board is reset  A Kanban board is persistent. It limits the
number of items in workflow state

 It cannot add items to ongoing iteration  It can add items whenever capacity is availab

 WIP limited indirectly  WIP limited directly

 Timeboxed iterations prescribed  Timeboxed iterations optional

Agile metrics:
Metrics that can be collected for effective usage of Agile is:

 Drag Factor
o Effort in hours which do not contribute to sprint goal
o Drag factor can be improved by reducing number of shared
resources, reducing the amount of non-contributing work
o New estimates can be increased by percentage of drag factor
-New estimate = (Old estimate+drag factor)
 Velocity
o Amount of backlog(user stories) converted to shippable
functionality of sprint
 No of Unit Tests added
 Time interval taken to complete daily build
 Bugs detected in an iteration or in previous iterations
 Production defect leakage

What is Agile Testing? Methodology,


Process & Life Cycle
What is Agile Testing?
AGILE TESTING is a testing practice that follows the rules and principles of
agile software development. Unlike the Waterfall method, Agile Testing can
begin at the start of the project with continuous integration between
development and testing. Agile Testing methodology is not sequential (in the
sense it's executed only after coding phase) but continuous.
Agile Test Plan
Agile test plan includes types of testing done in that iteration like test data
requirements, infrastructure, test environments, and test results. Unlike the
waterfall model, in an agile model, a test plan is written and updated for every
release. Typical test plans in agile includes

Agile Testing Strategies


Agile testing life cycle spans through four stages

(a) Iteration 0

During the first stage or iteration 0, you perform initial setup tasks. It includes
identifying people for testing, installing testing tools, scheduling resources
(usability testing lab), etc. The following steps are set to achieve in Iteration 0

a) Establishing a business case for the project

b) Establish the boundary conditions and the project scope


c) Outline the key requirements and use cases that will drive the design trade-
offs

d) Outline one or more candidate architectures

e) Identifying the risk

f) Cost estimation and prepare a preliminary project

(b) Construction Iterations

The second phase of agile testing methodology is Construction Iterations, the


majority of the testing occurs during this phase. This phase is observed as a
set of iterations to build an increment of the solution.  In order to do that,
within each iteration, the team implements a hybrid of practices from XP,
Scrum, Agile modeling, and agile data and so on.

In construction iteration, the agile team follows the prioritized requirement


practice: With each iteration, they take the most essential requirements
remaining from the work item stack and implement them.

Construction iteration is classified into two, confirmatory testing and


investigative testing.  Confirmatory testing concentrates on verifying that
the system fulfills the intent of the stakeholders as described to the team to
date, and is performed by the team.  While the investigative testing detects
the problem that confirmatory team has skipped or ignored.  In Investigative
testing, tester determines the potential problems in the form of defect stories.
Investigative testing deals with common issues like integration testing,
load/stress testing, and security testing. 

Again for, confirmatory testing there are two aspects developer


testing and agile acceptance testing. Both of them are automated to
enable continuous regression testing throughout the lifecycle.  Confirmatory
testing is the agile equivalent of testing to the specification. 

Agile acceptance testing is a combination of traditional functional testing and


traditional acceptance testing as the development team, and stakeholders are
doing it together.  While developer testing is a mix of traditional unit testing
and traditional service integration testing.  Developer testing verifies both the
application code and the database schema.

(c) Release End Game Or Transition Phase


The goal of “Release, End Game” is to deploy your system successfully into
production.  The activities include in this phase are training of end users,
support people and operational people.  Also, it includes marketing of the
product release, back-up & restoration, finalization of system and user
documentation.

The final agile methodology testing stage includes full system testing and
acceptance testing. In accordance to finish your final testing stage without any
obstacles, you should have to test the product more rigorously while it is in
construction iterations. During the end game, testers will be working on its
defect stories.

(d) Production

After the release stage, the product will move to the production stage.

The Agile Testing Quadrants

The agile testing quadrants separate the whole process in four Quadrants and
help to understand how agile testing is performed.
a) Agile Quadrant I – The internal code quality is the main focus in this
quadrant, and it consists of test cases which are technology driven and are
implemented to support the team, it includes

1. Unit Tests

2.Component Tests

b) Agile Quadrant II – It contains test cases that are business driven and


are implemented to support the team.  This Quadrant focuses on the
requirements. The kind of test performed in this phase is

1. Testing of examples of possible scenarios and workflows

2. Testing of User experience such as prototypes

3. Pair testing

c) Agile Quadrant III – This quadrant provides feedback to quadrants one


and two.  The test cases can be used as the basis to perform automation
testing.  In this quadrant, many rounds of iteration reviews are carried out
which builds confidence in the product.  The kind of testing done in this
quadrant is

1. Usability Testing

2. Exploratory Testing

3. Pair testing with customers

4. Collaborative testing

5. User acceptance testing

d) Agile Quadrant IV – This quadrant concentrates on the non-functional


requirements such as performance, security, stability, etc.  With the help of
this quadrant, the application is made to deliver the non-functional qualities
and expected value.

1. Non-functional tests such as stress and performance testing

2. Security testing with respect to authentication and hacking


3. Infrastructure testing

4. Data migration testing

5. Scalability testing

6. Load testing

QA challenges with agile software development


a) Chances of error are more in agile, as documentation is given less priority,
eventually puts more pressure on QA team

b) New features are introduced quickly, which reduces the available time for
test teams to identify whether the latest features are according to the
requirement and does it truly address the business suits

c) Testers are often required to play a semi-developer roled

d) Test execution cycles are highly compressed

e) Very less time to prepare test plan

f) For regression testing, they will have minimal timing

g) Change in their role from being a gate-keeper of quality to being a partner


in Quality

h) Requirement changes and updates are inherent in an agile method,


becoming the biggest challenge for QA

Risk of Automation in Agile Process


 Automated UI provides a high level of confidence, but they are slow to
execute, fragile to maintain and expensive to build. Automation may not
significantly improve test productivity unless the testers know how to
test
 Unreliable tests are a major concern in automated testing. Fixing failing
tests and resolving issues related to brittle tests should be a top priority
in order to avoid false positives
 If the automated test are initiated manually rather than through CI
(Continuous Integration) then there is a risk that they are not regularly
running and therefore may cause failing of tests
 Automated tests are not a replacement for an exploratory manual
testing. To obtain the expected quality of the product, a mixture of
testing types and levels is required
 Many commercially available automation tools provide simple features
like automating the capture and replay of manual test cases. Such tool
encourages testing through the UI and leads to an inherently brittle and
difficult to maintain tests. Also, storing test cases outside the version
control system creates unnecessary complexity
 In order to save time, much times the automation test plan is poorly
planned or unplanned which results in the test fail
 A test set up and tear down procedures are usually missed out during
test automation, while Performing manual testing, a test set up and tear
down procedures sounds seamless
 Productivity metrics such as a number of test cases created or executed
per day can be terribly misleading, and could lead to making a large
investment in running useless tests
 Members of the agile automation team must be effective consultants:
approachable, cooperative, and resourceful, or this system will quickly
fail
 Automation may propose and deliver testing solutions that require too
much ongoing maintenance relative to the value provided
 Automated testing may lack the expertise to conceive and deliver
effective solutions
 Automated testing may be so successful that they run out of important
problems to solve, and thus turn to unimportant problems.

Conclusion
Agile methodology in software testing involves testing as early as possible in
the software development lifecycle. It demands high customer involvement
and testing code as soon as it becomes available. The code should be stable
enough to take it to system testing. Extensive regression testing can be done
to make sure that the bugs are fixed and tested. Mainly, Communication
between the teams makes agile model testing success!!!
Scrum Testing Methodology Tutorial:
What is, Process, Artifacts, Sprint
Scrum in Software Testing
Scrum in Software Testing is a methodology for building complex software
applications. It provides easy solutions for executing complicated tasks.
Scrum helps the development team to focus on all aspects of the software
product development like quality, performance, usability and so on. It provides
with transparency, inspection and adaptation during the software development
to avoid complexity.

Scrum Testing
Scrum Testing is a testing done in scrum methodology to verify the software
application requirements are met. It involves checking non-functional
parameters like security, usability, performance etc. There is no active role of
tester in the process so it is usually performed by developers with Unit Test.
Sometimes dedicated test teams are needed depending on nature &
complexity of project.

Key Features of Scrum Methodology


Following are Key Features of Scrum-

 Scrum has a short fixed schedule of release cycles with adjustable


scope known as sprints to address rapidly changing development
needs. Each release could have multiple sprints. Each Scrum Project
could have multiple Release Cycles.
 A repeating sequence of meetings, events, and milestones
 A practice of testing and implementing new requirements, known
as stories, to make sure some work is released ready after each sprint

Scrum is based on the following 3 Pillars-


Let's look at the one by one

1. Roles in Scrum
There are three chief roles in Scrum Testing – Product Owner, Scrum Master
and The Development Team. Let's study them in detail

Product Owner Scrum Master The Team


 He/She manages the team
 He/She defines features of the  The team is usually about 5-9
and look after the team's
product. members
productivity

 He/She maintains the block


 Product Owner decides the release  It includes developers, designe
list and removes barriers in
date and corresponding features and sometimes testers, etc.
the development

 They prioritize the features  The team organizes and


 He/She coordinates with all
according to the market value and schedule their work on their
roles and functions
profitability of the product own

 Has right to do everything wit


 He/She is responsible for the  He/She shields team from
the boundaries of the project
profitability of the product external interferences
meet the sprint goal

 He/She can accept or reject work  Invites to the daily scrum,  Actively participate in daily
Product Owner Scrum Master The Team
sprint review and planning
item result ceremonies
meetings

2. Scrum Artifacts

A scrum process includes

 User stories: They are a short explanation of functionalities of the


system under test. Example for Insurance Provider is – "Premium can
be paid using the online system."
 Product Backlog: It is a collection of user stories captured for a scrum
product. The product owner prepares and maintains the product
backlog. It is prioritized by the product owner, and anyone can add to it
with approval from the product owner.
 Release Backlog: A release is a time frame in which the number of
iterations is completed. The product owner co-ordinates with the
scrum master to decide which stories should be targeted for a release.
Stories in the release backlog are targeted to be completed in a release.
 Sprints: It is a set period of time to complete the user stories, decided
by the product owner and developer team, usually 2-4 weeks of time.
 Sprint Backlog: It's a set of user stories to be completed in a sprint.
During sprint backlog, work is never assigned, and the team signs up for
work on their own. It is owned and managed by the team while the
estimated work remaining is updated daily. It is the list of task that has
to be performed in Sprint
 Block List: It is a list of blocks and unmade decisions owned by scrum
master and updated daily
 Burndown chart: Burn-down chart represents overall progress of the
work in progress and work completed throughout the process. It
represents in a graph format the stories and features not completed

3. Ceremonies (Processes) in Scrum


 Sprint Planning: A sprint begins with the team importing stories from
the release backlog into the sprint backlog; it is hosted by scrum master.
The Testers estimate effort to test the various stories in the Sprint
Backlog.
 Daily Scrum: It is hosted by scrum master, it last about 15 minutes.
During Daily Scrum, the members will discuss the work completed the
previous day, the planned work for the next day and issues faced during
a sprint. During daily stand-up meeting team progress is tracked.
 Sprint Review/ Retrospective: It is also hosted by scrum master, it last
about 2-4 hours and discuss what the team has accomplished in the last
sprint and what lessons were learned.

Role of Tester in Scrum

There is no active role of Tester in the Scrum Process. Usually, testing is


carried out by a developer with Unit Test. While product owner is also
frequently involved in the testing process during each sprint. Some Scrum
projects do have dedicated test teams depending on the nature &
complexity of the project.

The next question is, what tester do in a scrum? Following note will answer

Testing Activities in Scrum


Testers do following activities during the various stages of Scrum-

Sprint Planning
 In sprint planning, a tester should pick a user-story from the product
backlog that should be tested.
 As a tester, he/she should decide how many hours (Effort Estimation) it
should take to finish testing for each of selected user stories.
 As a tester, he/she must know what sprint goals are.
 As a tester, contribute to the prioritizing process

Sprint

 Support developers in unit testing


 Test user-story when completed. Test execution is performed in a lab
where both tester and developer work hand in hand. Defect are logged
in Defect Management tool which are tracked on a daily basis. Defects
can be conferred and analyzed during the scrum meeting. Defects are
retested as soon as it is resolved and deployed for testing
 As a tester, he/she attends all daily standup meeting to speak up
 As a tester, he/ she can bring any backlog item that cannot be
completed in the current sprint and put to the next sprint
 Tester is responsible for developing automation scripts. He schedules
automation testing with Continuous Integration (CI) system. Automation
receives the importance due to short delivery timelines. Test Automation
can be accomplished by utilizing various open source or paid tools
available in the market. This proves effective in ensuring that everything
that needs to be tested was covered. Sufficient Test coverage can be
achieved with a close communication with the team.

 Review CI automation results and send Reports to the stakeholders


 Executing non-functional testing for approved user stories
 Coordinate with customer and product owner to define acceptance
criteria for Acceptance Tests
 At the end of the sprint, the tester also does acceptance testing(UAT) in
some case and confirms testing completeness for the current sprint

Sprint Retrospective

 As a tester, he will figure out what went wrong and what went right in
the current sprint

 As a tester, he identifies lesson learned and best practices


Test Reporting
Scrum Test metrics reporting provides transparency and visibility to
stakeholders about the project. The metrics that are reported allow a team to
analyze their progress and plan their future strategy to improve the product.
There are two metrics that are frequently used to report.

Burn down chart: Each day, Scrum Master records the estimated remaining
work for the sprint. This is nothing but the Burn Down Chart. It is updated
daily.

A burndown chart gives a quick overview of the project progress, this chart
contains information like the total amount of work in the project that must be
completed, amount of work completed during each sprint and so on.

Velocity history graph: The velocity history graph predicts the velocity of the
team reached in each sprint. It is a bar graph and represents how teams
output has changed over time.

The additional metrics that may be useful are schedule burn, budget burn,
theme percent complete, stories completed - stories remaining and so on.

Do you have any tips or experiences to share for Scrum Testing? Do leave a
comment below-

Automation Testing Framework for


Agile/Scrum Methodology
Agile Automation Testing
Agile Automation Testing in software development is an approach of using
test automation in agile methodologies. The purpose of agile automation
testing is to make the software development process more effective and
efficient while maintaining the quality and time as well as resource
consumption. Thus, the implementation of such a process requires a lot of
coordination and collaboration between teams.

In the last few years, ever since the agile methodology came on board with its
founders shouting and willing to do away with the mundane and laborious
realities of the traditional waterfall model, the impact of the same can be also
felt when it comes to Automation Testing.

Automation in Waterfall Vs Automation in Agile


 In the realm of the traditional process of software testing life cycle,
Automation Testing is normally feasible when the application is stable,
steady and the requirement is involving with a real considerable amount
of time and in most cases involving a set of very skillful automation expert
resources as well as a considerable amount of set-up costs. The basic
purpose of Automation Testing is to reduce costs over a long time and to
ensure no new defects have been introduced as a result of existing test cases

Automation testing by the very nature of the technology is not


exploratory in nature since the main role of Automation Testing is saving time
and reducing costs. Automation Testing is not meant to come up with new and
innovative defects. Automation Testing aims at mostly confirmation of the
already existing.

How to automate in Agile Methodology


Now by its very definition agile methodology talks about doing away with
laborious and tedious documentation so that new and innovative ideas could
be implemented and people could interact freely with each other so that more
of these innovative and explorative ideas could be implemented.

Thus we could see a contradiction between the basic fundamental


philosophies of agile methodologies and Automation Testing.
Fundamental Points for Agile Test Automation
So we need to consider certain fundamental points here when it comes to
evaluating the use of agile methodologies with respect to the Automation
Testing methods and techniques. Thus we need to consider some
fundamental points like time taken for design and coding, validation of the
designed scripts with the existing test data and the adoption of the same for
testing (whether the tests are of functional or regression purposes) So the real
fact of all these events is that in order to perform all these facts, we need to
ensure that a considerable amount of time is required for these tasks and in
an agile environment where an average sprint takes an average 1-2 weeks to
complete and thus it is obviously too difficult to contemplate affording so much
time for automating scripts in such a way.

Another significant factor remains here that the type of changes in


requirements which come into picture when the agile methodology is at play.
The agile methodology by its own very definition is a sort of technique which is
very helpful for responding to quick customer induced change requirements
and which thus lends itself well to frequent changes during the overall
development of the application.

In contrast, automation testing is very useful when it comes to the more stable
and less frequent types of requirements. Thus by definition automation testing
does not lend itself well to various types of frequent changes in requirements
which comes alongside the adoption of any agile methodologies.

Agile Automation Tools


The selection of relevant automation tool is also a potentially very important
factor when it comes to the adoption of automation testing within the scope of
an overall agile methodology. Licensed automation tools, for example, impose
strict security access criterion to different types and levels of users when it
comes accessing various important resources belonging to that particular
testing automation framework.
In contrast agile methodology emphasizes upon mostly open collaboration
and open-ended interaction between team members and thus restrictive
policies which directly affects how the users would have a negative impact on
the overall cohesion within the team and thus may be leading into results
which are neither very helpful nor very conducive to the overall success of the
project

Therefore the primary importance of the process should be to ensure that in


order to obtain the quality delivery of automation test scripts within a stipulated
time as afforded by agile methodology; we need to choose our prospective
test cases which would be automated in a more nuanced way such that these
automated test scripts lend themselves well for future re-use as well as
ensuring that they can be prepared within the proper duration of the allotted
time (as required during the agile methodology process).

After consideration of all the above factors we thus can realize that even while
adopting agile methodologies, we need to bring into picture the types of tests
like for example regression tests (since even during agile testing there is a
considerable amount of testing work which is required to put into the job of
agile methodologies for ensuring better quality of the overall product)  

Now let us look at the most basic situations whereby automation testing can
be used and how we can adopt the same towards the realm of agile testing.
SAFe Methodology Tutorial: What is
Scaled Agile Framework
What is a Scaled Agile Framework (SAFe)?
Scaled Agile Framework (SAFe) is a freely available online knowledge base
that allows you to apply lean-agile practices at the enterprise level. It provides
a simple and lightweight experience for software development. It is a set of
organizations and workflow patterns intended to guide enterprises for scaling
lean and agile practices. It is divided into three segments which are Team,
Program and portfolio

SAFe was first developed in the field and was elaborated in Dean
Leffingwell's books and blog. Version 1.0 is the first official release in 2011.
The latest version is 4.6, was released in October 2018. It provides guidance
to work at enterprise Portfolio, Value Stream, Program, and Team levels.

Why to use Agile Framework


It is simpler and lighter in weight, yet it expands to handle the needs of large
value streams and complex system development. By implementing an Agile
Framework, you will have following benefits,
 Productivity increased by 20 - 50%
 Quality increased more than 50%
 Time to Market is faster than 30 -75%
 Increased employee engagement and job satisfaction.

The detailed framework diagram is available on the website. It shows all of the


key roles, Activities, deliverables, and flows. It also serves as a navigational
aid to the rest of the site.

The below image explains how agile process works. Epics are a large body of
work, which is further broken down into a number of smaller stories or sub-
epics. These sub-epics are allocated to the team as a story. Each team then
work on these stories or software features accordingly.
When to Use Scaled Agile Framework

 When a team is interested to implement an agile approach consistently


across larger, multi-team programs and portfolios.
 When multiple teams are running their own way of Agile implementation
but regularly facing obstacles, delays, and failures.
 When teams want to work independently.
 When you want to scale Agile across the organization but not sure what
new roles may be needed or what existing roles (i.e., management)
need to change and how.
 When you have attempted to scale the Agile across your organization
but struggling in alignment to achieve uniform or consistent strategy
across business departments from portfolio to program and team levels.
 When an organization needs to improve its product development lead
time and want to know how other companies have succeeded in scaling
Agile with SAFe.

How different than other Agile practices


Let's see how Scaled Agile framework is different from other agile practices,

 It's publicly available and free to use.


 Available in a highly approachable and usable form.
 It's lightweight, practically proven results and specific to level.
 It constantly/regularly modifies/maintains most commonly used agile
practices.
 Offers useful extensions to common agile practices.
 Grounds agile practices to an enterprise context.
 Offers complete picture of software development.
 Visibility or transparency is more on all the levels.
 Continues or regular feedback on quality and improvement.

Foundations of Scaled Agile Framework

Scaled Agile Framework(SAFe): It stands on the foundations of its

1. Lean-Agile Principles
2. Core Values,
3. Lean-Agile Leadership
4. Lean-Agile Mind-set,
5. Communities of Practice(Group of people who are constantly working
on SAFe practices)
6. Implementing 1-2-3

1. SAFe Lean-Agile Principles

These basic principles and values for SAFe must be understood, exhibited
and continued in order to get the desired results.
 Take an economic view
 Apply systems thinking
 Assume variability; preserve options
 Build incrementally with fast, integrated learning cycles
 Base milestones on an objective evaluation of working systems
 Visualize and limit WIP, reduce batch sizes and manage queue lengths
 Apply cadence, synchronize with cross-domain planning
 Unlock the intrinsic motivation of knowledge workers
 Decentralize decision-making

2. SAFe Agile Core Values

The SAFe agile is based on these four values.

Alignment:

 SAFe supports alignment.


 Alignment starts at,
o Strategic Themes in Portfolio Backlog and
o Moves down to Vision and Roadmap of Program Backlogs and
then
o Moves to the Team Backlogs.

Built-in Quality:

 It ensures that every incremental delivery reflects the quality standards.


 Quality is not "added later" is built in.
 Built-in quality is a prerequisite of Lean and its mandatory

Transparency:

 Transparency is the enabler for trust.


 SAFe helps the enterprise to achieve transparency at all levels-
Executives, Portfolio Managers, and other stakeholders.
 Everyone can see into the portfolio backlog/Kanban, program
backlogs/Kanban, and Team Backlog/Kanban.
 Each level has a clear understanding of the PI goals.
 Train Programs have visibility into the team's backlogs, as well other
program backlogs
 Teams and programs have visibility into business and architecture
Epics. They can see what might be headed their way.

Program Execution:

 SAFe places great focus on working systems and resultant business


outcomes.
 SAFe is not useful if teams can't execute and continuously deliver value.

3. Lean Agile Leaders:

The Lean-Agile Leaders are lifelong learners and teachers. It helps teams to
build better systems through understanding and exhibiting the Lean-Agile
SAFe Principles.

As an enabler for the teams, the ultimate responsibility is adoption, success


and ongoing improvement of Lean-Agile developments. For the change and
continuous improvement, leaders must be trained.

Leaders need to adopt a new style of leadership. One that truly empowers
and engages individuals and teams to reach their highest potential.

Principles of these Lean-Agile Leaders

 Lead the Change


 Know the Way; Emphasize Lifelong Learning
 Develop People
 Inspire and Align with Mission; Minimize Constraints
 Decentralize Decision-Making
 Unlock the Intrinsic Motivation of Knowledge Workers

4. Lean Agile Mind-Set:

Lean-Agile mindset is represented in two things:

1. The SAFe House of Lean


2. Agile Manifesto

The SAFe House of Lean:


SAFe is derived from Lean manufacturing principles and practices. Based on
these factors SAFe presents the "SAFe House of Lean". It is inspired by
"house" of lean Toyota.

The Goal of lean is unbeatable: To deliver maximum customer value in the


shortest lead time with the highest possible quality to customer

Below figure explains the Goal, Pillars, and Foundation of "SAFe House of
Lean."
Agile Manifesto
We are uncovering better ways of developing software by doing it and helping
others do it. Through this work we have come to value:

That' why , while there is a value in the items on the right, we value the items
on the left more.

Agile Manifesto

1. The highest priority is to satisfy the customer through continuous and


early delivery of valuable software.
2. Embrace the changing requirements, even late in development. Agile
processes harness change for the customer's benefit.
3. Deliver working software frequently, from a couple of weeks to a couple
of months, with a preference to the shorter timescale.
4. Developers and business people must work together daily throughout
the project.
5. Build projects around motivated individuals. Give them support and the
environment they need, and trust them to get the job done.
6. The most efficient method for communication with a development team
is a face-to-face conversation.
7. Working software is the primary measure of progress.
8. Agile processes promote sustainable development. The sponsors,
developers, and users should be able to maintain a constant pace
indefinitely.
9. Continuous attention to technical excellence and good design enhances
agility.
10. Simplicity--the art of maximizing the amount of work not done--is
essential.
11. The best architectures, requirements, and designs emerge from
self-organizing teams.
12. At regular intervals, the team reflects on how to become more
effective, then tunes and adjusts its behavior accordingly.

Different Levels in SAFE


There are two different types of SAFe implementation:

1. SAFe 4.0 implementation


2. SAFe 3.0 implementation

 In SAFe 4.0 implementation we have 4-Levels: Portfolio, Value


Stream, Program, and Team.
 In SAFe 3.0 implementation we have 3-Levels: Portfolio, Program,
and Team
 3-Level SAFe is for smaller implementations with 100 or fewer people.
Programs that do not require significant collaboration.
 4-Level SAFe is for solutions that typically require many hundreds of
practitioners to develop deploy and maintain software.

Team Level
Roles/Teams   Events   Artifacts

* Agile Team   * Sprint Planning   * Team Backlog

* Product Owner   * Backlog Grooming   * Non-Functional Requirements

* Scrum Master   * Daily Stand-Up   * Team PI Objectives


    * Execution   * Iterations

    * Sprint Demo   * Stories(Working Software)

    * Sprint Retrospective   * Sprint Goals

    * IP Sprints   * Built-In Quality

        * Spikes

        * Team Kanban

 All SAFe teams are part of one or other Agile Release Train (ART).
 SAFe teams are empowered, self-organizing, self-managing, cross-
functional teams
 Each team is equally responsible for defining, building and testing
stories from their Team Backlog in a fixed-length Iterations
 Teams plan and execute two-week time-boxed iterations in accordance
with agreed-to Iteration Goals.
 Teams will use ScrumXP/Team Kanban routine to deliver high-quality
systems to produce a System Demo on every two weeks.
 All different teams in the ART (Agile Release Trains) will create an
integrated and tested system. Stakeholders will evaluate and respond
with fast feedback
 They apply Built-in Quality practices.
 Each ScrumXP team will have 5-9 team members, which includes all
the roles necessary to build a quality incremental value in each Iteration.
 ScrumXP roles includes:
o Team(Dev+QA)
o Scrum Master
o Product Owner. Etc..
 SAFe divides the development timeline into a set of iterations within a PI
(Program Increment).
 PI duration is between 8 -12 weeks.
 The team will use stories to deliver the value. The Product Owner will
have content authority over their creation and acceptance of the stories.
 Stories contain Customer's requirements.
 Team Backlog includes user and enabler stories, which are identified
during PI planning. When the Product Management presents the
Roadmap, Vision, and Program Backlog.
 Identifying, elaborating, prioritizing, scheduling, implementing, testing,
and accepting the stories are the primary requirements of management
work in team level.
 Each iteration provides:
o A valuable increment of new functionality
o Accomplish via constantly repeating pattern
o Plan the iteration
o Commit to some functionality
o Execute the iteration by building and testing Stories
o Demo the new functionality
o Retrospective
o Repeat for the next iteration
 Teams also support the System Demo at the end of each Iteration.
which is the critical integration point for the ART.
 Larger Value Streams will have multiple ARTs.
 The Innovation and Planning (IP) Iterations leverage the teams with an
opportunity for innovation and exploration.

Program Level
Roles/Teams   Events   Artifacts

* DevOps   * PI(Program Increment)   * Vision


Planning

* System Team   * System Demos   * Roadmap

* Release Management   * Inspect and Adopt   * Metrics


Workshop

* Product Management   * Architectural Runway   * Milestones

* UEX Architect   * Release Any Time   * Releases

* Release Train   * Agile Release Train   * Program Epics


Engineer(RTE)

* System   * Release   * Program Kanban


Architect/Engineer

* Business Owners       * Program Backlog

* Lean-Agile Leaders       * Non-Functional


Requirements

* Communities of Practice       * Weighted Shortest Job


First (WSJF)

* Shared Services       * Program PI Objectives

* Customer       * Feature

        * Enabler

        * Solution

        * Value Stream Coordination


 In Program level, Value of SAFe is delivered by long-lived Agile Release
Trains (ART). Iteration is for team and train is for the program.
 Agile Release Trains (ART) is the primary vehicle for value delivery at
the program level. It delivers a value stream to the organization.
 The Program Increments (PIs) duration is of 8 to 12 weeks.
 ART is of 5 - 12 Agile Teams (~50 – 125+ people) which includes all the
roles and infrastructure needed to deliver fully tested, working, system-
level software.
 Each PI is a multiple-Iteration time box. During which a significant,
valuable increment of the system is developed and delivered.
 In each PI a "demo" and "Inspect and adapt" sessions will happen, and
Planning begins for the next PSI.
 At the Program level, SAFe emphasis on the principle of alignment. This
is because multiple agile team efforts are integrated to create customer
value.
 SAFe artifact hierarchy is Epics->features->user stories.
 At a Program level, Product Manager/Program Manager has content
authority. He defines and prioritizes the program backlog.
 Program backlog is a prioritized list of features.
 At the program level, features can be originated, or they can derive from
epics defined at the portfolio level.
 Features decompose to user stories and flow into team-level backlogs.
 Product Manager or the Release Train Engineer role could be handled
by the Program Manager/Senior Project Manager
 System Architect role at the program level is to collaborate day to day
work with the teams. It ensures that non-functional requirements are
met. Also, they work with the enterprise architect at the portfolio level to
make sure there is sufficient architectural runway to support upcoming
user and business needs.
 Interface design, user experience guidelines and design elements for
the teams are provided by UX Designers.
 Chief-Scrum Master role is played by 'Release Train Engineer'.
 Various team (from marketing, development, quality, operations, and
deployment) forms 'Release Management Team'. They will approve
routine releases of quality solutions to customers.
 Deployment of software into customer environments and successful
delivery is taken care of by DevOps team.
Portfolio Level
Roles/Teams   Events   Artifacts

* Enterprise Architect   * Strategic Investment   * Strategic Themes


Planning

* Program Portfolio   * Kanban Portfolio(Epic)   * Enterprise


Mgmt Planning

* Epic Owners       * Portfolio Backlog

        * Portfolio Kanban

        * Non-Functional
Requirements

        * Epic and Enabler

        * Value Stream

        * Budgets(CapEx and
OpEx)

 Highest level of interest/ concern /involvement/ in SAFe is SAFe


Portfolio
 The portfolio provides the basic blocks for organizing the Lean-Agile
Enterprise flow of value via one or more Value Streams.
 The portfolio helps to develop systems and solutions which are
described in strategic themes (links a SAFe portfolio to the changing
business strategy of an enterprise).
 To meet strategic objectives, portfolio level encapsulates these
elements. It provides basic budgeting and other governance
mechanisms. This way it assures that the investment in the value
streams provides the returns necessary for the enterprise.
 A portfolio is connected to business bi-directionally:
o In order to guide the Portfolio to the larger changing business
objectives, it provides strategic themes.
o Another direction indicates the constant flow of portfolio values.
 Program Portfolio Management acts as stakeholders, and they are
accountable to deliver the business results.
 SAFe Portfolio Level contains people, processes and necessary build
systems and solutions that an enterprise needs to meet its strategic
objectives.
 Value Streams are the primary objectives in Portfolio, with which
funding for the people and other resources required to build the
Solutions.
 Important key concepts used here are:
o Connection to the Enterprise,
o Program Portfolio Management,
o Managing the Flow of Portfolio Epics.

Value Stream Level


Roles/Teams   Events   Artifacts

* DevOps   * Pre and Post PI(Program   * Vision


Increment) Planning

* System Team   * Solution Demos   * Roadmap

* Release Management   * Inspect and Adopt   * Metrics


Workshop

* Solution Management   * Agile Release Train   * Milestones

* UEX Architect       * Releases

* Value Stream       *Value Stream Epics


Engineer(RTE)

* Solution       * Value Stream Kanban


Architect/Engineer

* Shared Services       * Value Stream Backlog

* Customer       * Non-Functional
Requirements

* Supplier       * Weighted Shortest Job


First (WSJF)

        * Value Stream PI
Objectives

        * Capability

        * Enabler

        * Solution Context

        * Value Stream
Coordination

        * Economic Framework

        * Solution Intent

        * MBSE
        * Set Based

        * Agile Architecture

 The Value Stream Level is optional in SAFe.


 Value Stream Level is new in SAFe 4.0.
 The Value Stream Level is intended/designed for Enterprises
/builders/organization who are:

1. Large in size
2. Independent
3. Have complex solutions
4. Their solutions typically require multiple ARTs
5. They have Suppliers contribution.
6. They face the largest systems challenges
7. For cyber-physical systems
8. For software, hardware, electrical and electronics, optics, mechanics,
fluidics and more.

 Building this kind of systems often takes hundreds, even thousands of


practitioners, external and internal suppliers.
 If the systems are mission crucial. Failure of the Solution, or even a
subsystem, has unacceptable economic and social consequences.
 If the Enterprises can be built with a few hundred practitioners, it may
not need the constructs of this level. In that case, they can use from the
'collapsed view' which is 3-level SAFe.
 Building value stream solutions in a Lean-Agile pattern requires
additional artifacts, coordination, and constructs. So this level contains
an Economic Framework to provide financial boundaries for Value
Stream
 It supports cadence and synchronization for multiple ARTs and
Suppliers. It includes Pre-and Post-PI Planning meetings and Solution
Demo.
 It gives additional roles which are: Value Stream Engineer, Solution
Architect/Engineering, and Solution Management.

Summary:
 SAFe is an industry-proven, value-focused method for scaling Agile at
the Enterprise level.
 It answers the questions like "How do we plan?", "How do we budget?",
and "How do we become cross-functional in architecture and DevOps?"
 SAFe helps large organization teams to meet an organization's strategic
goals, not just individual project goals.
 The framework offers the ability to maintain and create a centralized
strategy to deliver value.
 The SAFe model has three/four levels that centralize the strategic
themes of an organization.
 Centralized strategy, combined with the de-centralized agile
development execution.

Web Application Testing: 8 Step Guide to


Website Testing
Before we pen down more details on the type of web testing, lets quickly define Web Testing.

What is Web Testing?


WEB TESTING, or website testing is checking your web application or website for potential
bugs before its made live and is accessible to general public. Web Testing checks for
functionality, usability, security, compatibility, performance of the web application or website.

During this stage issues such as that of web application security, the functioning of the site, its
access to handicapped as well as regular users and its ability to handle traffic is checked.

How to test Web Application


In Software Engineering, the following testing types/technique may be performed depending on
your web testing requirements.

1. Functionality Testing of a Website


Functionality Testing of a Website is a process that includes several testing
parameters like user interface, APIs, database testing, security testing, client
and server testing and basic website functionalities. Functional testing is very
convenient and it allows users to perform both manual and automated testing.
It is performed to test the functionalities of each feature on the website.
Web based Testing Activities includes:

Test all links in your webpages are working correctly and make sure there
are no broken links. Links to be checked will include -

 Outgoing links
 Internal links
 Anchor Links
 MailTo Links

Test Forms are working as expected. This will include-

 Scripting checks on the form are working as expected. For example- if a


user does not fill a mandatory field in a form an error message is shown.
 Check default values are being populated
 Once submitted, the data in the forms is submitted to a live database or
is linked to a working email address
 Forms are optimally formatted for better readability

Test Cookies are working as expected. Cookies are small files used by


websites to primarily remember active user sessions so you do not need to
log in every time you visit a website. Cookie Testing will include

 Testing cookies (sessions) are deleted either when cache is cleared or


when they reach their expiry.
 Delete cookies (sessions) and test that login credentials are asked for
when you next visit the site.

Test HTML and CSS to ensure that search engines can crawl your site easily.
This will include

 Checking for Syntax Errors


 Readable Color Schemas
 Standard Compliance. Ensure standards such W3C, OASIS, IETF, ISO,
ECMA, or WS-I are followed.

Test business workflow- This will include

 Testing your end - to - end workflow/ business scenarios which takes


the user through a series of webpages to complete.
 Test negative scenarios as well, such that when a user executes an
unexpected step, appropriate error message or help is shown in your
web application.

2. Usability testing:
Usability Testing has now become a vital part of any web based project. It can
be carried out by testers like you or a small focus group similar to the
target audience of the web application.

Test the site Navigation:

 Menus, buttons or Links to different pages on your site should be easily


visible and consistent on all webpages

Test the Content:

 Content should be legible with no spelling or grammatical errors.


 Images if present should contain an "alt" text

3.Interface Testing:
Three areas to be tested here are - Application, Web and Database Server

 Application: Test requests are sent correctly to the Database and


output at the client side is displayed correctly. Errors if any must be
caught by the application and must be only shown to the administrator
and not the end user.
 Web Server: Test Web server is handling all application requests
without any service denial.
 Database Server: Make sure queries sent to the database give
expected results.

Test system response when connection between the three


layers (Application, Web and Database) cannot be established and
appropriate message is shown to the end user.

4. Database Testing:
Database is one critical component of your web application and stress must
be laid to test it thoroughly. Testing activities will include-
 Test if any errors are shown while executing queries
 Data Integrity is maintained while creating, updating or deleting data in
database.
 Check response time of queries and fine tune them if necessary.
 Test data retrieved from your database is shown accurately in your web
application

5. Compatibility testing.
Compatibility tests ensures that your web application displays correctly across
different devices. This would include-

Browser Compatibility Test: Same website in different browsers will display


differently. You need to test if your web application is being displayed correctly
across browsers, JavaScript, AJAX and authentication is working fine. You
may also check for Mobile Browser Compatibility.

The rendering of web elements like buttons, text fields etc. changes with
change in Operating System. Make sure your website works fine for various
combination of Operating systems such as Windows, Linux, Mac and
Browsers such as Firefox, Internet Explorer, Safari etc.

6. Performance Testing:
This will ensure your site works under all loads. Software Testing activities will
include but not limited to -

 Website application response times at different connection speeds


 Load test your web application to determine its behavior under normal
and peak loads
 Stress test your web site to determine its break point when pushed to
beyond normal loads at peak time.
 Test if a crash occurs due to peak load, how does the site recover from
such an event
 Make sure optimization techniques like gzip compression, browser and
server side cache enabled to reduce load times
7. Security testing:
Security Testing is vital for e-commerce website that store sensitive customer
information like credit cards. Testing Activities will include-

 Test unauthorized access to secure pages should not be permitted


 Restricted files should not be downloadable without appropriate access
 Check sessions are automatically killed after prolonged user inactivity
 On use of SSL certificates, website should re-direct to encrypted SSL
pages.

8. Crowd Testing:
You will select a large number of people (crowd) to execute tests which
otherwise would have been executed a select group of people in the
company. Crowdsourced testing is an interesting and upcoming concept and
helps unravel many a unnoticed defects.

This concludes the tutorial. It includes almost all testing types applicable to
your web application.

As a Web-tester its important to note that web testing is quite an arduous


process and you are bound to come across many obstacles. One of the major
problems you will face is of course deadline pressure. Everything is always
needed yesterday! The number of times the code will need changing is also
taxing. Make sure you plan your work and know clearly what is expected of
you. Its best define all the tasks involved in your web testing and then create
a work chart for accurate estimates and planning.

Web Application Testing Checklist:


Example Test Cases for Website
While testing the web applications, one should consider the below mentioned
template. The below mentioned checklist is almost applicable for all types of
web applications depending on the business requirements. Usability
Testing
What is Usability Testing?
 Usability testing is nothing but the User-friendliness check.
 In Usability testing, the application flow is tested so that a new user can
understand the application easily.
 Basically, system navigation is checked in Usability testing.

What is the purpose or Goal of Usability testing?

A Usability test establishes the ease of use and effectiveness of a product


using a standard Usability test practices.

Example Usability Test Cases

 Web page content should be correct without any spelling or grammatical


errors
 All fonts should be same as per the requirements.
 All the text should be properly aligned.
 All the error messages should be correct without any spelling or
grammatical errors and the error message should match with the field
label.
 Tool tip text should be there for every field.
 All the fields should be properly aligned.
 Enough space should be provided between field labels, columns, rows,
and error messages.
 All the buttons should be in a standard format and size.
 Home link should be there on every single page.
 Disabled fields should be grayed out.
 Check for broken links and images.
 Confirmation message should be displayed for any kind of update and
delete operation.
 Check the site on different resolutions (640 x 480, 600x800 etc.?)
 Check the end user can run the system without frustration.
 Check the tab should work properly.
 Scroll bar should appear only if required.
 If there is an error message on submit, the information filled by the user
should be there.
 Title should display on each web page
 All fields (Textbox, dropdown, radio button, etc) and buttons should be
accessible by keyboard shortcuts and the user should be able to
perform all operations by using keyboard.
 Check if the dropdown data is not truncated due to the field size. Also,
check whether the data is hardcoded or managed via administrator.

Functional Testing:
What is Functional Testing?

 Testing the features and operational behavior of a product to ensure


they correspond to its specifications.
 Testing that ignores the internal mechanism of a system or component
and focuses solely on the outputs generated in response to selected
inputs and execution conditions.

What is the purpose or Goal of Functional testing?

 The goal of Functional Testing is to verify whether your product meets


the intended functional specifications mentioned in your development
documentation.

Example Functional Test Scenarios:

 Test all the mandatory fields should be validated.


 Test the asterisk sign should display for all the mandatory fields.
 Test the system should not display the error message for optional fields.
 Test that leap years are validated correctly & do not cause
errors/miscalculations.
 Test the numeric fields should not accept the alphabets and proper error
message should display.
 Test for negative numbers if allowed for numeric fields.
 Test division by zero should be handled properly for calculations.
 Test the max length of every field to ensure the data is not truncated.
 Test the pop up message ("This field is limited to 500 characters")
should display if the data reaches the maximum size of the field.
 Test that a confirmation message should display for update and delete
operations.
 Test the amount values should display in currency format.
 Test all input fields for special characters.
 Test the timeout functionality.
 Test the Sorting functionality.
 Test the functionality of the buttons available
 Test the Privacy Policy & FAQ is clearly defined and should be available
for users.
 Test if any functionality fails the user gets redirected to the custom error
page.
 Test all the uploaded documents are opened properly.
 Test the user should be able to download the uploaded files.
 Test the email functionality of the system.
 Test the Java script is properly working in different browsers (IE,
Firefox, Chrome, safari and Opera).
 Test to see what happens if a user deletes cookies while in the site.
 Test to see what happens if a user deletes cookies after visiting a site.
 Test all the data inside combo/list box is arranged in chronological
order.

Compatibility Testing:
What is Compatibility testing?

 Compatibility testing is used to determine if your software is compatible


with other elements of a system with which it should operate, e.g.
Browsers, Operating Systems, or hardware.

What is the purpose or Goal of Compatibility testing?

 The purpose of Compatibility testing is to evaluate how well software


performs in a particular browser, Operating Systems, hardware or
software.

Sample Compatibility Test Scenarios:

 Test the website in different browsers (IE, Firefox, Chrome, Safari and
Opera) and ensure the website is displaying properly.
 Test the HTML version being used is compatible with appropriate
browser versions.
 Test the images display correctly in different browsers.
 Test the fonts are usable in different browsers.
 Test the java script code is usable in different browsers.
 Test the Animated GIF's across different browsers.
Database Testing:
What is Database Testing?

 In Database testing backend records are tested which have been


inserted through the web or desktop applications. The data which is
displaying in the web application should match with the data stored in
the Database.

To perform the Database testing, the tester should be aware of the below
mentioned points:

 The tester should understand the functional requirements, business


logic, application flow and database design thoroughly.
 The tester should figure out the tables, triggers, store procedures, views
and cursors used for the application.
 The tester should understand the logic of the triggers, store procedures,
views and cursors created.
 The tester should figure out the tables which get affected when insert
update and delete (DML) operations are performed through the web or
desktop applications.

With the help of the above mentioned points, the tester can easily write
the test scenarios for Database testing.

Example Test Cases for Database Testing:

 Verify the database name: The database name should match with the
specifications.
 Verify the Tables, columns, column types and defaults: All things should
match with the specifications.
 Verify whether the column allows a null or not.
 Verify the Primary and foreign key of each table.
 Verify the Stored Procedure:
 Test whether the Stored procedure is installed or not.
 Verify the Stored procedure name
 Verify the parameter names, types and number of parameters.
 Test the parameters if they are required or not.
 Test the stored procedure by deleting some parameters
 Test when the output is zero, the zero records should be affected.
 Test the stored procedure by writing simple SQL queries.
 Test whether the stored procedure returns the values
 Test the stored procedure with sample input data.
 Verify the behavior of each flag in the table.
 Verify the data gets properly saved into the database after each page
submission.
 Verify the data if the DML (Update, delete and insert) operations are
performed.
 Check the length of every field: The field length in the back end and
front end must be same.
 Verify the database names of QA, UAT and production. The names
should be unique.
 Verify the encrypted data in the database.
 Verify the database size. Also test the response time of each query
executed.
 Verify the data displayed on the front end and make sure it is same in
the back end.
 Verify the data validity by inserting the invalid data in the database.
 Verify the Triggers.

What is Security Testing?


Security Testing involves the test to identify any flaws and gaps from a
security point of view.

Sample Test Scenarios for Security Testing:

 Verify the web page which contains important data like password, credit
card numbers, secret answers for security question etc should be
submitted via HTTPS (SSL).
 Verify the important information like password, credit card numbers etc
should display in encrypted format.
 Verify password rules are implemented on all authentication pages like
Registration, forgot password, change password.
 Verify if the password is changed the user should not be able to login
with the old password.
 Verify the error messages should not display any important information.
 Verify if the user is logged out from the system or user session was
expired, the user should not be able to navigate the site.
 Verify to access the secured and non-secured web pages directly
without login.
 Verify the “View Source code” option is disabled and should not be
visible to the user.
 Verify the user account gets locked out if the user is entering the wrong
password several times.
 Verify the cookies should not store passwords.
 Verify if, any functionality is not working, the system should not display
any application, server, or database information. Instead, it should
display the custom error page.
 Verify the SQL injection attacks.
 Verify the user roles and their rights. For Example, the requestor should
not be able to access the admin page.
 Verify the important operations are written in log files, and that
information should be traceable.
 Verify the session values are in an encrypted format in the address bar.
 Verify the cookie information is stored in encrypted format.
 Verify the application for Brute Force Attacks

What is Performance Testing?


Performance Testing is conducted to evaluate the compliance of a system or
component with specified performance requirements.

General Test scenarios:

 To determine the performance, stability and scalability of an application


under different load conditions.
 To determine if the current architecture can support the application at
peak user levels.
 To determine which configuration sizing provides the best performance
level.
 To identify application and infrastructure bottlenecks.
 To determine if the new version of the software adversely had an impact
on response time.
 To evaluate product and/or hardware to determine if it can handle
projected load volumes.

How to do Performance testing? By Manual Testing or by Automation


Practically it is not possible to do the Performance Testing manually because
of some drawbacks like:

 More number of resources will be required.


 Simultaneous actions are not possible.
 Proper system monitoring is not available.
 Not easy to perform the repetitive task.

Hence to overcome the above problems we should use Performance Testing


tool. Below is the list of some popular testing tools.

 Apache JMeter
 Load Runner
 Borland Silk Performer.
 Rational Performance Tester
 WAPT
 NEO LOAD

Banking Domain Application Testing:


Sample Test Cases
he BFSI (Banking, Financial services and Insurance) sector is the biggest
consumer of IT services. Banking Applications directly deal with confidential
financial data. It is mandatory that all the activities performed by banking
software run smoothly and without any error. Banking software perform
various functions like transferring and depositing fund, balance inquiry,
transaction history, withdrawal and so on. Testing banking application assures
that these activities are not only executed well but also remain protected from
hackers.

What is Domain in Testing?


Domain in Testing is nothing but the industry for which the software testing
project is created. When we talk about software projects or development, this
term is often referred to. For example, Insurance domain, Banking domain,
Retail Domain, Telecom Domain, etc.
Usually, while developing any specific domain project, domain expert help is
sought out. Domain expert are master of the subject, and he may know the
inside-out of the product or application.

Why Domain Knowledge Matters?


Domain knowledge is quintessential for testing any software product, and it
has its own benefits like

Banking Domain Knowledge - Introduction


Banking domain concepts are huge, and basically it is sub-characterized into
two sectors

1. Traditional banking sector


2. Service based banking sector

Below is the table of the services these two sub-sectors of banking


encompass

Traditional banking sector  Core banking


 Corporate banking
 Retail banking
Service based banking sector  Core
 Corporate
 Retail
 Loan
 Trade finance
 Private banking
 Consumer finance
 Islamic banking
 Customer delivery channels/Front end delivery

Based on the scope of your project you may need to test one or all of the
above service offerings. Before you begin testing, ensure you have enough
background on the service being tested.

Characteristics of a Banking Application


Before you begin testing, it's important to note the standard features expected
of any banking application. So that, you can gear your test efforts to achieve
these characteristics.

A standard banking application should meet all these characteristics as


mentioned below.

 It should support thousands of concurrent user sessions


 A banking application should integrate with other numerous applications
like trading accounts, Bill pay utility, credit cards, etc.
 It should process fast and secure transactions
 It should include massive storage system.
 To troubleshoot customer issues, it should have high auditing capability
 It should handle complex business workflows
 Need to support users on multiple platforms (Mac, Linux, Unix,
Windows)
 It should support users from multiple locations
 It should support multi-lingual users
 It should support users on various payment systems (VISA, AMEX,
MasterCard)
 It should support multiple service sectors (Loans, Retail banking etc.)
 Foolproof disaster management mechanism
Test Phases in Testing Banking Applications
For testing banking applications, different stages of testing include

 Requirement Analysis: It is done by business analyst; requirements


for a particular banking application are gathered and documented
 Requirement Review: Quality analysts, business analysts, and
development leads are involved in this task. The requirement gathering
document is reviewed at this stage, and cross-checked to ensure that it
does not affect the workflow
 Business Requirements Documentation: Business requirements
documents are prepared by quality analysts in which all reviewed
business requirements are covered
 Database Testing: It is the most important part of bank application
testing. This testing is done to ensure data integrity, data loading, data
migration, stored procedures, and functions validation, rules testing, etc.
 Integration Testing: Under Integration Testing all components that are
developed are integrated and validated
 Functional Testing: The usual software testing activities like Test
Case preparation, test case review and test case execution is done
during this phase
 Security Testing: It ensures that the software does not have any
security flaws. During test preparation, QA team needs to include both
negative as well as positive test scenarios so as to break into the
system and report it before any unauthorized individual access it. While
to prevent from hacking, the bank should also implement a multi-layer of
access validation like a one-time password. For Security Testing,
automation tools like IBM AppScan and HPWebInspect are used while
for Manual Testing tools like Proxy Sniffer, Paros proxy, HTTP watch,
etc. are used
 Usability Testing: It ensures that differently able people should be able
to use the system as normal user. For example, ATM with hearing and
Braille facility for disabled
 User Acceptance Testing: It is the final stage of testing done by the
end users to ensure the compliance of the application with the real
world scenario.
Sample Test Case for Net Banking Login Application
Security is prime for any banking application. Therefore, during test
preparation, QA team should include both negative and positive test scenarios
in order to sneak into the system and report for any vulnerabilities before any
unauthorized individual get access to it. It not only involves writing negative
test cases but may also include destructive testing.

Following are generic test cases to check any banking application

Sample test cases

For Admin  Verify Admin login with valid and Invalid data
 Verify admin login without data
 Verify all admin home links
 Verify admin change password with valid and invalid data
 Verify admin change password without data
 Verify admin change password with existing data
 Verify admin logout

For new Branch  Create a new branch with valid and invalid data
 Create a new branch without data
 Create a new branch with existing branch data
 Verify reset and cancel option
 Update branch with valid and invalid data
 Update branch without data
 Update branch with existing branch data
 Verify cancel option
 Verify branch deletion with and without dependencies
 Verify branch search option

For New Role  Create a new role with valid and invalid data
 Create a new role without data
 Verify new role with existing data
 verify role description and role types
 Verify cancel and reset option
 Verify role deletion with and without dependency
 verify links in role details page
For customer & Visitors  Verify all visitor or customer links
 Verify customers login with valid and invalid data
 Verify customers login without data
 Verify banker's login without data
 Verify banker's login with valid or invalid data

For New users  Create a new user with valid and invalid data
 Create a new user without data
 Create a new user with existing branch data
 Verify cancel and reset option
 Update user with valid and invalid data
 Update user with existing data
 Verify cancel option
 Verify deletion of the user

Challenges in testing Banking domain & their


Mitigation
Challenges tester might face during testing banking domain are

Challenge Mitigation

 Getting access to production data and  Ensure that test data meets regulatory
replicating it as test data, for testing is compliances requirements and guidelines
challenging  Maintain the data confidentiality by
following techniques like data masking,
synthetic test data, testing system
integration, etc.

 The biggest challenge in testing banking  Ensure Data Migration Testing is


system is during the migration of the complete
system from the old system to the new  Ensure Regression Test cases are
system like testing of all the routines, executed on old and new systems, and
procedures and plans. Also how the data the results match.
will be fetched, uploaded and transferred
to the new system after migration
 There may be the cases where  The test should participate in the project
requirements are not documented well right from Requirement Analysis phases
and may lead to functional gaps in test and should actively review the Business
plan Requirements
 Many non-functional requirements are
not fully documented, and testers do not
know whether to test it or not

 The most important point is to check  Compliance or Regulatory Policies testing


whether the said system follows the must be done
desired policies and procedures

 The scope and the timelines increases as  Ensure Time budget for Integration
banking application are integrated with Testing is accounted if your banking
other application like internet application has many external interfaces
or Mobile banking

Summary
Banking domain is the most vulnerable area for cyber-theft, and safeguarding
the software requires precise testing. This tutorial gives a clear idea of what it
takes for banking domain testing and how important it is. One must
understand that -

 Majority of banking software are developed on Mainframe and Unix


 Testing helps to lessen possible glitches encounter during software
development
 Proper testing and compliance to industry standards, save companies
from penalties
 Good practices help develop good results, reputation and more
business for companies
 Both manual and automated testing have respective merits and usability

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy