You are on page 1of 90

Testing in Different

Domain

Domain Testing

When we talk about domain testing we simply mean testing in a specific


domain.

When we talk about software project or development, this term is often


referred.

Domain knowledge plays a very critical role while testing domain-specific


work.

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

Domain testing(Continued)

Domain testing is a type of functional testing and tests the application by


feeding interesting inputs and evaluating its outputs.

Domain testing is a method of selecting a small number of test cases from a


nearly infinite group of candidate test cases.

Testing in Banking Domain

Banking applications are considered to be one of the most complex applications in todays
software development and testing industry.

Testing in Banking Domain

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


they are :

Traditional banking sector

Service based banking sector

Traditional banking sector

Following are the categories of Traditional banking sector :

Core banking

Corporate banking

Retail banking

Service based banking sector

Following are the categories of Service based banking sector:

Corporate

Retail

Loan

Trade finance

Private banking

Consumer finance

Islamic banking

Customer delivery channels/Front end delivery

Characteristics of a Banking Application

It should support thousands of concurrent user sessions

A banking application should integrate with other numerous applications like


trading accounts, Bill pay utility, credit cards, etc.

It should process fast and secure transactions

It should include massive storage system.

Characteristics of a Banking Application

To troubleshoot customer issues it should have high auditing capability

It should handle complex business workflows

Need to support users on multiple platforms (iOS, Android, Windows)

It should support users from multiple locations

Characteristics of a Banking Application

It should support multi-lingual users

It should support users on various payment systems (VISA, AMEX, MasterCard)

It should support multiple service sectors (Loans, Retail banking etc.)

Foolproof disaster management mechanism

Banking application Testing workflow

Test Phases in Testing Banking


Applications

Requirement Analysis:It is done by business analyst; requirements for a


particular banking application are gathered and documented.

Requirement Review:Quality analysts, business analysts, and development


leads are involved in this task. The requirement gathering document is
reviewed at this stage, and cross-checked to ensure that it does not affect
the workflow.

Test Phases in Testing Banking


Applications

Business Requirements Documentation:Business requirements documents


are prepared by quality analysts in which all reviewed business requirements
are covered

Database Testing:It is the most important part of bank application testing.


This testing is done to ensure data integrity, data loading, data migration,
stored procedures, and functions validation, rules testing, etc

Test Phases in Testing Banking


Applications

Integration Testing:Under integration testing all components that are


developed are integrated and validated

Functional Testing:The usual software testing activities like test case


preparation, test case review and test case execution is done during this
phase

Test Phases in Testing Banking


Applications

Security Testing:It ensures that the software does not have any security
flaws. During test preparation, QA team needs to include both negative as
well as positive test scenarios so as to break into the system and report it
before any unauthorized individual access it. While to prevent from hacking,
the bank should also implement a multi-layer of access validation like a onetime password. For security testing, automation tools like IBM AppScan and
HPWebInspect are used while for manual testing tools like Proxy Sniffer, Paros
proxy, HTTP watch, etc. are used

Test Phases in Testing Banking


Applications

Usability Testing:It ensures that differently able people should be able to


use the system as normal user. For example, ATM with hearing and Braille
facility for disabled

User Acceptance Testing:It is the final stage of testing done by the end users
to ensure the compliance of the application with the real world scenario.

Challenges in testing Banking domain and their


mitigation

Challenge

Getting access to production data and replicating it as test data, for testing is
challenging

Mitigation

Ensure that test data meets regulatory compliances requirements and guidelines

Maintain the data confidentiality by following techniques like data masking,


synthetic test data, testing system integration, etc.

Challenges in testing Banking domain and their


mitigation

Challenge

The biggest challenge in testing banking system is during the migration of the
system from the old system to the new system like testing of all the routines,
procedures and plans. Also how the data will be fetched, uploaded and transferred
to the new system after migration

Mitigation

Ensure Data Migration Testing is complete

Ensure Regression Test cases are executed on old and new systems, and the results
match.

Challenges in testing Banking domain and their


mitigation

Challenge

There may be the cases where requirements are not documented well and may
lead to functional gaps in test plan

Many non-functional requirements are not fully documented, and testers do not
know whether to test it or not

Mitigation

The test should participate in the project right from Requirement Analysis phases
and should actively review the Business Requirements

Challenges in testing Banking domain and their


mitigation

Challenge

The most important point is to check whether the said system follows the desired
policies and procedures.

Mitigation

Compliance or Regulatory Policies testing must be done.

Challenges in testing Banking domain and their


mitigation

Challenge

The scope and the timelines increases as banking application are integrated with
other application like internet or mobile banking.

Mitigation

Ensure Time budget for Integration testing is accounted if your banking application
has many external interfaces.

Challenges in testing Banking domain and their


mitigation

Challenge

The most important point is to check whether the said system follows the desired
policies and procedures.

Mitigation

Compliance or Regulatory Policies testing must be done.

Sample test cases

For Admin

Verify Admin login with valid and Invalid data

verify admin login without data

verify all admin home links

verify admin change password with valid and invalid data

verify admin change password without data

Verify admin change password with existing data

verify admin logout

Summary

Banking domain is the most vulnerable area for cyber-theft, and safeguarding
the software requires precise testing.

Majority of banking software are developed onMainframeandUnix

Testing helps to lessen possible glitches encounter during software


development

Proper testing and compliance to industry standards, save companies from


penalties

Good practices help develop good results, reputation and more business for
companies

Both manual and automated testing have respective merits and usability

Testing in gaming

Differences between Software Testing


and Game Testing

Software testing is an engineering discipline.

You can play games and find bugs without structure or expert knowledge just as
you can test that a mobile phone works, but if you want to exceed you need to
become a professional tester.

Being a professional game tester means that you must understand both testing
in general, but also the unique discipline of game testing. This is no small feat,
as software testing is very complex and multifaceted, and game testing requires
very specific skills.

Game testing is every bit as complex as any other testing, and should be
treated in just the same way. It is not something that can be left to untrained
laymen.

So how is game testing unique?

Fun Factor Testing

Balance Testing

Game Level/World Testing

AI Testing

Multiplayer/Network Testing

Audio Testing

Physics Testing

Realism Testing

Modification API Testing

Fun Testing

There is no formula for fun. Its not something you can write into a design
document. Its not something you can throw more resources at to get a
guaranteed return.

Its possibly the hardest thing to quantify when youre making a game, but its
such an important factor for prospective players that you ignore it at your peril.

Its very hard to measure fun, but not impossible.

Start testing your game early. It may be possible to enhance the fun with better
graphics and sound, or a more involved storyline later on, but start with
mechanics.

Pocket Tanks

Balance Testing

In game design, balance is the concept and the practice of tuning a game's
rules, usually with the goal of preventing any of its component systems from
being ineffective or otherwise undesirable when compared to their peers.

Balancing does not necessarily mean making a game fair.

Simulation games can be balanced unfairly in order to be true to life. A


wargame may cast the player into the role of a general who was defeated by an
overwhelming force, and it is common for the abilities of teams in sports games
to mirror those of the real-world teams they represent regardless of the
implications for players who pick them.

Video games often allow players to influence their balance by offering a choice
of "difficulty levels". These affect how challenging the game is to play.

Game Level/World Testing

One of the most complex aspects of game testing can be the testing of the
actual world or level, especially if it is a vast, sprawling, 3D world, such as for
modern MMOs.

Some parts of this can be automated in interesting ways that are also quite
unique to game testing, such as having bots move randomly through the game
world to see if they get stuck or find other problems with the world.

As the complexity of the task grows, it becomes more and more important to
find ways to reduce the complexity with the help of tools.

For puzzle games it is important to make sure that all the graphics for every
level looks good, but also that each level is passable, and that game mechanics
that have previously been tested in isolation, actual work in different level
implementations.

Automating Video Games Testing With Artificial


Intelligence

Testing a video game is little different from a conventional software testing, as


many of the practices cant be applied to it as it is difficult to automate the
process.

The key to successful video games testing lies in playing the game as an actual
user. This can be done emulating real users by creating AI bots.

Though AI bots cant match the human performance, it could be helpful in


saving many testing hours.

Chess is a good basic example, and enemies in a first person shooter is a more
modern one. This type of testing requires the tester to understand what triggers
different types of behavior, and how these triggers can be confused by different
parameters.

Understanding of AI and game design is critical to succeed in this field.

Multiplayer/Networking Testing

Multiplayer testing is a whole other beast in itself. Many players simultaneously


interacting with the game world, with computer-controlled opponents, with game
servers, with each other.

So many things that can go wrong. And it often requires a whole team of
testers.

Many difficult risk-based decisions to make if you dont want to spend unlimited
amounts of time testing different scenarios.

Understanding of multiplayer game design, and how to test efficiently as a team


is required knowledge for this type of testing.

Audio Testing

Audio testing is common in all software that creates some kind of sound or
plays media.

However games have a unique aspect that other software does not have to
care about to the same extent.

Game music has to involve the user in the game and enhance the game play.

Not only should the audio play without stuttering or missing elements, it should
also add to the gameplay.

This requires extensive audio skills and specific understanding of game audio.
Very specific expert domain knowledge.

Physics Testing

Many modern 3D games have physics engines. Modern shooters such as


Battlefield or Crisis and RPGs such as Skyrim, have destructible environment
and possibilities to throw objects.

Testing if the physics engine works requires an understanding of physics as well


as how to implement that in a good way into a game. The complexity of the
testing grows with the complexity of the engine.

Lets take an example of a popular game: Half life 2.


A timeline for HL2 Physics:

Creators looked into physics demos.

Demos generated ideas.

Looked into licensed physics simulators.

Internalized physics into their design ideas.

Built a bunch of prototypes and tools.

Gameplay mechanics experiments.

Solved technical issues.

Focused design and tech.

Solved more problems on the technical side.

Incremented to deliver a stable system (with valuable features at each


deliverable goal).

A long polish stage before shipping the game.

Realism Testing

In simulators or racing games it is very relevant that the game feels real, but
many other games also incorporate elements that need to feel real.

Testing for realism requires specific domain knowledge needed for the game
or game element.

An airplane simulator requires an understanding of airplanes. Cars, weapons,


human movement, animals. Each poses their own problems.

Modification API Testing

A lot of software has open API that can be used by third parties.

But there are few other instances where the players will try to exploit these open
API to gain unfair gameplay advantages.

This requires outside-the-box thinking. How will the modders use the API, and
how will they be able to alter the gameplay in significant ways? Being one step
ahead of the entire community of modders is a daunting task indeed.

So, its very important not to leave any loop holes while coding.

What happens when you dont test the


game?

One of the biggest example of failure is of Warner Bros.

WB realeased BATMAN: Arkham Knight in june15 and were off the shelves in
some days. Game for PS4 and Xbox was working fine, whereas the PC version
wasnt.

WB knew that Arkham Knight PC was a mess f or months. Still they decided to
release the game.

Consequences were that WB had to refund the money for all the buyers and
stock prices fell even though being one of the world's largest media
conglomerates.

Since then, a minor patch was released for the PC version that addressed
some crashing bugs, introduced rain effects, and fixed a few other issues.

BATMAN:ARKHAM KNIGHT

The PC version of Arkham Knight was built in collaboration between Warner


Bros., Rocksteady, and Iron Galaxy Studios.

So, due to no proper testing, all three companies had to suffer the loss, not only
in money, but in time and fame too.

Arkham Knights credits list Iron Galaxy as providing additional engineering and
PC support, which would imply that Rocksteady did the bulk of work there, but
from what were told, Rocksteady did not work on the PC versionit focused on
console.

Defence of the Ancients 2(DotA 2)

This is another example of a game failing to fulfil the expectations of gamers


all around the world. DotA 2 was released in 2013 and is one of the most
played games in the world.

There were performance issues, crashes and failures while launching the
game.

DotA 2 had blue screen issue in windows due to BIOS version of computers
which forced users to update the BIOS version and chipset drivers so as to
play the game.

Also, it wasnt available for the AMD FX series processor, which is again a
demerit of not testing on all the platforms.

Testing in Health Care

Health care domain- an introduction

Health Care or Health Insurance is similar to general insurance. As you know, in


any insurance, insurer (Insurance company) will provide the plans and customer
(Subscriber or Policy holder) will buy policy of his desired plan. Insurer will
receive the premium amount from the policy holders and the policy Holders will
get reimbursements from insurer for the valid claims they have submitted. The
same happens in healthcare insurance but in addition to insurer and policy holder
there are other major contributors such as provider, TPA (Third Party
Administrator), broker , etc.

Basic Terminology of Health Care System

Provider: A health care professional (doctor), medical group, clinic, lab,


hospital, etc. licensed by health care services

Claim:A request to your health insurance company to pay a bill for health
care service

Claim:A request to your health insurance company to pay a bill for health
care service

Finance:Insurance bodies that pay for medical expenses, it could be


government (Medicare or Medicaid) or commercial (BCBS)

Basic Terminology of Health Care System

Medicare:A federal health insurance program for senior citizen and


permanently disabled people

Medicaid:A joint and state program that helps low-income families and
individuals pay for the cost associated with medical care

CPT code: A current procedural terminology code is a medical code set to


describe medical, surgical and diagnostic services

HIPAA: It is a set of rules and regulations which doctors, hospitals, healthcare


providers and health plan must follow in order to provide their services

A simple health care application


Scenario

Major Contributors

Insurer:

Policy Holder:

An entity which creates plan, sell policy and reimburses policy holder or provider
for the submitted valid claims.

A person or an entity, who buys the policy from the insurer or broker, pays premium
to the insurer and sometimes submit claim.

Provider:

A person or an entity, which provides the health care service to the policy holder
and their dependents, either receives payment for the service from the policy
holder or from the insurer by submitting a claim.

Major Contributors

TPA:

Broker:

A person or an entity that manages the claims of policy holder or provider and
receives payment for the management from the respective contributor.

As you have guessed, he is an agent who sells policy to the customers on behalf of
insurer and receives commission in return from the Insurer.

Individual Policy:

An individual will be the policy holder; both the individual and his/her dependents
will enjoy the benefits of the health plan. Here the individual pays the premium.

Healthcare Industry Work Flow

An Insurer needs different applications to manage the following:

Provider data

Member data

Premium billing/payment

Broker data

Claims entry/validation

Broker commission calculation/payment

Healthcare Industry Work Flow

Generally a healthcare application will have the following list of systems:

Member system To maintain policy holder data, various plans with their list of benefits and
generate premium bills for the policy holder based on their plans

Provider system To maintain provider data

Broker system To maintain broker data and calculate commissions

Claims system For claim entry and validation

Finance system To do the necessary payment to provider/member/broker

Member portal To display the policy holder information, make premium payments and raise
request for change information for policy holders

Provider portal To display provider information and raise request for change information for
providers

Broker portal to display broker information and raise request for change information for
brokers

Health Care Application Testing Work flow

Health Care Application Testing Work flow

The unique feature of health care system is that, these applications cannot
be tested in any order we like. There is a certain work flow to be followed:

For a member/policy holder to be enrolled in a health plan he/she need to be


assigned to a provider (Primary Care Physician) or a provider network, so there
should be a way for member system to validate the assign provider. Either member
system connects to the provider system or a data feed should periodically sent to
member system from provider system. Therefore provider system should be tested
and ready to use before testing member system.

A claim should consist of provider ID and member ID in addition to other details.


Claim system should validate both the member and provider in order to validate
the claim, so both member and provider system should be tested and ready to use
before testing claims system.

Health Care Application Testing Work flow

Finance system need to have data from member, provider, claim and broker system
to write checks or make EFT payments to the respective person or entity.

Provider and broker systems are stand alone.

Portals should be tested at last since it needs data from the other applications.

Healthcare Business Process

Most health-care
organization have
adapted software
program to process
the smooth
functioning of the
system. This
software system
gives all the
information in a
single document for
each entity dealing
with this.

Healthcare Business Process

Interconnecting this whole system to a single web application is a huge task


and making it work effectively is even a bigger task. Rigorous testing of this
health application is compulsory, and it has to go through various testing
phases.

Other Testing Types for Healthcare Application.

Other Testing Types for Healthcare Application

Functional Testing: Testing healthcare application against functional


capabilities

Conformance Testing: Conformance test Healthcare security requisites and


industry frameworks

Platform Testing: Testing of applications on mobile platform and applications


testing for cross-browser compatibility

Interoperability Testing: Testing conformance to interoperability standards


( Eg; DICOM, HL7, CCD/CDA)

Testing Challenges in Healthcare


Application

Requires expertise in testing, and usually it is high in cost

Requires interoperability, compliance, regulatory, security, safety testing


besides regular testing techniques (Non-Functional, Functional and
Integration testing)

Testing should be done keeping in mind the safety and regulatory standardsas any error can cause direct effect on patient's life

Testing Challenges in Healthcare


Application

Testing team needs to be well aware of the various functionalities, clinical


usage, and the environment the software will be used for

Health-care product should comply with various standards like FDA, ISO and
CMMI before it can be used

Cross dependency of software- testers need to ensure that any changes in one
component or layer should not lead to side effect on the other.

Useful tips for Healthcare Testing

Dates are important and needs to be accurate

While designing test cases consider various parameters like different types of
plan, brokers, members, commission, etc.

Complete knowledge of the domain is required

Conclusion

Well, that covers the basics of healthcare domain and a way to test
healthcare applications.

As testers, we know nothing is defect free. This article may also have some
defects, if you find any defect or have a question please leave a comment.
We welcome your valuable feedback on the article, as it will drive us towards
excellence and improvement.

TESTING IN INSURANCE
DOMAIN

DOMAIN

Insurance Companies rely heavily on Software


to run their business. Software Systems helps
them to deal with various insurance activities
like developing standard policy forms,
handling billing process, managing customer's
data, rendering quality services to the
customer, coordinating between branches and
so on.
Software testing in Insurance domain assures
the quality of the insurance software by
identifying bugs before go-live.

What is Insurance?

Insurance is defined as the equitable transfer of the


risk of a loss from one entity to another in exchange
for payment. Insurance Company, which sells the
policy is referred as INSURER while the person or
company who avails the policy is called the
INSURED.

For example, we will see how insurance system works,


Suppose an insurance company provides insurance to all houses in a
village
Home Insurance
Amount
Total number of house in village = 1000
Value of each house= $ 800
Contribution of each house owner as premium = $ 8
Total Premium Collected= $8000
Statistically, it has calculated that in case of fire a maximum of 10
villages are burnt which it need to compensate.
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.

Policy Administration Systems

Claim Management Systems

Distribution Management Systems

Investment Management Systems

Third party Administration Systems

Risk Management Solutions

What to Test in Insurance?


The insurance sector is a network of small units
that deals directly or indirectly with processing
claims. For smooth functioning of an insurance
company, it is necessary that each of this unit is
tested rigorously before it is sync together to
deliver the desired outcome. The testing
includes

Call Center

IVR integration testing

Call routing and assignment

Security and access

Reflexive Questions

Policy Serving

Policy life cycle testing

Financial and Non-financial policy changes

Policy lapse and Re-instatement

Policy aging-run cycles

Claims

Claims triage and assignment

Testing claims life cycle

Claims accounting/reserving

Third party EDI/messaging

Direct channel

Mobile access

Cross browser/cross platform accessibility

Application performance

Usability of application

Reports/BI

Behaving to regulatory requirements

Generate quality data for reporting

Create bulk data for roll-up reports

Testing formula based fields in reports

Underwriting

Underwriting quality

Complex business rules

Rating efficiency

Requirements Management (Vendor

Integration

Data integration

Complex interface integration

Source/Destination formats

Production like interface

Web service pull/push efficiency


New Business

Validate rates-factor combinations

Batch job schedules and runs

Commissioning calculations settlement

Sample Test Cases for Insurance


Application Testing

Validate claims rule


Ensure that claim can occur to the maximum
and minimum payment
Verify data is transferred accurately to all subsystems including accounts and reporting.
Check that the claims can be processed via all
channels example web, mobile, calls, etc
Test for 100% coverage and accuracy in
calculations determining premium rates
Make sure formula for calculating dividend

Verify surrender values are calculated as per


the policy requirement
Verify fiduciary details and bookkeeping
requirements
Test complex scenarios for policy lapse and
revivals
Test various conditions for non-forfeiture
value
Test scenarios for policy termination
Verify general ledger account behave same as
to reconcile with subsidiary ledger

Test calculation of net liability for valuation

Test conditions for extended term insurance

Check different insurance product term behaves


as expected
Verify premium value as per product plan
Test automatic messaging system to inform
customer about new products
Validate all the data entered by users as it
progresses through the work flow to trigger
warnings, compliance, notification and other
work flow events
Verify insurance document template supports the
document format like MS-Word
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.

TESTING IN AEROSPACE DOMAIN

To stay competitive in a rapidly evolving


industry, Aerospace professionals need
high-quality testing solutions that deliver
reliable, accurate, repeatable results.

Bug in Space Code


Project

Mercurys FORTRAN code had the


following fault:
DO I=1.10 instead of ...
DO I=1,10

The

fault was discovered in an analysis of why


the software did not seem to generate results
that were sufficiently accurate.

The

erroneous 1.10 would cause the loop to be


executed exactly once!

Military Aviation Problems

An F-18 crashed because of a missing exception condition:


if ... then ... without the else clause that was thought
could not possibly arise.

In simulation, an F-16 program bug caused the virtual plane to flip


over whenever it crossed the equator, as a result of a missing minus
sign to indicate south latitude.

In June 1996 the first flight of the European Space


Agency's Ariane 5 rocket failed shortly after launching,
resulting in an uninsured loss of $500,000,000. The
disaster was traced to the lack of exception handling for a
floating-point error when a 64-bit integer was converted
to a 16-bit signed integer.

In October 1999 the $125 million NASA Mars Climate


Orbiteran interplanetary weather satellitewas lost in
space due to a data conversion error. Investigators
discovered that software on the spacecraft performed
certain calculations in English units (yards) when it
should have used metric units (meters).

Programming features
and languages (I)
General principle: Try to keep the system as simple
as possible.
Programming features not recommended:
Pointers and dynamic memory
allocation/deallocation.
Unstructured programming (gotos)
Variant data
Implicit declaration and initialisation
Recursion
Concurrency and interrupts

Programming features
and languages (II)
Features which increase reliability:
Strong typing
Run time constraint checking
Parameter checking

Language to be avoided: C
Language recommended: Ada
Ada subset for safety-critical
software: SPARK
Other languages: increased
overhead

Approaches on design
Formal methods
Assume that errors exist and design prevention and
recovery mechanisms.
Program verification does not mean error-proof
programs []. Mathematical proofs can also be
faulty. So whereas verification might reduce the
program-testing load, it cannot eliminate it (F.P.
Brooks, No Silver Bullet, 1987).

THANK YOU.!

Our old brain runs by instinct. Thats the part that animals have. They dont
ask questions. The purpose of our 'new brain' is to override and challenge
our old brain, and we do that by asking questions.
ANY QUESTIONS ?

You might also like