Testing 3
Testing 3
Testing 3
Example:
Input condition is valid between 1 to 10
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:
1 to 10 and 20 to 30
--- to 0 (invalid)
1 to 10 (valid)
11 to 19 (invalid)
20 to 30 (valid)
31 to --- (invalid)
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:
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.
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
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.
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.
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.
Submit
Order Pizza:
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.
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.
That means results for values in partitions 0-5, 6-10, 11-14 should be
equivalent
Submit
Enter Password:
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
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.
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.
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
Enter correct username and correct password and click on login, and
the expected result will be the user should be navigated to homepage
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
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.
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
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
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.
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.
4) Actions that result from a transition (an error message or being given the
cash.)
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.
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.
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.
S1) Start S5 S2
S2) 1st attempt S5 S3
S3) 2nd attempt S5 S4
S4) 3rd attempt S5 S6
S5) Access Granted - -
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.
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.
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.
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.
2 S: Validate Password
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.
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
Here make a mention of the overall objective that you plan to achive with your
manual testing and automation testing.
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
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
Here you define the criterias that will deem your testing complete.
3) Test Deliverables
Here mention all the Test Artifacts that will be delivered during different
phases of the testing lifecycle.
5) Terms/Acronyms
Make a mention of any terms or acronyms used in the project
TERM/ACRONYM DEFINITION
API Application Program Interface
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
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
Edit Account Manager Manager: A manager can add a edit account details
for an existing account
User Interfaces
Hardware Interfaces
Software Interfaces
Database logical
Communications Interfaces
Website Security and Performance
No Member Tasks
.
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
2 Test Methodology
2.1 Overview
2.2 Test Levels
In the project Guru99 Bank, there're 3 types of testing should be conducted.
3 Test Deliverables
Test deliverables are provided as below
- Test Data
Test Results/reports
Defect Report
Installation/ Test procedures guidelines
Release notes
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
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
System Admins,
Developers
Testers
Sometimes users or techies with an affinity for testing.
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.
Bug Reporting
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.
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.
1 Check whether required If this is not the case, analyze the supply time!
equipment for testing 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.
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.
Besides these, there are a few more questions to answer before setting up the
test environment.
Ineffective planning for resource usage can affect the actual output.
Also, it may lead to conflict between teams.
2. Remote environment
Summary:
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
This training video describes the various stages in a bug aka defect life cycle
and its importance with the help of an example
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.
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:
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:
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:
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
6) 21
21 is a sophisticated, self-learning test automation and analytics platform for
iOS and Android applications.
Features:
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
Features include:
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:
Features:
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:
Features:
Download Link: https://applitools.com/users/register
15) TestComplete:
Features:
Download Link: https://support.smartbear.com/downloads/testcomplete/
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
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:
Download Link: http://www.browsera.com/web_sites
18) CrossBrowser Testing:
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:
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:
Download Link: https://saucelabs.com/signup/trial
21) Browsershots:
Features:
Download link: http://browsershots.org/
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:
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:
Download Link: https://www.loadtestingtool.com/download.shtml
Features:
Download Link: https://www.loadui.org/downloads/download-loadui-pro.html
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:
Features:
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:
Download link: https://loadfocus.com/
32) BlazeMeter:
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:
Download Link: https://saucelabs.com/signup/trial
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:
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:
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:
Features:
Download Link: https://bugnet.codeplex.com/releases
Features:
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:
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:
Download Link: http://appium.io/
42) Espresso:
Features:
Download link: https://developer.android.com/training/testing/espresso/
43) Perfecto:
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:
Features:
Download Link: https://experitest.com
45) Robotium:
Features:
Downloadlink: https://robotium.com/pages/free-trial
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:
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:
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:
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:
Download link: https://www.tricentis.com/automated-software-testing-tool-
trial/
50) NetSparker:
Features:
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:
Download Link: https://github.com/zaproxy/zaproxy/wiki/Downloads
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/
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:
Download Link: https://jigsaw.w3.org/css-validator/DOWNLOAD.html
Features:
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.
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:
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. Time Boxing
2. MoSCoW Rules
3. Prototyping
1. Pre-project
2. Feasibility Study
3. Business Study
4. Functional Model Iteration
5. Design and build Iteration
6. Implementation
7. Post-project
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
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
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
(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
c) Outline the key requirements and use cases that will drive the design trade-
offs
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 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
3. Pair testing
1. Usability Testing
2. Exploratory Testing
4. Collaborative testing
3. Infrastructure 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
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
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.
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
Has right to do
everything within the
He/She is responsible for the He/She shields team from
boundaries of the
profitability of the product external interferences
project to meet the
sprint goal
Product Owner Scrum Master The Team
Invites to the daily scrum,
He/She can accept or reject work Actively participate in
sprint review and planning
item result daily ceremonies
meetings
2. Scrum Artifacts
The next question is, what tester do in a scrum? Following note will answer
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
Sprint Retrospective
As a tester, he will figure out what went wrong and what went right in
the current sprint
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-
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.
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.
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.
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
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
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
Alignment:
Built-in Quality:
Transparency:
Program Execution:
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.
Leaders need to adopt a new style of leadership. One that truly empowers
and engages individuals and teams to reach their highest potential.
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
Team Level
Roles/Teams Events Artifacts
* 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
* Customer * Feature
* Enabler
* Solution
* Portfolio Kanban
* Non-Functional
Requirements
* Value Stream
* Budgets(CapEx and
OpEx)
* Customer * Non-Functional
Requirements
* Value Stream PI
Objectives
* Capability
* Enabler
* Solution Context
* Value Stream
Coordination
* Economic Framework
* Solution Intent
* MBSE
* Set Based
* Agile Architecture
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.
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.
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.
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 HTML and CSS to ensure that search engines can crawl your site easily.
This will include
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:
Test the Content:
3.Interface Testing:
Three areas to be tested here are - Application, Web and Database Server
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-
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 -
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.
Functional Testing:
What is Functional Testing?
Compatibility Testing:
What is Compatibility testing?
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?
To perform the Database testing, the tester should be aware of the below
mentioned points:
With the help of the above mentioned points, the tester can easily write
the test scenarios 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.
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
Apache JMeter
Load Runner
Borland Silk Performer.
Rational Performance Tester
WAPT
NEO LOAD
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.
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
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 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 -
Software reliability
Software quality
System Assurance
Optimum performance and capacity utilization
Sr.
Type of Testing Testing Process
#
Session Expiration
3 Session Management Session storage
Sr.
Type of Testing Testing Process
#
Non-intuitive design
Poor site navigation
4 Usability Catalog navigation
Lack of help-support
Transaction Integrity
Transactions Throughput
8
Auditing
Language support
Language display
10 Internationalization Cultural sensitivity
Regional Accounting
Scalability analysis
Login capability
Penetration and access control
Insecure information transmission
14 Login and Security Web attacks
Computer viruses
Digital signatures
Throughput
o Request per second
o Transactions per minute
o Executions per click
Response Time
o Duration of a task
o Seconds per click
o Page Load
o DNS Lookup
o Length of time between click and seeing page
Modern payment gateways also securely approve payments via debit cards,
electronic bank transfers, cash cards, reward points etc.
Types of Payment Gateway System
Hosted Payment Gateway:
Collect proper test data for the dummy credit card number for the
maestro, visa, master etc.
Collect payment gateway information like Google Wallet, Paypal or
else
Collect payment gateway document with error codes
Understand the session and parameters passed through application
and payment gateway
Understand and test the amount related information passed through
query string or variable or session
Along with payment gateway language check the language of the
application
Under the various settings of payment gateway like currency format,
subscriber data collected.
1 During the payment process try to change the payment gateway language
2 After successful payment, test all the necessary components, whether it is retrieved
or not
4 During the payment process check what happens if the session ends
7 Check the Database entries whether they store credit card details or not
8 During the payment process check error pages and security pages
9 Check settings of pop-up blocker, and see what happens if a pop-up blocker is on and
off
13 After successful transaction check if the payment gateway returns to your application
15 Unless you don't have an authorization receipt from the payment gateway, good
should not be shipped
16 Inform the owner for any transaction processed through e-mail. Encrypt the content
of the mail
19 Check if each listed payment option opens the respective payment option according
to specification
20 Verify whether the payment gateway defaults to the desired debit/credit card option
21 Verify the default option for debit card shows card selection drop down menu
Mainframe Testing
Mainframe Testing is a process of testing software applications and services
based on Mainframe Systems. The purpose of mainframe testing is to ensure
the performance, reliability and quality of software application or service by
verification and validation methods and check if it is ready to deploy.
While performing Mainframe testing, the tester only needs to know about the
navigations of the CICS screens. They are custom built for specific
applications. Any changes made to the code in COBOL, JCL, etc. tester does
not have to worry about the emulator set up on the machine. The changes
that work on one terminal emulator will work on others.
The Mainframe application (otherwise called job batch) is tested against
the test cases developed using requirements
Mainframe Testing is usually performed on the deployed code using
various data combinations set into the input file.
Applications that run on the mainframe can be accessed through
terminal emulator. The emulator is the only software that needs to be
installed on the client machine.
Mainframe Attributes
1. Virtual Storage
1. It is a technique that lets a processor simulate main storage that is larger than the actual
amount of real storage.
2. It is a technique to use memory effectively to store and execute various sized tasks.
3. It uses disk storage as an extension of real storage.
2. Multiprogramming
1. The computer executes more than one program at the same time. But at any given
moment only one program can have control of CPU.
2. It is a facility provided to make efficient use of the CPU.
3. Batch Processing
1. It is a technique by which any task is accomplished in units known as jobs.
2. A job may cause one or more programs to execute in a sequence.
3. The Job scheduler makes a decision about the order in which the jobs should be
executed. To maximize the average throughput, jobs are scheduled as per their priority
and class.
4. The necessary information for batch processing is provided through JCL (JOB CONTROL
LANGUAGE). JCL describes the batch job – programs, data and resources needed.
4. Time Sharing
1. In a time-sharing system, each user has access to the system through the terminal
device. Instead of submitting jobs that are scheduled for later execution, the user enters
commands that are processed immediately.
2. Hence this is called "Interactive Processing". It enables the user to interact directly with
the computer.
3. Time-share processing is known as "Foreground Processing" and the batch job
processing is known as "Background Processing."
5. Spooling
1. SPOOLing stands for Simultaneous Peripheral Operations Online.
2. SPOOL device is used to store the output of program/application. The spooled output is
directed to output devices like a printer (if needed).
3. It is a facility exploiting the advantage of buffering to make efficient use of the output
devices.
REXX
Excel
QTP
Online testing is done on the member enrollment screen. Just like a web page the database is
validated with data entered through the screens.
Offline enrollment can be paper enrollment or enrollment on a third party website. The Offline
data (also referred to as batch) will be entered into the company database through batch jobs.
An input flat file is prepared as per the prescribed data format and fed to the sequence of batch
jobs. So for mainframe application testing we can use the following approach.
o The first job in the line of batch jobs validates the data entered. Let say for example
special character, alphabets in number only fields, etc.
o The second job validates the consistency of data based on business conditions. For
example, a child enrollment should not contain dependent data, member zip code
(which is not available for service by the enrolled plan), etc.
o The third job modifies the data in the format that can be entered into the database. For
instance, deleting the plan name (database will store only plan ID, and insurance plan
name), appending date of entry, etc.
o The fourth job loads the data into the database.
Batch job testing is done on this process in two phases –
o Each job is validated separately, and the
o Integration between the jobs is validated by providing input flat file to the first job and
validating the database. (Intermediary results have to be validated for extra caution)
The main focus in this stage is to validate whether the code deployed is in the right test
environment. It also ensures that there are no critical issues with the code.
1. Batch Testing – This testing will be done by validating the test results on output files and data
changes done by the batch jobs under testing scope and recording of them.
2. Online Testing – This testing will be done on the front end of the mainframe application. Here
the application is tested for correct entry field like an insurance plan, interest on the plan, etc.
3. Online-Batch Integration testing – This testing will be done on the systems having batch
processes and online application. The data flow and interaction between the online screens and
the batch jobs is validated.
(Example for this type of testing – Consider an update on Plan details like increase of
interest rate. The change of interest is done on an update screen, and the balance details
on the affected accounts will be modified only by a nightly batch job. Testing in this case
will be done by validating the Plan details screen and the batch job run for updating all
the accounts).
4. Database Testing – The databases where the data from the mainframe application (IMS, IDMS,
DB2, VSAM/ISAM, Sequential datasets, GDGs) are validated for their layout and the data
storage.
Step 3): System Integration Testing
The primary purpose of this testing is to validate the functionality of the systems which are
interacting with the system under test.
These systems are not directly affected by the requirements. However, they use data from the
system under test. It is important to test the interface and different types of messages (like Job
Successful, Job Failed, Database updated, etc. ) that can possible flow between the systems and
the resulting actions taken by the individual systems.
1. Batch Testing
2. Online Testing
3. Online – Batch Integration Testing
Regression Testing is a common phase in any type of testing project. This testing in Mainframes
ensures that batch jobs and the online screens which do not directly interact with the system
under test (or do not come in the scope of requirements) are not affected by the current project
release.
In order to have effective regression testing, a particular set of test cases should be shortlisted
depending on their complexity and a regression bed (Test cases repository) should be created.
This set should be updated whenever there is a new functionality rolled out into the release.
This testing is done to identify the bottlenecks in high hit areas like front end data, upgrading
online databases and to project the scalability of the application.
This testing is done to evaluate how well the application is designed and developed to counter
anti-security attacks.
Two fold security testing should be done on the system – Mainframe security and Network
security.
1. Integrity
2. Confidentiality
3. Authorization
4. Authentication
5. Availability
Test Reporting – Defect should be logged if the actual result deviates from expected.
Test Reporting – Defect should be logged if the actual result deviates from expected.
There are many other commands used when required, but they are not that frequent.
Pre-requisites to start mainframe testing
Basic details needed for mainframe testing are:
1. Job
1. Do a job scan (Command – JOBSCAN) to check for errors before executing it.
2. CLASS parameter should be pointed to the test class.
3. Direct the job output into spool or a JHS or as required by using MSGCLASS parameter.
4. Reroute the email in the job to spool or a test mail ID.
5. Comment the FTP steps for initial testing and then point the job to a test server.
6. In case an IMR (Incident Management record) is generated in the job, just add comment
"TESTING PURPOSE" in the job or param card.
7. All the production libraries in the job should be changed and pointed to test libraries.
8. The job should not be left unattended.
9. To prevent the job to run in an infinite loop incase of any error, TIME parameter should
be added with specified time.
10. Save the output of the job including the spool. The spool can be saved using XDC.
2. File
1. Create test file of needed size only. Use GDGs(Generation Data Groups – Files with the
same name but with sequential version numbers–
MYLIB.LIB.TEST.G0001V00,MYLIB.LIB.TEST.G0002V00 so on ) when necessary to store
data into consecutive files with the same name.
2. The DISP (Disposition - describes the system to perform keep or delete the dataset after
normal or abnormal termination of the step or job) parameter for the files should be
coded correctly.
3. Ensure that all the files used for job execution are saved and closed properly to prevent
job to go into HOLD.
4. While testing using GDGs make sure that the right version is pointed at.
3. Database
1. While executing the job or online program, ensure that unintended data is not inserted
or updated or deleted.
2. Also, ensure that the correct DB2 region is used for testing.
4. Test cases
1. Always test for boundary conditions like – Empty file, First record processing, Last record
processing, etc.
2. Always include both positive and negative test conditions.
3. In case if standard procedures are used in the program like Check point restart, Abend
Modules, Control files, etc. include test cases to validate if the modules have been used
correctly.
5. Test Data
1. Test data setup should be done before the beginning of the testing.
2. Never modify the data on the test region without notifying. There may be other teams
working with same data, and their test would fail.
3. In case the production files are needed during the execution, proper authorization
should be obtained before copying or using them.
Best Practices
1. Incase of a Batch Job run, MAX CC 0 is an indicator that the job has run successfully. It does not
mean that the functionality is working fine. The job will run successfully even when the output is
empty or not as per the expectation. So it is always expected to check all the outputs before
declaring the job successful.
2. It is always a good practice to do a dry run of the job under test. Dry run is done with empty
input files. This process should be followed for the jobs which are impacted by the changes
made for the test cycle.
3. Before the test cycle begins the test job set up should be done well in advance. This will help in
finding out any JCL error in advance hence saving time during execution.
4. While accessing DB2 tables through SPUFI (Option on the emulator to access DB2 tables), always
set auto commit as "NO" in order to avoid accidental updates.
5. Test Data availability is the primary challenge in batch testing. Required data should be created
well in advance of the test cycle and should be checked for completeness.
6. Some online transactions and batch jobs may write data into MQs (Message Queue) for
transmitting data to other applications. If the data is not valid, it may disable/stop MQs, this will
affect the whole testing process. It is a good practice to check that MQs are working fine after
testing.
Incomplete / Unclear Requirements Testers should be involved in the SDLC from the requirements
phase onwards. This will help to verify if the requirements are
There may be access to user manual/ training guide, testable.
but those are not same as documented requirements.
Data Setup/ Identification For data setup, homegrown tools can be used as per the need
For fetching existing data, queries should be built in advance.
There may be situations where existing data should be In case of any difficulty, a request can be placed to data
reused as per the requirement. It is sometimes difficult management team for creating or cloning required data.
to identify the required data from the existing data.
On-Time Releases for scope change Scope change management process and Impact analysis shou
be in place.
There may be a situation where the code impact may
completely change the look and feel of the system. This
may require a change to test cases, scripts, and data.
Reason – Reading at the end of the file, file length error, attempt to write
into read-only file.
Reason – PDS member does not exist, record length in the program
does not match the actual record length.
Error Assist – A very popular tool to get detailed information on various types
of abends.
Output file empty–Though the job might run successfully (MaxCC 0),
the output might not be as expected. So before passing any test case,
the tester have to make sure that the output is cross verified. Only then
proceed further.
Input file empty – In some applications, files will be received from the
upstream processes. Before using the received file for testing current
application, the data should be cross verified to avoid re-execution and
rework.
Testing Retail Point Of Sale(POS)
Systems: Example Test Cases
What is POS Testing?
POS Testing is defined as Testing of a Point of Sale Application. A POS or
Point Of Sale software is a vital solution for retail businesses to carry out retail
transactions effortlessly from anywhere. You must have seen Point of Sale
terminal while checking out at your favorite Mall.
The system is more complex than you think and is tightly integrated with other
software systems like Warehouse, Inventory, purchase order, supply chain,
marketing, merchandise planning etc. POS Domain Knowledge is important
for testing.
Device and hardware testing (RFID, Scanner, Security Testing Security Testing
Printer, Barcode reader) BI & Analytics BI & Analytics
Interoperability Testing Testing Testing
BI and Analytics Testing Disaster Recovery Disaster Recovery
Performance Testing Testing Testing
Interface Testing Interface Testing
1. Application Level
2. Enterprise Level
Return & Exchange Make sure the in-house inventory is well integrated with other outlets or supply
scenarios chain
Check for exchange or return of an item with cash
Check whether system responds on exchange or return of an item with a credit
card
Check system process the sale with receipt or without a receipt
Verify that system should allow entering bar-code manually incase scanner don'
work
Verify system display both the current amount as well as the discount amount o
an exchange of item if applicable
Performance Check for speed or time taken to receive a response or send a request
Check the transaction based rules are applicable (discounts/tax/ rebates etc.)
Verify that the correct code is generated for approved, hold or declined
transactions
Managing Promotions and Test system for various discount like a veteran discount, seasonal discount,
Discounts undergage or overgage discount etc.
Test system for various promotional offers on certain line items
Test alert system that notifies end or beginning of seasonal offers
Test whether receipt print the exact discount or offers that are leveraged
Test system for allocating wrong offers or discount online item
Test the order management process
Verify product data obtained after scanning a barcode is accurate
Tracking customer's data Test for system response with incorrect customer data input
Test system for allowing authorized access to customer's confidential data
Test the database for recording customer's buying history like (what they buy,
how frequent they buy, etc.)
Summary
Retail POS demands a high level of testing keeping in mind that its
performance and correct functioning directly affect business revenues.
To reduce the risk and chances of POS failure during the transaction
process, testing under the extreme condition is essential.
Testing needs to perform at Application as well as Enterprise Level
Your Testing should cover the following scenarios - Cashier activity,
Payment Gateway Processing, Sales, Return & Exchange scenarios,
Performance, Negative Scenarios, Managing Promotions and
Discounts, Security & Regulatory Compliance.
Multiple configuration settings, peripheral issues, upgrades are few
issues you will need to tide over while testing.
Before we begin testing, let's quickly study the basic healthcare domain
knowledge.
1. Access to Provider system should let us enter, edit and save the provider's
providers system data
2. Positive It includes scenarios to enter different types of provider, change
flow System providers details, save and inquire them
Testing
5. Positive flow Login and view providers details, claim status, and member
providers portal details
testing Make change request to change the name, address, phone
number, etc.
7. Positive flow Login and view details about broker and commission payment
Broker portal Make a request to change the name, address, phone number,
testing etc.
1) Broker System It should be capable of edit, enter and save broker data
Broker commission calculation based on the premium payment details from the
member system
2) Positive Flow Enter, save and edit brokers record for different types of broker
System Testing For active brokers calculate the commission by creating a feed file with the
respective record for members with a different plan
3) Negative flow Enter a broker record with incomplete data and save for different types of broker
System Testing By creating the feed file with the respective record for members with different plan
calculate the commission for the terminated broker
By creating the feed file with the respective record for members with different plan
calculate the commission for the invalid broker
4) System Testing To downstream system such as finance system, broker portal and member system
validate the feeds
Validate if the changes from broker portal are incorporated in the respective broke
record
2) Positive Flow System With the current, past, and future effective dates enroll different types of
Testing members
Inquire and change members
Produce premium bill for an active member for the following month
Terminate an active member with past, current and future termination dates
greater than the effective date
Re-enroll a terminated member with current, past and future effective dates
Reinstate a terminated number
4) System Integration Validate the feed to downstream systems such as provider portal, broker portal
Testing finance system, and claim system
Validate if the alterations from member portal are incorporated in the respectiv
member record
Process the payment of premium bill generated with the feed from members
portal that has details of payment made
1 Claim System Claims in health-care should edit, enter and process claims for a member as wel
) as dependent
For invalid claims, it should throw errors when incorrect data is entered
2 Positive Flow System It should include the scenario to edit, enter and process claims for a member as
) Testing well as dependent
3 Negative Flow System It should validate and enter a claim with invalid procedure code and diagnosis
) Testing code
Validate and enter a claim with the inactive provider ID
Validate and enter a claim with a terminated member
4 System Integration It should include a scenario to validate the feed to downstream systems such as
)
provider and finance portal
2) Positive flow system It should check whether correct account number or address is chosen for the
testing respective member, provider or broker for the payment
3) Negative flow Verify whether payment is done for an invalid member, provider or broker ID by
system testing creating a respective record in the feed
Verify whether payment is done for an invalid amount for the member, provider o
broker by creating respective records in the feed
1) User's Authentication Using verification method to ensure that correct users get a login and deny
to others
2) Information Disclosure Authorizing access to information is based on the user's role and patient
limitation
4) Audit Trail All transactions and all attempts to access data with a proper set of audit
trail information are recorded
5) Sanity Testing related to Perform sanity testing and verify the encryption of the data is done in
regulatory body particular areas like EPHI ( Electronic Protected Health Information)
As a tester, you need to ensure that the healthcare software system meets the
desired load/performance benchmark.
Other Testing Types for Healthcare Application
While health-care device software is not the direct concern of patient, they
also require rigorous testing like another software testing. For example, X-ray
machines that are controlled by software programs should be tested well
because any testing error in software can lead to a serious effect on the
patient.
FDA (Food and Drug Administration) has guidelines for mobile and web
applications for medical devices. While testing medical devices the proper
functional Test Plan along with pass and fail criteria is also the part of FDA
guidelines. When a test plan is executed, the results are collected and
reported to FDA. This process ensures that the device meets the standard of
the regulatory bodies.
Insurance policies are usually classified into two categories, and insurer buy
these policies as per their requirement and budget.
However, there are other types of insurance that falls under these categories
Unemployment insurance
Social Security
Workers Compensation
What is Premium? How is Premium calculated?
Premium is defined as the amount to be charged for a certain amount of
insurance coverage or policy the insured has bought.
So incase, of fire, it will have to pay 10 house $800 which comes $8000 equal
to the premium it collected.
The risk of 10 house owners is spread over 1000 house owner in the village
hence reducing the burden on any one of the owner.
In case of no fire in a particular year, the entire sum goes to its profit while if
more than 10 houses burn the insurer will incur a loss.
Testing required in different process area of
Insurance
Testing can mitigate the risk of business disruption during and after
deployment of software. There are many branches of an insurance company
that requires testing.
2 Ensure that claim can occur to the maximum and minimum payment
3 Verify data is transferred accurately to all sub-systems including accounts and reporting.
4 Check that the claims can be processed via all channels example web, mobile, calls, etc
5 Test for 100% coverage and accuracy in calculations determining premium rates
6 Make sure formula for calculating dividend and paid up values gives correct value
12 Verify general ledger account behave same as to reconcile with subsidiary ledger
19 Validate all the data entered by users as it progresses through the workflow to trigger
warnings, compliance, notification and other workflow events
20 Verify insurance document template supports the document format like MS-Word
21 Test system for generating invoice automatically and send it to customer through e-mail
Summary
Timely process of the insurance policy and managing client's data is a
foremost priority for any insurance company. Their complete dependency on a
software solution for handling claims, as well as customers, requires software
solution to be precise and accurate. Considering all the key aspects of
insurance company's requirement some of the testing strategy and scenarios
are represented in this tutorial.
Usually while developing any specific domain project, domain expert help is
sought out. Domain expert is master of the subject and he may know the
inside-out of the product or application.
You need to understand each stage of service deliverability before drafting the
test cases.
The following table shows what activities are performed at different levels
Pre-sales It handles all the sales information like discounts, services, promos, etc.
Ordering Applying for a new connection or disconnecting a connection
Provisioning This division deals with the physical connection between customers and TSP ( Telecom
Service Provider)
Service Assurance In case of any failure, this division corrects the problem
Tracking This division tracks the ordering system and the status of an order
OSS-BSS Testing Billing, customer case, interconnect billing, order and fraud
management, revenue assurance
Network management, mediation, provisioning, etc.
EAI, CRM & ERP, data warehousing, etc.
Conformance Testing Electrical interface compatibility
Conformance of protocol
Conformance of transport layers
Summary
The test requirement, scope, test scenarios, testing techniques, testing tools,
etc. varies with the type of testing involves, it can be protocol testing for VoIP
or wireless device testing for CDMA. The tutorial gives a basic but complete
overview of how telecom testing can be performed and discuss various
prospects that are crucial for telecom testing.
What is BI Testing?
BUSINESS INTELLIGENCE (BI) is the process of gathering, cleansing,
analyzing, integrating and sharing data to derive actional insights that drive
business growth. Business Intelligence Testing or BI testing verifies the
staging data, ETL process, BI reports and ensures the implementation is
correct. BI Testing ensures data credibility and accuracy of insights derives
from the BI process.
Sample Test Cases for BI
Following are generic test cases that need to be validated for any BI Testing
Project
ETL verification Verify data is mapped correctly from source to target system
Verify all tables and their fields are copied from source to target
Staging data Reconciliation check- record count between the STG (staging) tables and target tables are
same after applying filter rules
Insert a record which is not loaded into target table for given key combination
Copy records, sending same records that are already loaded into target tables-should not be
loaded
Update a record for a key when value columns changed on day_02 loads
Data Loading in Check if the target and source data base are connected well and there are no access issues.
BI
For a full load, check the truncate option and ensure its working fine.
While loading the data, check for the performance of the session
Verify you can fail the calling parent task if the child task fails.
Verify the number of tables in source and target systems is the same
Compare the attributes from stage tables to that of the target tables. They should be
matched.
How are blank values/data displayed for both characteristics and key figures in the report
It is one of two parts of the Box Testing approach to software testing. Its
counterpart, Blackbox testing, involves testing from an external or end-user
type perspective. On the other hand, Whitebox testing is based on the inner
workings of an application and revolves around internal testing.
The term "WhiteBox" was used because of the see-through box concept. The
clear box or WhiteBox name symbolizes the ability to see through the
software's outer shell (or "box") into its inner workings. Likewise, the "black
box" in "Black Box Testing" symbolizes not being able to see the inner
workings of the software so that only the end-user experience can be tested
The testing can be done at system, integration and unit levels of software
development. One of the basic goals of whitebox testing is to verify a working
flow for an application. It involves testing a series of predefined inputs against
expected or desired outputs so that when a specific input does not result in
the expected output, you have encountered a bug.
The first thing a tester will often do is learn and understand the source code of
the application. Since white box testing involves the testing of the inner
workings of an application, the tester must be very knowledgeable in the
programming languages used in the applications they are testing. Also, the
testing person must be highly aware of secure coding practices. Security is
often one of the primary objectives of testing software. The tester should be
able to find security issues and prevent attacks from hackers and naive users
who might inject malicious code into the application either knowingly or
unknowingly.
To exercise the statements in the above code, WhiteBox test cases would be
A = 1, B = 1
A = -1, B = -3
White Box Testing Techniques
A major White box testing technique is Code Coverage analysis. Code
Coverage analysis eliminates gaps in a Test Case suite. It identifies areas of a
program that are not exercised by a set of test cases. Once gaps are
identified, you create test cases to verify untested parts of the code, thereby
increasing the quality of the software product
Branch Coverage - This technique checks every possible path (if-else and
other conditional loops) of a software application.
Apart from above, there are numerous coverage types such as Condition
Coverage, Multiple Condition Coverage, Path Coverage, Function Coverage
etc. Each technique has its own merits and attempts to test (cover) all parts of
software code. Using Statement and Branch coverage you generally
attain 80-90% code coverage which is sufficient.
Statement Coverage
Decision Coverage
Branch Coverage
Condition Coverage
Multiple Condition Coverage
Finite State Machine Coverage
Path Coverage
Control flow testing
Data flow testing
Apart from above, a few testing types are part of both black box and white box
testing. They are listed as below
Parasoft Jtest
EclEmma
NUnit
PyUnit
HTMLUnit
CppUnit
Ending Notes:
White box testing can be quite complex. The complexity involved has a
lot to do with the application being tested. A small application that
performs a single simple operation could be white box tested in few
minutes, while larger programming applications take days, weeks and
even longer to fully test.
White box testing in software testing should be done on a software
application as it is being developed after it is written and again after
each modification
Its counterpart is Dynamic Testing which checks an application when the code
is run. Refer to this tutorial for a detailed difference between static and
dynamic testing.
The two main types of static testing techniques are
Informal reviews
Walkthroughs
Technical review
Inspections
During the Review process four types of participants that take part in testing
are:
Types of defects which can be easier to find during static testing are:
Usually, the defect discovered during static testing are due to security
vulnerabilities, undeclared variables, boundary violations, syntax violations,
inconsistent interface, etc
Carry out the inspection process to completely inspect the design of the
application
Use a checklist for each document under review to ensure all reviews
are covered completely
Checkstyle
Soot
SourceMeter
Summary:
Example-
Independent path is defined as a path that has at least one edge which has
not been traversed before in any other paths.
In the graph, Nodes represent processing tasks while edges represent control
flow between the nodes.
V(G) = E - N + 2
Where,
E - Number of edges
N - Number of Nodes
V (G) = P + 1
Example -
i = 0;
n=4; //N-Number of nodes present in the graph
while (i<n-1) do
j = i + 1;
while (j<n) do
if A[i]<A[j] then
swap(A[i], A[j]);
end do;
i=i+1;
end do;
Computing mathematically,
V(G) = 9 - 7 + 2 = 4
V(G) = 3 + 1 = 4 (Condition nodes are 1,2 and 3 nodes)
Basis Set - A set of possible execution path of a program
1, 7
1, 2, 6, 1, 7
1, 2, 3, 4, 5, 2, 6, 1, 7
1, 2, 3, 5, 2, 6, 1, 7
If (Condition 1)
Statement 1
Else
Statement 2
If (Condition 2)
Statement 3
Else
Statement 4
Steps to be followed:
The following steps should be followed for computing Cyclomatic complexity
and test cases design.
Step 1 - Construction of graph with nodes and edges from the code
Once the basic set is formed, TEST CASES should be written to execute all
the paths.
More on V (G):
Cyclomatic complexity can be calculated manually if the program is small.
Automated tools need to be used if the program is very complex as this
involves more flow graphs. Based on complexity number, team can conclude
on the actions that need to be taken for measure.
High Testability
Medium Testability
Low Testability
Cost and Effort are high
Conclusion:
Cyclomatic Complexity is software metric useful for structured or White Box
Testing. It is mainly used to evaluate complexity of a program. If the decision
points are more, then complexity of the program is more. If program has high
complexity number, then probability of error is high with increased time for
maintenance and trouble shoot.
Code Coverage Tutorial: Branch,
Statement, Decision, FSM
In most cases, code coverage system gathers information about the running
program. It also combines that with source code information to generate a
report about the test suite's code coverage.
Statement Coverage
Decision Coverage
Branch Coverage
Toggle Coverage
FSM Coverage
Statement Coverage
Statement Coverage is a white box testing technique in which all the
executable statements in the source code are executed at least once. It is
used for calculation of the number of statements in source code which have
been executed. The main purpose of Statement Coverage is to cover all the
possible paths, lines and statements in source code.
In White Box Testing, the tester is concentrating on how the software works.
In other words, the tester will be concentrating on the internal working of
source code concerning control flow graphs or flow charts.
Generally in any software, if we look at the source code, there will be a wide
variety of elements like operators, functions, looping, exceptional handlers,
etc. Based on the input to the program, some of the code statements may not
be executed. The goal of Statement coverage is to cover all the possible
path's, line, and statement in the code.
Scenario to calculate Statement Coverage for given source code. Here we are
taking two different scenarios to check the percentage of statement coverage
for each scenario.
Source Code:
Scenario 1:
If A = 3, B = 9
The statements marked in yellow color are those which are executed as per
the scenario
Scenario 2:
If A = -3, B = -9
The statements marked in yellow color are those which are executed as per
the scenario.
But overall if you see, all the statements are being covered by 2nd scenario's
considered. So we can conclude that overall statement coverage is 100%.
1. Unused Statements
2. Dead Code
3. Unused Branches
4. Missing Statements
Decision Coverage
Decision Coverage is a white box testing technique which reports the true or
false outcomes of each boolean expression of the source code. The goal of
decision coverage testing is to cover and validate all the accessible source
code by checking and ensuring that each branch of every possible decision
point is executed at least once.
Demo(int a) {
If (a> 5)
a=a*3
Print (a)
}
Scenario 1:
Value of a is 2
The code highlighted in yellow will be executed. Here the "No" outcome of the
decision If (a>5) is checked.
Scenario 2:
Value of a is 6
The code highlighted in yellow will be executed. Here the "Yes" outcome of
the decision If (a>5) is checked.
Decision Coverage = 50%
1 2 2 50%
2 6 18 50%
Branch Coverage
Branch Coverage is a white box testing method in which every outcome from
a code module(statement or loop) is tested. The purpose of branch coverage
is to ensure that each decision condition from every branch is executed at
least once. It helps to measure fractions of independent code segments and
to find out sections having no branches.
For example, if the outcomes are binary, you need to test both True and False
outcomes.
Demo(int a) {
If (a> 5)
a=a*3
Print (a)
}
Branch Coverage will consider unconditional branch as well
1 2 2 50% 33%
2 6 18 50% 67%
Condition Coverage
Condition Coverage or expression coverage is a testing method used to test
and evaluate the variables or sub-expressions in the conditional statement.
The goal of condition coverage is to check individual outcomes for each
logical condition. Condition coverage offers better sensitivity to the control flow
than decision coverage. In this coverage, expressions with logical operands
are only considered.
For example, if an expression has Boolean operations like AND, OR, XOR,
which indicates total possibilities.
Condition coverage does not give a guarantee about full decision coverage.
Example:
TT
FF
TF
FT
Y=4
B=4
The higher the probability that defects will cause costly production failures, the
more severe the level of coverage you need to choose.
Code coverage tells you how well the Functional coverage measures how well the
source code has been exercised by your functionality of the design has been covered
test bench. by your test bench.
Summary
Code coverage is a measure which describes the degree of which the
source code of the program has been tested
It helps you to measure the efficiency of test implementation
Five Code Coverage methods are 1.) Statement Coverage 2.) Condition
Coverage 3) Branch Coverage 4) Toggle Coverage 5) FSM Coverage
Statement coverage involves execution of all the executable statements
in the source code at least once
Decision coverage reports the true or false outcomes of each Boolean
expression
In the branch coverage, every outcome from a code module is tested
Conditional will reveal how the variables or subexpressions in the
conditional statement are evaluated
Finite state machine coverage is certainly the most complex type of
code coverage method
In order to select a coverage method, the tester needs to check the cost
of the potential penalty, lost reputation, lost sale, etc.
Code coverage tells you how well the source code has been exercised
by your test bench while Functional coverage measures how well the
functionality of the design has been covered
Cobertura, JTest, Clover, Emma, Kalistick are few important code
coverage tools
Code Coverage allows you to create extra test cases to increase
coverage
Code Coverage does not help you to determine whether we tested all
possible values of a feature
Any software program includes, multiple entry and exit points. Testing each of
these points is a challenging as well as time-consuming. In order to reduce
the redundant tests and to achieve maximum test coverage, basis path testing
is used.
Here we will take a simple example, to get a better idea what is basis path
testing include
In the above example, we can see there are few conditional statements that is
executed depending on what condition it suffice. Here there are 3 paths or
condition that need to be tested to get the output,
Path 1: 1,2,3,5,6, 7
Path 2: 1,2,4,5,6, 7
Path 3: 1, 6, 7
It's estimated that companies lost sales worth $1100 per second due to a
recent Amazon Web Service Outage.
Long Load time - Load time is normally the initial time it takes an
application to start. This should generally be kept to a minimum. While
some applications are impossible to make load in under a minute, Load
time should be kept under a few seconds if possible.
Poor response time - Response time is the time it takes from when a
user inputs data into the application until the application outputs a
response to that input. Generally, this should be very quick. Again if a
user has to wait too long, they lose interest.
Poor scalability - A software product suffers from poor scalability when
it cannot handle the expected number of users or when it does not
accommodate a wide enough range of users. Load Testing should be
done to be certain the application can handle the anticipated number of
users.
Bottlenecking - Bottlenecks are obstructions in a system which
degrade overall system performance. Bottlenecking is when either
coding errors or hardware issues cause a decrease of throughput under
certain loads. Bottlenecking is often caused by one faulty section of
code. The key to fixing a bottlenecking issue is to find the section of
code that is causing the slowdown and try to fix it there. Bottlenecking is
generally fixed by either fixing poor running processes or adding
additional Hardware. Some common performance bottlenecks are
o CPU utilization
o Memory utilization
o Network utilization
o Operating System limitations
o Disk usage
During the actual performance test execution, vague terms like acceptable
range, heavy load, etc. are replaced by concrete numbers. Performance
engineers set these numbers as per business requirements, and the technical
landscape of the application.
FAQ
Which Applications should we Performance Test?
Performance Testing is always done for client-server based systems only.
This means, any application which is not a client-server based architecture,
must not require Performance Testing.
Historically, testing and tuning have been distinctly separate and often
competing realms. In the last few years, however, several pockets of testers
and developers have collaborated independently to create tuning teams.
Because these teams have met with significant success, the concept of
coupling performance testing with performance tuning has caught on, and
now we call it performance engineering.
Popular toy store Toysrus.com, could not handle the increased traffic
generated by their advertising campaign resulting in loss of both
marketing dollars, and potential toy sales.
An Airline website was not able to handle 10000+ users during a festival
offer.
Encyclopedia Britannica declared free access to their online database
as a promotional offer. They were not able to keep up with the
onslaught of traffic for weeks.
Many sites suffer delayed load times when they encounter heavy traffic. Few
Facts -
Load testing identifies the bottlenecks in the Stress Testing determines the breaking
system under various workloads and checks point of the system to reveal the maximum
how the system reacts when the load is point after which it breaks.
gradually increased
Difference between Functional and Load Testing:
Functional Testing Load Testing
Results of functional tests are easily Results of load tests are unpredictable
predictable as we have proper steps and
preconditions defined
Results of functional tests vary slightly Load test results vary drastically
Results of functional tests are dependent on Load testing depends on the number of
the test data users.
NeoLoad:
NeoLoad is the enterprise-grade load testing platform designed for Agile and
DevOps. NeoLoad integrates with your continuous delivery pipeline to support
performance testing across the complete software lifecycle - from component
to full system-wide load tests.
Load Runner:
Load runner is HP tool used to test the applications under normal and peak
load conditions. Load runner generates load by creating virtual users that
emulate network traffic. It simulates real time usage like a production
environment and gives graphical results.
Advantages and disadvantages of Load testing:
Following are the advantages of Load testing:
The application under testing will be stressed when 5GB data is copied from
the website and pasted in notepad. Notepad is under stress and gives 'Not
Responded' error message.
To conduct Stress Testing, sometimes, massive data sets may be used which
may get lost during Stress Testing. Testers should not lose this security-
related data while doing stress testing.
The main purpose of stress testing is to make sure that the system recovers
after failure which is called as recoverability.
Load testing does not break the system stress testing tries to break the system by
testing with overwhelming data or
resources.
Night run is the best option to run these stress testing scenarios. Large server
farms need a more efficient method for determining which computers have
had stress failures that need to be investigated.
1. Planning the Stress Test. Here you gather the system data, analyze the
system, define the stress test goals
2. Create Automation Scripts: In this phase, you create the Stress testing
automation scripts, generate the test data for the stress scenarios.
3. Script Execution: In this stage, you run the Stress testing automation
scripts and store the stress results.
4. Results Analysis: In this stage, you analyze the Stress Test results and
identify bottlenecks.
5. Tweaking and Optimization: In this stage, you fine-tune the system,
change configurations, optimize the code with goal meet the desired
benchmark.
Lastly, you again run the entire cycle to determine that the tweaks have
produced the desired results. For example, it's not unusual to have to 3 to 4
cycles of the Stress Testing process to achieve the performance goals
Jmeter
Jmeter is an Open Source testing tool. It is a pure Java application for stress
and Performance Testing. Jmeter is intended to cover types of tests like load,
functional, stress, etc. It needs JDK 5 or higher to function.
Stress Tester
This tool provides extensive analysis of the web application performance,
provides results in graphical format, and it is extremely easy to use. No high-
level scripting is required and gives a good return on investment.
Neo load
This is a popular tool available in the market to test the web
and Mobile applications. This tool can simulate thousands of users in order to
evaluate the application performance under load and analyze the response
times. It also supports Cloud-integrated - performance, load and stress
testing. It is easy to use, cost-effective and provides good scalability.
Pages per Second: Measures how many pages have been requested /
Second
Throughput: Basic Metric - Response data size/Second
Rounds: Number of times test scenarios have been planned Versus
Number of times a client has executed
Application Response
Failures
With the help of Volume testing, the impact on response time and system
behavior can be studied when exposed to a high volume of data.
For example, testing the music site behavior when there are millions of user to
download the song.
Volume testing verifies if the system Load testing checks the performance
responds as expected for a certain of the system when the user load is
volume of data. It may include increased. It may include increasing
increasing size of the file number of the file
Challenges in Volume Testing
Fragmentation of memory difficult to generate
Dynamic generation of keys
Relational Integrity of generated data
Summary:
Response Time
Screen transition
Throughput
Time (Session time, reboot time, printing time, transaction time, task
execution time)
Performance measurement with a number of users
Request per seconds, Transaction per seconds, Hits per second
Performance measurement with a number of users
Network Usage
CPU / Memory Usage
Web Server ( request and response per seconds)
Performance measurement under load
Steps for Scripts: The test script should have a detailed step that
determines the exact actions a user would perform.
Run-Time Data: The test plan should determine any run-time data that
is required to interact with the application
Data Driven Tests: If the scripts need varying data at run-time, you
need to have an understanding of all the fields that require this data.
The image below depicts a testing cycle that shows at which stage the Soak
Testing (Type of Performance Test) is performed on an application.
In this type of testing, what basically monitored is the memory utilization by an
application in a system. It is testing at a system level, to find whether the
system will stand up to a very high volume of usage and to see what would
happen outside its design expectations
1. Before the built is deployed to the client i.e. prior to the release of any
application on a specific platform, it needs to go through a successful
series of load tests at high or equivalent traffic levels. After that soak
testing is performed. It helps us to determine how to run any particular
application for an extended period. If issues like memory leaks/memory
corruption are found during the period i.e. when it is on Soak, then it
should be immediately reported.
2. The best time to do a soak testing is over the weekends as an
application need to be in a running state for as long as over a day or
night. It totally depends on the limitations of the testing situation. Soak
tests are one of the most important compliance requirements which
need to be very strictly followed by every company.
A simple example is where the user stays logged into a system for many
hours executing a number of business transactions. In this way, a lot of data
gets created. There can be lots of load on the system/database server which
can result in stalling/crashing of the system/database server.
Under Long Session Soak Testing, multiple day's (say 30 days) activities are
performed in a restrained time frame (say 2 days). The number of transaction
in this restrained timeframe should match or surpass multiple days' worth of
transactions. The focus should be on the number of transactions processed.
The most important part of Soak Testing is to check the available memory in
the CPU and the amount of the memory that will be in usage. We need to
record the memory usage at the start and the end of a soak test. If necessary,
then the memory usage of facilities such as Java Virtual Machines are also
important and needs to be monitored.
Below are few more checks that need to be done by any user/tester before
they begin with Soak Testing:
Summary
In Software Engineering, Soak testing is done to determine if the
application under test can sustain the continuous load.
It is a type of performance test.
It helps the system to determine whether it will stand up to a very high
volume of usage
In this type of testing, what basically monitored is the memory utilization
by an application in a system
Checks that need to be done by any user/tester before they begin with
Soak Testing include
o Monitor the database resource consumption.
o Monitor the server resource consumption (ex- CPU usage).
o Soak test should run with realistic user concurrency.
Another example
This information will evaluate the time taken in processing the request
by the web server and sent to the application server, which in most of
the cases will make a request to a database server.
Performance Testing has many types and stability testing is one of them.
WebLOAD
LoadRunner
Apache JMeter
NeoLoad
CloudTest
Loadstorm
LoadUI
WAPT
LoadImpact
Loadster
Httperf
OpenSTA
Performance Tester
Testing Anywhere
Another goal of Spike Testing is to determine the recovery time. Between two
successive spikes of user load, the system needs some time to stabilize. This
recovery time should be as low as possible.
Step 1) Determine the Max User Load capacity of your software application
The Apache JMeter is a java open source spike testing tool. It is specially
designed to load functional test behavior and measure performance. This
performance testing tool can be used to analyze and measure the
performance of web application or a variety of services. Today, it is widely
used for the functional test, database server test.
2) Loadrunner
Loadrunner is a load testing tool for Windows and Linux, which allows spike
testing of web and other apps. It helps to determine the performance and
result of the application even under the heavy load.
Conclusion
Response time starts when a user sends a request and ends at the time that
the application states that the request has completed.
How to Measure Response Time?
To Measure Response Time, we can use test tools by surrounding an
important business process with Start and End transactions. A business
process may be an action or a set of actions which users perform in
application to complete a business task like login to the application or to
purchase a book on Amazon.com.
For the same process, the response will vary slightly from tool to tool. Here is
why
It shows how long a user needs to wait for the server to the response its
request.
1) JMeter:
Jmeter can be used for load and performance testing on the target
application.
Download link: http://jmeter.apache.org/download_jmeter.cgi
2) Load Runner:
Load Runner is a load testing product developed by Microfocus. LoadRunner
response testing tool works on the principle of simulating Virtual Users on the
subject application.
Download link: https://software.microfocus.com/de-de/products/loadrunner-
load-testing/free-trial
3) AEM:
Download link: https://helpx.adobe.com/in/experience-manager/6-
3/sites/developing/using/aem-eclipse.html
Browser compatibility
Broken Links
HTML compliance
Load Time
Accessibility
Link popularity
Why Benchmark Testing is important
At the business level, benchmark testing can be helpful in determining
1. Database Access
2. Server-side composition
3. JSON Serialization
4. Configuration
Let's have a look towards TechEmpower. We will have a quick glance towards
its salient features
1. Prime95
2. Novabench
3. 3DMark
4. SiSoftware Sandra
1. Cinebench
2. Geekbench
1. Phoronix (Linux)
2. CPU-M (CPU Benchmark test)
3. Vellamo (Web browsing performance)
Tools for Performing Comparative Benchmark Test between different
machines:
Benchmark Testing can be performed with Android phone and tablets too,
some of the tools are listed above for the same. Among all Passmark is well-
known and widely used Benchmark Testing tool.
Endurance Testing
Endurance Testing is non-functional type of software testing where a
software is tested with high load extended over a significant amount of time to
evaluate the behavior of software application under sustained use. The main
purpose of endurance testing is to ensure that the application is capable
enough to handle extended load without any deterioration of response time.
This type of testing is performed at the last stage of the performance run
cycle. Endurance testing is a long process and sometimes lasts for even up to
a year. This may include applying external loads such as Internet traffic or
user actions. This makes endurance testing differ from Load Testing, which
usually ends in a couple of hours or so.
For Example, the most complex issues – memory leaks, database server
utilization, and unresponsive system – happen when software runs for an
extended period of time. If you skip the endurance tests, your chances of
detecting such defects prior to deployment are quite low.
Reliability means "yielding the same," in other terms, the word "reliable"
means something is dependable and that it will give the same outcome every
time. The same is true for Reliability testing. Reliability testing in software
assures that the product is fault free and is reliable for its intended purpose.
Modeling
Measurement
Improvement
After the release of the product too,we can minimize the possibility of
occurrence of defects and thereby improve the software reliability. Some of
the tools useful for this are- Trend Analysis,Orthogonal Defect Classification
and formal methods, etc..
Feature Testing:-
Featured Testing check the feature provided by the software and is conducted
in the following steps:-
Load Testing:-
Usually, the software will perform better at the beginning of the process and
after that, it will start degrading. Load Testing is conducted to check the
performance of the software under maximum work load.
Regression Test:-
Regression testing is mainly used to check whether any new bugs have been
introduced because of the fixing of previous bugs. Regression Testing is
conducted after every change or updation of the software features and their
functionalities.
Step 1) Modeling
Software Modeling Technique can be divided into two subcategories:
1. Prediction Modeling
2. Estimation Modeling
Step 2) Measurement
Software reliability cannot be measured directly and hence, other related
factors are considered in order to estimate the software reliability. The current
practices of Software Reliability Measurement are divided into four
categories:-
1. Product Metrics:-
3. Process Metrics
The quality of the product is directly related to the process. The process
metrics can be used to estimate, monitor and improve the reliability and
quality of software.
Fault and Failure Metrics are mainly used to check whether the system is
completely failure-free. Both the types of faults found out during the testing
process (i.e. before delivery) as well as the failure reported by users after
delivery are collected, summarized and analyzed to achieve this goal.
Reliability increases when errors or bugs from the program are removed.
Step 3) Improvement
Improvement completely depends upon the problems occurred in the
application or system, or else the characteristics of the software. According to
the complexity of the software module,the way of improvement will also differ.
Two main constraints time and budget, which will limit the efforts are put into
the software reliability improvement.
Example Methods for Reliability Testing
Testing for reliability is about exercising an application so that failures are
discovered and removed before the system is deployed.
Test-Retest Reliability
Parallel Forms Reliability
Decision Consistency
Test-Retest Reliability
Many exams have multiple formats of question papers, this parallel forms of
exam provide Security. Parallel forms reliability is estimated by administrating
both forms of the exam to the same group of examinees. The examinees
scores on the two test forms are correlated in order to determine how similarly
the two test forms functions. This reliability estimate is a measure of how
consistent examinees scores can be expected to across test forms.
Decision Consistency
After doing Test-Retest Reliability and Parallel Form Reliability, we will get a
result of examinees either pass or fail. It is the reliability of this classification
decision that is estimated in decision consistency reliability
Summary:
Modeling
Measurement
Improvement
1) WebLOAD
WebLOAD Features:
WebLOAD is offered on the Cloud (SAAS) or as an On-Prem
deployment
Flexible test scenario creation
Smart Scripting based native JavaScript with Powerful correlation,
parametrization and validation engines
Supports every major web technology and easily extendible
Automatic bottleneck detection
Easy-to-reach customer support
2) StresStimulus
Features:
End-to-end Test Wizard covers all steps from recording to test results,
which reduces the learning curve
On-premise or cloud testing supported with multiple load generators
Works as a stand-alone tool or Fiddler add-on
Exports script to Visual Studio test format to help with scenarios that fail
when recorded in Visual Studio directly
Manual scripting is not required but available; supports three scripting
languages
3) LoadNinja
Features:
Protocols:
Features:
Automated test design enabling 10x faster test creation and update than
traditional solutions
Integration with CI servers for automated test runtime
Collaboration: shared test scripts and reports, in real -time and after test
completion through an on-premise or SaaS web interface
Hybrid on-premise and cloud load generation from over 70 global
localizations
5) LoadView
6) Apache Jmeter
JMeter is an open source tool that can be used for performance and load
testing for analyzing and measuring the performance of a variety of services.
It is one of the best load testing tools that is mainly used as website load
testing tools for web service applications.
Features:
This free tool doesn't demand state of the art infrastructure for load
testing and supports multiple load injectors managed by a single
controller
It is one of the performance test tools which is highly portable and
supports 100% all the Java based apps
Less scripting efforts as compared to other api performance testing
tools because of its user-friendly GUI
Simple charts and graphs sufficient for analyzing key load related
statistics and resource usage monitors.
Supports Integrated real-time, Tomcat collectors for Monitoring
Protocols
Web : HTTP, HTTPS, WebServices : XML, SOAP, etc., Java based protocols,
FTP
Download JMeter
Features:
Protocols:
Download Loadrunner
8) Silk Performer
Silk Performer tool is an enterprise class load and stress testing tool and has
the ability to test multiple application environments with the thousands of
concurrent users. It is one of the best load testing tools which supports the
widest range of protocols.
Features:
There are many good load and stress test features in Silkperformer and those
are listed as follows:
Protocols
Features:
There are good features which gives confidence to the users that all
performance related bottlenecks are resolved. Following are some of the
features of this tool:
No coding involved
It is one of the best performance testing tools that provides scheduled
and event based testing
Real time reporting for immediate performance problem identification
It is one of the best website load testing tools that can run with large
multi users tests
Accurate user profile workloads
This load test software has automated test data variation
Automatic identification of dynamic server responses
Performs the website load test with rendered HTML view of web pages
visited during test recordings
Environment and Platform support
Entrust security protocol support
Java code insertion for customization
Protocols:
Citrix, Socket Recording, Web HTTP, SOA, SAP, XML, Websphere, Weblogic
10) SmartMeter.io
Features:
Protocols:
Download SmartMeter.io
FAQ
⚡ What is Performance Testing?
Performance Testing checks the speed, response time, reliability, resource
usage, scalability of a software program under their expected workload. The
purpose of Performance Testing is not to find functional defects but to
eliminate performance bottlenecks in the software or device
✔️What is Load Testing?
Load Testing determines a system's performance under a specific expected
load. This purpose of Load Test is to determine how the application behaves
when multiple users access it simultaneously.