4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

15
1 | Page SUMMER TRAINING(COE 409) PROJECT REPORT ON FITNESSE-API TESTING DONE AT THE ROYAL BANK OF SCOTLAND Supreet Narang 314/CO/09 Final Year, NSIT, DWARKA

Transcript of 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

Page 1: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

1 | P a g e

SUMMER TRAINING(COE 409)

PROJECT REPORT ON

FITNESSE-API TESTING

DONE AT

THE ROYAL BANK OF SCOTLAND

Supreet Narang

314/CO/09

Final Year, NSIT,

DWARKA

Page 2: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

2 | P a g e

PREFACE

The purpose of this report is to explain what I did and learned during my internship

period with the Royal bank of Scotland in the Division of Post Execution Services. The report

is also a partial fulfillment of the requirement for the award of the degree of Bachelor of

Engineering in Computer Engineering. The report focuses primarily on the assignments

handled, working environment that I encountered when handling various tasks assigned to

me by the supervisor.

Page 3: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

3 | P a g e

ACKNOWLEDGEMENT

I want to express my deep sense of gratitude to Mr.Prashant kumar Jha, Technical manager

The supervision and support that he gave truly help the progression and smoothness of the

internship program. The co-operation is much indeed appreciated

My grateful thanks also goes to Mr. Kshitij Gupta and rest of the team member of post execution

services. A big contribution and hard worked from them during the eight week is very great indeed.

Besides, this internship program makes me realized the value of working together as a team and as

a new experience in working environment, which challenges us every minute.

Page 4: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

4 | P a g e

TABLE OF CONTENTS ...........................................................................................

CHAPTER ONE ...............................................................................................................

1.2 About RBS..................................................................................................5

CHAPTER TWO ..................................................................................................8

2.0 Acceptance testing ........................................................................................ 8

2.0.1 What is acceptance testing?

2.0.2 Advantages of Acceptance Testing

2.0.3 Where does testing fits in?

2.1 Fitnesse........................................................................................................... 9

2.1.1 wiki pages

2.1.2 Fixtures

2.1.3 Test System

2.2 Advantage of Fitnesse As a tool ..........................................................................11

2.3 Acceptance test vs unit test................................................................................. 12

2.4 Fitnesse test setup-Netting use test.................................................................... 12

2.5 Fitnesse test setup-Splitting use test……………………………………………13

2.6 Fitnesse test setup-Amneding use test..................................................................13

CHAPTER THREE .......................................................................................................... 14 3.1 Conclusion........................................................................................ …..14 3.2 References……………………………………………………………………………15

Page 5: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

5 | P a g e

CHAPTER 1

1.1THE ROYAL BANK OF SCOTLAND

The Royal Bank of Scotland Group plc (also known as RBS Group) is a British banking and

insurance holding company in which the UK Government (HM Treasury) holds an 82% stake.This

stake is held and managed through UK Financial Investments Limited, whose voting rights are

limited to 75% in order for the bank to retain its listing on the London Stock Exchange. In

addition to its primary share listing on the LSE, the company is also listed on the New York Stock

Exchange. The group is based in Edinburgh, Scotland.

The RBS Group operates a wide variety of banking brands offering personal and business

banking, private banking, insurance and corporate finance throughout its operations located in

Europe, North America and Asia. In the UK and Republic of Ireland, the main subsidiary

companies are: The Royal Bank of Scotland; National Westminster Bank; Ulster

Bank; Drummonds; and Coutts & Co. In the United States, it owns Citizens Financial Group, the

8th largest bank in the country. From 2004 to 2009 it was the second largest shareholder in

the Bank of China, itself the world's fifth largest bank by market capitalisation in February

2008. Insurance companies include Churchill Insurance, Direct Line, Privilege, and NIG.

ABOUT RBS INDIA

The Private Banking business in India is part of The Royal Bank of Scotland N.V. (RBS NV).RBS NV

is part of The Royal Bank of Scotland Group Plc (RBSG) whose wealth management division

comprises several private banking businesses.

The wealth management division includes, Coutts and Adam & Co. and is one of the world’s

oldest and most respected private banks.

W.e.f 19 March, 2010, ABN AMRO Bank N.V. in India was renamed as The Royal Bank of Scotland

N.V.The Royal Bank of Scotland Group PLC’s (RBSG) increased its shareholding in RFS Holdings

BV to approx 97.717%. Consequently, the shareholding of the State of Netherlands and Banco

Santander SA was reduced to approx 1.2505% and approx 1.03% respectively in December 2010.

In 300 years, The Royal Bank of Scotland Group has grown to become one of the largest financial

services groups in the world. Its brands operate around the globe to provide banking services for

individuals, businesses and institutions.

In 2007, the Group strengthened its presence across the globe through the purchase of several

parts of the Dutch bank, ABN AMRO, including their businesses in India.

The Group serves a variety of medium to large enterprises, including multi-national corporations

(MNC) and financial institutions. We offer integrated consumer and business banking services

such as transaction banking, risk management, investment banking, private banking and asset

management.

Page 6: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

6 | P a g e

RBS India offers an unparalleled suite of client services in India. Using global reach and drawing

on the expertise of our team of research, sales and trading, equity capital market and mergers &

acquisitions (M&A) advisory professionals, the bank has led many of the biggest and most

innovative landmark transactions in India for Corporate and Institutional Clients.

The bank offers a broad range of transaction banking, fixed income and foreign exchange

products and services, including sales and trading, fixed income origination, derivatives,

structured lending and commodity financing.

Additionally, it provides a diverse range of product offerings including personal loans, credit

cards, savings accounts, financial planning, investment and insurance services, to meet the

everyday financial needs of over a million Personal Banking clients in India.

Asset Management is among the fastest growing asset managers, with just two years of

operations in the country. The bank has ever-increasing distribution and aim to emerge as a

leading player in the Indian asset management industry. Leveraging the Group's comprehensive

research and diverse range of investment products, it offers clients investment options in fixed

income, equities, money markets and structured products.

Microfinance program, the largest amongst its peer foreign banks in India, is aimed at delivering

credit to our target community of impoverished rural woman through intermediaries called

microfinance institutions.

M&ib technology india

Its Global Banking & Markets (GBM) business is a leading banking partner to corporations,

governments and financial institutions around the world. As the investment banking arm of RBS,

it delivers award-winning finance, risk management and investment solutions to global

customers.

GBM Technology India enables the GBM business by creating innovative, smart products that

support business critical applications and infrastructure. GBM Technology India, the largest

global development hub for GBM Technology, brings differentiated value by delivering scale,

talent, and predictability to the technology business.

With end-to-end global product ownership of some of the most critical applications, GBM

Technology India integrates vertically into the global organisation, working on Project

Management, Application Development, Testing and Support. Global operating model gives the

capability to stay ahead of the fast-paced changing markets and offer superior levels of service

quality to our business.

The India organisation, structured in accordance with global product areas, comprises different

technology units that work closely with the global business to deliver innovative solutions that

improve GBM's competitive edge, profitability and client focus. These are:

Page 7: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

7 | P a g e

Client and Sales

Equities and Structured Retail

Fixed Income Currencies and Commodities

Risk and Finance

Lending, Operations and Financing

Business Improvement

.

Group Operations India

Group Operations India (GOI) is part of the Business Services division of the RBS group. People in

GOI provide high quality 24x7 services to different divisions and customer-facing operations of

the Group, as well as back office support, to many of the countries in which RBS is located. GOI

supports the Group’s businesses with multiple tasks across complexity levels ranging from M&A

and sector advisory, equity research, credit trading, derivatives and securities processing to

balance sheet preparation.

Helping different business lines globally and dealing with multiple customer needs gives the

people the opportunity to grow and shape their career in whatever direction they wish – with

our extensive training and career development support we’ll be with you every step of the way.

Page 8: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

8 | P a g e

CHAPTER 2

2.0 ACCEPTANCE TESTING:

2.0.1 What is acceptance testing?

Acceptance testing is a final stage of testing that is performed on a system prior to the system

being delivered to a live environment. Systems subjected to acceptance testing might include

such deliverables as a software system or a mechanical hardware system. Acceptance tests are

generally performed as "black box" tests. Black box testing means that the tester uses specified

inputs into the system and verifies that the resulting outputs are correct, without knowledge of

the system's internal workings.

User acceptance testing (UAT), is the term used when the acceptance tests are performed by the

person or persons who will be using the live system once it is delivered. If the system is being

built or developed by an external supplier, this is sometimes called customer acceptance testing

(CAT). The UAT or CAT acts as a final confirmation that the system is ready for go-live. A

successful acceptance test at this stage may be a contractual requirement prior to the system

being signed off by the client.

2.0.2 Advantage of acceptance testing

1.Reducing the cost of developing the application. Minimal savings that might occur in the early

stages of the development cycle by delaying testing efforts are almost certainly bound to

increase development costs later.

2. Ensuring that the application behaves exactly as expected. For the vast majority of

programs, unpredictability is the least desirable consequence of using an application.

3. Reducing the total cost of ownership. By providing software that looks and behaves as

shown in your documentation, your customers require fewer hours of training and less support

from product experts.

4. Developing loyalty and word-of-mouth market share. Finding success with a program that

offers the kind of quality that only thorough testing can provide is much easier than trying to

build a customer base on buggy and defect-riddled code.

2.0.3 Where does Testing Fit In?

When a software developer writes code, it is common for mistakes to occur, such that

requirements are not adequately implemented or they are forgotten. It is during this process

that errors are introduced into the system. It is also possible that the business had not

communicated their requirements correctly, or they could have insufficient details, which could

result in a system working as designed, but not as expected.

UAT tests are created to verify the system’s behavior is consistent with the requirements. These

Page 9: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

9 | P a g e

tests will reveal defects within the system. The work associated with UAT begins after

requirements are written and continues through the final stage of testing.

AUTOMATION OF ACCEPTANCE TEST USING FITNESSE TOOL

2.1 What is Fitnesse?

FitNesse is a software development collaboration tool Great software requires collaboration and

communication. FitNesse is a tool for enhancing collaboration in software development.

FitNesse enables customers, testers, and programmers to learn what their software should do,

and to automatically compare that to what it actually does do. It compares customers'

expectations to actual results.

It's an invaluable way to collaborate on complicated problems (and get them right) early in

development.Fitnesse is a WIKI WEB SERVER.It is more like a wiki web GUI working on a test

system(slim and fit).Acceptance tests are what Fitnesse is about.

Fitnesse can be described in the terms of three major system:

1.Wiki Pages

2.Fixtures

3. Test System(slim and fit)

2.1.1 Wiki pages

FitNesse leverages the wiki mechanism. Wikis classically allow for the easy and rapid creation of

HTML pages and particularly simplify the expression of tables. These qualities make the

basic Wiki Wiki language an ideal choice for a "user interface" for FitNesse on the one hand it

allows for the simple expression of very free-form tables, on the other hand it limits the contents

of those tables to rather simple text. This means that the WikiWiki language can handle

whatever shape of table is required for a particular test and at the same time limits the contents

of those tables to alphanumeric text that can easily be mapped into a call to a piece of software.

Finally, since each test in FitNesse is a wiki page it is possible to embed each testing table within

wiki text; this allows a functional tester to include descriptive text with a reasonable layout

quickly.

2.1.2 Fixtures

What is Fixture Code?

The fixture is the Java (or some other supported language) class that Slim to process the

contents of the table.

Page 10: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

10 | P a g e

Fixtures are procedures/functions/classes usually written by developers.

They connect HTML table to the code.The code test the data inputted.

JdbcFixtures : A set of Fixtures that provide simple database access.

FitLibrary : Home of the DoFixture, as well as many other helpful fixtures and add-ons.

JfcFixtures A set of Fixtures to test through Swing GUIs .

CommandLineFixture:This fixture launches commands as if they were run from a shell's

command line input.

ServiceFixture :This fixture library can be used to test service oriented or distributed systems. It

also provides fixtures to access database.

2.1.3 Test system

Fitnesse works with the two Test Systems Slim and Fit.

FIT is the older of the two, and uses HTML. The HTML parsing is done on the SUT just prior to the

fixtures being called. This means that there is a lot of code on the SUT. Over the years many

different ports of FIT have been attempted, but because FIT is large, and because programmers

always have better ideas the second and third time they implement something, the various FIT

ports are quite inconsistent. This means that tests written on one platform won't work on

another.

Page 11: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

11 | P a g e

Slim is newer. As the diagram shows, there is very code on the SUT. This is because all the table

processing is done inside FitNesse, within the Slim runners. The Slim Executor and the fixtures

are the only code that lives on the SUT. The Slim Executor is very small and easy to port. The Test

pages are broken down into simple instructions by the Slim Runners. Those instructions are

passed to the Slim Executor which directs the fixtures to call the SUT. This means that new

features added to Slim Runners will not require changes on the Slim Executor, and that all test

pages written for a Slim Runner will work on any different Slim platform.

2.2 The Advantages of FitNesse Tests

Fitnesse automated acceptance tests have several advantages over many kinds of traditional

black-box, GUI-based functional tests:

1. Fitnesse tests can give us feature feedback very early in the project. In fact, the tests ought to

be written first, so programmers can code to the tests.

2. Fitnesse tests can give us feature feedback very frequently. They can be run manually or

automatically by anyone with web access to the server, as frequently as required. Every week,

every day, every hour in a crunch.

3. Fitnesse tests are deterministic: they either run green or red. If they run green for a given

requirement, either the requirement is done and we move on to others, or the set of tests is not

yet exactly right, in which case we refine them. Either way, we are successively refining the

system in an orderly way. With each new test running green, we can all see the system getting

better, more valuable, closer to what we need.

Being based on example data, Fitnesse tests exercise more paths through the business logic.

When you use Fitnesse, you run less risk of missing important features or functional behavior.

Page 12: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

12 | P a g e

2.3 Acceptance Tests vs. Unit Tests

xUnit Building the Code Right

Automated unit tests (or programmer tests, as they are increasingly called), are white-box tests

that describe and verify very low-level behavior. Especially when working test-first,

programmers rely on such tests to make sure that the design is sound, and that there are no

defects. Such tests are built by and largely for programmers, and can be independent of

functionality.

If a team using JUnit or NUnit to do Test-Driven Development is still hampered by a broken

requirements process, they can easily end up building robust, lean, well-factored code with no

business value. (This is, in fact, happening with increasing frequency.)

FitNesse: Building the Right Code

FitNesse automated tests are about building the right code in the first place: the code with the

most business value. While programmers may be involved in writing such tests, they are not just

for programmers. FitNesse tests are especially for customers, business analysts, testing

professionals, support staff, management, and all other stakeholders who need evidence that

the project is producing solid return on investment.

Page 13: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

13 | P a g e

2.4 Fitnesse test setup-Netting use case Definition of Netting In this method of reducing credit, settlement and other risks of financial contracts by aggregating

(combining) two or more obligations to achieve a reduced net obligation.

Netting rules a basic part of master agreements.

Netting rules define precisely the netting of positions or claims between counter parties.

Benefits of Netting

Netting potentially address four major risk in financial area, there are

Reduction of credit risk

Reduction of settlement risk

Reduction of liquidity risk

Reduction of systemic risk

The Netting process occurs in a single transaction and includes:

1.Cancelling all the original trades

2.Booking a single trade with the netted amounts, into one of the trades books

3. IDTs are then created to move the risk from the netted risk book to the original books, this will

ensure that there are no position movements on any of the trader books.

2.5 Fitnesse test setup-Splitting test case

In splitting ,the trader spreads their trades throughout the day. Rather than making a large trade,it splits its trade throughout day in order to benefit from the fluctuation in the market(favorable market situation).

Splitting of trades is based on the

Currency pair

Counterparty id

Trading date

2.6 Fitnesse test setup-Amending test case

In amending,the financials of trades are changed.Financials include trade date,amount traded ,counterparty etc.

Page 14: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

14 | P a g e

CHAPTER 3

3.1 Conclusions

Towards the end of my internship at RBS , I would like to say that the target initially set up, was achieved to a good extent.This helped me a lot to build the zeal to learn more and to be highly precise and accurate in my working. The introduction to an official as well as industrial environment will definitely help me a lot in the future to work in a company concerning the IT field, to cope with the increasing competition in the market. This industrial training has helped me a lot to stand in the corporate world. The testing tool I worked on, is designed to ensure the flawless booking of the trades and Various allocation schemes associated with these trades. In retrospect, I would like to say that the company provided me with ample opportunities to learn and grow in all aspects. . I also have to stress that my colleagues at the

RBS contributed greatly to making my stay there a very enjoyable one I am sure my stint at RBS

would stand me in good stead in all my future endeavors.

Page 15: 4dissertations Aditya Ranade Symbiosis Center for Management HRD Pune

15 | P a g e

3.2 References:

1 http://fitnesse.org/FitNesse.

2. http://fitnesse.org/FitNesse.UserGuide.CreatingTestTables

3. http://fitnesse.org/.FitNesse.UserGuide

4. http://www.guru99.com/user-acceptance-testing.html

5. http://softwaretestingfundamentals.com/acceptance-testing/