You are on page 1of 46

CHAPTER 1

INTRODUCTION
Banking has become the part and parcel of everyone‘s life. Almost everyone uses the
banking sector to perform their tasks. Most of the tasks are been carried out manually.
Now the use of mobile and internet banking facility has reached greater heights. Chat
bots is becoming trending today. They are computer programs that interact with users
using natural languages. In this project we are trying to perform few of the basic
banking operations via chat bots. Now bots in banking sectors are only used to give
guidelines but in this bot, we perform banking operations for a list of few banks.
1.1 Motivation
 In today’s world, managing finance is a challenge being faced by individuals. Most
often,users are unable to keep a track of where they are spending their money and
hence they need some assistance to keep a check on them.
 Our aim was to build a banking bot which can provide the user information about
his financialstatus in an interactive manner.
 In addition to some basic financial assistance, banking bot also intelligently
categorizes the expenses thus keeping the user informed of his spending habits.
 It takes the form of a responsive web application, wherein the user can post his/her
queries in form of text or as a speech input and get appropriate responses.
 It must also provide basic financial details of the user.
 It acts as a simple, banking bot that keeps a track of information regarding your
private finances.
1.2 Problem Definition
 We aim to build a simple, intelligent banking bot which will provide personalized
financial servicesto a user based upon respective wallet details, account
information and previous and scheduled expenditures. The banking bot will take
the form of a responsive web application, wherein the user can post his/her queries
and explore the best possible responses.

1
 Banking Chat is a solution for personalized financial assistance with an easy to use
interface. It first takes a http request with a text from the user. Natural Language
Understanding (NLU) is used to get the intent from the text. A trained model (an
LSTM neural network implemented using Google’s TensorFlow and Python) is
used to predict the next action of the bot. The response is sent to the user and waits
for the next sentence from the user.
1.3 Objective of project
The objective of this project is to contribute to the solution of the problem of direct
communication between User and the bank.
1.4 Limitation of project
 They Don't Do Customer Retention
 They Can't Make Decisions.
 Exorbitant Installation.
 Banking bots Have the Same Answer For a Query.

2
CHAPTER 2
LITERATURE SURVEY
1 Using Fuzzy:- Delphi technique to determine the concession period
in BOT projects
AUTHORS: KhanzadiMostafa,NasirzadehFarnad and AlipourMajid
BOT projects are affected by several risks and uncertainties. One of the most important
issues in this type of contract is to determine the length of concession period
considering these uncertainties. The previous studies have developed several models to
determine the concession period. However, the uncertainties are not taking into account
in most of the previous works. Moreover, none of the previous researches has the
capability to aggregate the opinions of different experts being involved in a project
regarding the values of the uncertain input parameters. In this research, a Fuzzy-Delphi
technique is implemented to determine the length of concession period considering
uncertainties. Using the proposed Fuzzy-Delphi technique, the values of different
uncertain factors affecting a BOT project is determined considering opinions of a group
of experts. The NPV value is calculated considering the resulted aggregated values of
uncertain input parameters. Finally, the concession period is determined using fuzzy
approach. A case study is conducted to evaluate the performance of the proposed
methodology. It is shown that the concession period is determined more effectively
using the proposed approach.

2.1.2 CBR Approach in BOT Project


Risk Assessment
AUTHORS: NingLiu,Dashuang Dai and Haixi Wu
This paper uses case-based reasoning (CBR) approach to establish estimation method of
build-operate-transfer (BOT) project risk, through a CBR assessment system that helps
stakeholder to master the specific features of the BOT project under the present conditions.
Affected by numerous factors related both to the specific features of the project and
dynamically changed situations, BOT projects risk assessment problems are highly

3
unstructured. Risk management aims to anticipate the future performances of the project

4
and the economic parameter range of the project. Through the CBR system, similar cases
can be retrieved to assess the possible influence of BOT project risk degree. An example of
garbage burning power plant in china is explained and evaluated to demonstrate the
feasibility of the method.

2.1.3 Research on the risk evaluation in loan projects of commercial


bank in financial crisis
AUTHORS: Hong Qiaoand Xue-Chen Donga
Loan risk is one of most important source of risk that our commercial bank face and it
constructs the main part of risk management. So strengthening the measurement is of much
significance to our commercial bank. Based on brief introduction of the theory of loan
projects risk, considering the complexity of multi-objective decision of credit risk
assessment in commercial bank, this paper builds a new analysis index system for the loan
projects risk ranking in commercial bank. By using GRA method to determine the weights
of the evaluating indicators and taking the fuzzy comprehensive evaluation as the
evaluation criteria, it advances a new method of loan projects risk assessment in
commercial bank. The practical examples show that this method is feasible.

2.1.4 The role of natural language conversational interface in online


sales: a case study
AUTHORS: Joyce Chai, Jimmy Lin, WlodekZadrozny.
This paper describes the evaluation of a natural language dialog- based navigation system
(HappyAssistant) that helps users access e-commerce sites to find relevant information
about products and services. The prototype system leverages technologies in natural
language processing and human- computer interaction to create a faster and more intuitive
way of interacting with websites, especially for less experienced users. The result of a
comparative study shows that users prefer the natural language-enabled navigation two to
one over the menu driven navigation. In addition, the study confirmed the efficiency of
using natural language dialog in terms of the number of clicks and the amount of time

5
required to obtain the relevant information. In the case study, as compared to the menu
driven system, the average number of clicks used in the natural language system was
reduced by 63.2% and the average time was reduced by 33.3%.

2.2 EXISTING SYSTEM:


Remember the time when we used to rely on IVR customer services and support to resolve
issues related to the computer problem or mobile services. It was surprising how we used
to interact with our mobile devices and type on the glass screen to communicate our
concerns. However, everything wasn‗t really that smooth and functional every time the
approach to customer service is made. The massive issue was that most IVR systems
didn‗t offer quick problem learning or problem-solving abilities. They didn‗t have
learning capabilities that today‗s virtual voice assistant develops over time. Moreover,
typing was not practically the most effective way to interact with a device or a computer
for the most common problems. It wasn‗t that long ago that we had to invest a lot of effort
into fulfilling the minor routines. The world without the voice-driven AI services would
seem slow, inefficient and strenuous now that we can think of adopting enlightened virtual
assistants. They enable us to make informed decisions and solve an issue in a matter of
seconds.

2.3 DISADVANTAGES OF EXISTING SYSTEM:


Banking has become increasingly dependent on information systems and the use of most
modern technology has also become increasingly significant. But, the lack of voice
assistants is being seen in banks. All banks do have the same features as NetBanking, Credit
card services, etc. Apart from providing Business Intelligence and schemes, services in
attracting people, banks should also provide voice assistant services to attract illiterates to
use their banking services.

6
2.4 PROPOSED SYSTEM:
The proposed system is Banking bot is an artificial intelligent develop for banking
operations, who understand people queries and responds accordingly. The main aim of this
project is to develop a banking bot using artificial intelligent algorithms which should be
able to analyze and understand user‘s queries and react accordingly. For any banking
related queries we have to go to the bank or call to customer care. It takes lot of time and
effort and bank people are also very busy to attend our queries. On the other hand we don‘t
get complete information from the customer care executives. It will be more suitable if we
can directly post our queries online or chat with the bank people and get the response with
no time. To overcome this problem we proposed banking bot where people can directly
chat with the bot.
2.5 ADVANTAGES OF PROPOSED SYSTEM:
An automated bot application can communicate with the bank's customers via text
messages.
To minimize the time consumption.

7
CHAPTER 3
SYSTEM REQUIREMENTS

3.1.1 HARDWARE REQUIREMENTS


 System : i5 processor
 Hard Disk : Minimum 40 GB.
 RAM : 8GB

3.1.2 SOFTWARE REQUIREMENTS:

 Operating System: Windows XP, Windows 7, Windows 10.


 Coding Language: Python 3.7

8
3.2 SYSTEM STUDY
FEASIBILITY STUDY
The feasibility of the project is analyzed in this phase and business proposal is put forth
with a very general plan for the project and some cost estimates. During system analysis
the feasibility study of the proposed system is to be carried out. This is to ensure that
the proposed system is not a burden to the company. For feasibility analysis, some
understanding of the major requirements for the system is essential. Three key
considerations involved in the feasibility analysis are
 ECONOMICAL FEASIBILITY
 TECHNICAL FEASIBILITY

 SOCIAL FEASIBILITY

● ECONOMICAL FEASIBILITY
This study is carried out to check the economic impact that the system will have on the
organization. The amount of fund that the company can pour into the research and
development of the system is limited. The expenditures must be justified. Thus the
developed system as well within the budget and this was achieved because most of the
technologies used are freely available. Only the customized products had to be
purchased.

● TECHNICAL FEASIBILITY
This study is carried out to check the technical feasibility, that is, the technical
requirements of the system. Any system developed must not have a high demand on the
available technical resources. This will lead to high demands on the available technical
resources. This will lead to high demands being placed on the client. The developed
system must have a modest requirement, as only minimal or null changes are required
for implementing this system.

9
● SOCIAL FEASIBILITY
The aspect of study is to check the level of acceptance of the system by the user.
This includes the process of training the user to use the system efficiently. The user
must not feel threatened by the system, instead must accept it as a necessity. The level
of acceptance by the users solely depends on the methods that are employed to educate
the user about the system and to make him familiar with it. His level of confidence must
be raised so that he is also able to make some constructive criticism, which is
welcomed, as he is the final user of the system.

3.3SYSTEM ARCHITECTURE:

10
FIG 3.3.1 Architecture Diagram

11
CHAPTER 4
MODULE DESCRIPTION
4.1.1 PYTHON PROGRAMING LANGUAGE
Python is a general-purpose interpreted, interactive, object-oriented, and high-level
programming language. An interpreted language, Python has a design philosophy that
emphasizes code readability (notably using whitespace indentation to delimit code
blocks rather than curly brackets or keywords), and a syntax that allows programmers to
express concepts in fewer lines of code than might be used in languages
such as C++or Java. It provides constructs that enable clear programming on both small
and large scales. Python interpreters are available for many operating systems.
Python, the reference implementation of Python, is open-source software and has a
community- based development model, as do nearly all of its variant implementations.
CPython is managed by the non-profit Python Software Foundation. Python features
a dynamic type system and automatic memory management. It supports multiple
programming paradigms, including object-oriented, imperative, functional and
procedural, and has a large and comprehensive standard library.
Uses of python
 Python can be used on a server to create web applications.
 Python can be used alongside software to create workflows.
 Python can connect to database systems. It can also read and modify files.
 Python can be used to handle big data and perform complex mathematics.Python can be
used for rapid prototyping, or for production-ready software development.
Advantages
o Python works on different platforms (Windows, Mac, Linux, Raspberry Pi, etc.)
o Python has a simple syntax similar to the English language.
o Python has syntax that allows developers to write programs with fewer lines than some
other programming languages.

12
o Python runs on an interpreter system, meaning that code can be executed as soon as
it is written. This means that prototyping can be very quick.
o Python can be treated in a procedural way, an object-orientated way or a functional
way.
Syntax advantages over programming languages
 Python was designed for readability, and has some similarities to the English
language with influence from mathematics.
 Python uses new lines to complete a command, as opposed to other programming
languages which often use semicolons or parentheses.
 Python relies on indentation, using whitespace, to define scope; such as the scope
of loops, functions and classes. Other programming languages often use curly-
brackets for this purpose.
Versions
 The most recent major version of Python is Python 3, which we shall be using in
this project. However, Python 2, although not being updated with anything other
than security updates, is still quite popular.

4.1.2 HTML
HTML code ensures the proper formatting of text and images.
Internet browser may display them as they are intended to look. HTML also
provides a basic structure of the page.
We have 4 web pages: Login, Registration, Banking bot interface and Pie
Chart Representation.
4.1.3 CSS AND BOOTSTRAP
Cascading Style Sheets (CSS) is a style sheet language used for describing the
presentation of a document written in a markup language. It has been used to define the
front end styling ofvarious extension components. Styling of all pages has been done
with the help of CSS. The Styling of the webpages in the project has been done using
CSS and Bootstrap.
4.1.4 JAVA SCRIPT

13
JavaScript is a programming language that adds interactivity to the website. JavaScript is a
full-fledged dynamic programming language that, when applied to an HTML document,
can provide dynamic interactivity on websites. It is an interpreted programming language
withobject-oriented capabilities. JavaScript has been used for the following:
Speech Recognition: We have used the Javascript framework webkitspeechrecognition
to facilitate speech to text conversion in our chatbot.
Automatic Scrolling: Faciliates automatic scroll down to the bottom of the page in
case the length of the page increases.
Loading Symbol: Makes the banking bots conversation more interactive by inserting
aloading symbol during the buffer time taken by the banking bot to predict the output.
Dynamically-Sized Text Box: JavaScript has been used to make our input text-box
dynamic in size by automatic insertion of div tags.
Pie-Chart Representation: Chart.js is an open source library for data visualization.
4.1.5 AJAX
Asynchronous JavaScript And XML is used to send and retrieve data from a server
asynchronously without interfering with the display and behaviour of the existing
page. AJAX is used for the following:
 Send User Query: Intents corresponding to the user queries are sent as a request to
the server.
 Retrieve Predictions: Utterances which are predicted by the AI model are sent
back as response from the server.
4.1.6 DJANGO
Django is a high-level Python web framework that enables rapid development of
secure and maintainable websites. Django takes care of much of the hassle of web
development, so you can focus on writing your app without needing to reinvent the
wheel. Banking bot uses Django as the web framework. It uses the MTV
architecture whose components include Models, Templates, and Views. Inbuilt
Django libraries have been used for user authentication and to add “forgot
password” functionality.
 After the user sets up his/her profile, inbuilt Django authentication is used in order
to allow the user to log in.

14
 In case, the user forgets his/her password, an option to reset the password is also

15
provided. The link to reset the password will be sent to the email account provided
by theuser. This functionality has been implemented using an in- built Django
package.
 While resetting the password, the user must satisfy essential password requirements
such as its length, use of alphabets, numbers and special symbols.
4.1.7 SQ LITE
SQLite is a relational database management system (RDBMS) contained in a C
library. It is the default database system provided by Django. We have SQLite to
store information about the userand his/her various expenses.
4.1.8 TENSORFLOW AND KERAS
TensorFlow is a free and open-source software library for machine learning. It can
be used across a range of tasks but has a particular focus on training and inference
of deep neural networks. It provides inbuilt implementations of CNN and RNN
layers.
TensorFlow was used to make the LSTM Model used to train on the intents and
utterances. The dataset used was a glove vector, consisting of 6 Billion tokens.
LSTM is a special type of Recurrent Neural Network which is used for Natural
Language Processing. It has the added capability of remembering long-term
dependencies. It does so viathe use of structures called gates. There are input gates
and output gates, which regulate the flow of information.

16
4.2 MODULES
1. User signup:
In this module user will register.
2. .Login

In this module user will login with user name and password.
3. Enter message
In this module user will ask any query about bank.
4. Bot replied for asked question
In this module user will receive an answer from bot chat.
5.Logout:
In this module user will logout.

17
CHAPTER 5
DESIGN AND ANALYSIS
5.1 INTRODUCTION
UML is an acronym that stands for Unified Modeling Language. Simply put, UML is a
modern approach to modeling and documenting software. In fact, it’s one of the most
popular business process modeling techniques.
The Unified Modeling Language (UML) is a standard language for specifying,
visualizing, constructing, and documenting the artifacts of software systems, as well as
for business modeling and other non-software systems. The UML represents a
collection of best engineering practices that have proven successful in the modeling of
large and complex systems. The UML is a very important part of developing objects-
oriented software and the software development process. The UML uses mostly
graphical notations to express the design of software projects. Using the UML helps
project teams communicate, explore potential designs, and validate the architectural
design of the software.
It is based on diagrammatic representations of software components. As the old proverb
says: “a picture is worth a thousand words”. By using visual representations, we are
able to better understand possible flaws or errors in software or business processes.
Mainly, UML has been used as a general-purpose modeling language in the field of
software engineering. However, it has now found its way into the documentation of
several business processes or workflows. For example, activity diagrams, a type of
UML diagram, can be used as a replacement for flowcharts. They provide both a more
standardized way of modeling workflows as well as a wider range of features to
improve readability and efficiency.

5 .1.1WHY IS UML DIAGRAM USED?


As the strategic value of software increases for many companies, the industry looks for
techniques to automate the production of software and to improve quality and reduce
cost and time-to-market. These techniques include component technology, visual
programming, patterns and frameworks. Businesses also seek techniques to manage the

18
complexity of systems as they increase in scope and scale.

5 .2 TYPES OF UML DIAGRAMS


There are several types of UML diagrams and each one of them serves a different
purpose regardless of whether it is being designed before the implementation or after
(as part of documentation).
The two most broad categories that encompass all other types are Behavioral UML
diagram and Structural UML diagram. As the name suggests, some UML diagrams try
to analyze and depict the structure of a system or process, whereas other describe the
behavior of the system, its actors, and its building components. The different types are
broken down as follows:
Behavioral UML Diagram
Any real-world system can be represented in either a static form or a dynamic form. A
system is said to be complete if it is expressed in both the static and dynamic ways. The
behavioral diagram represents the functioning of a system.
UML diagrams that deal with the static part of a system are called structural diagrams.
UML diagrams that deal with the moving or dynamic parts of the system are called
behavioral diagrams.

S No Name Rendering
1 Interaction

2 State Machine

Table 1 Behavioral System Representation


Following are the various Behavioral diagrams in UML:
• Activity Diagram
• Use Case Diagram
• Interaction Overview Diagram

19
• Timing Diagram
• State Machine Diagram
• Communication Diagram
• Sequence Diagram
Structural UML Diagrams
Structural diagrams are used to represent a static view of a system. It represents a part
of a system that makes up the structure of a system. A structural diagram shows various
objects within the system.
The following are the various diagrams in Structural UML diagrams:
• Class Diagram
• Object Diagram
• Component Diagram
• Composite Structure Diagram
• Deployment Diagram
• Package Diagram
• Profile Diagram
The Representation of Structural Table

S No Name Rendering

1 Class

2 Use Case

3 Node

Table 2 Structural Table Representation

20
5.2.1 USE CASE DIAGRAM
Display the relationship among actors and Use Cases. A use case is a set of scenarios
that describing an interaction between a user and a system. A use case diagram displays
the relationship among actors and use cases. The two main components of a use case
diagram are use cases and actors.

FIG 5.2.0 Symbolic Representation of Use Case


An actor represents a user or another system that will interact with the system you are
modeling. A use case is an external view of the system that represents some action the
user might perform in order to complete a task. Use cases are used in almost every
project. They are helpful in exposing requirements and planning the project.

FIG 5.2.1 Use Case Diagram

21
5.2.2 CLASS DIAGRAM
Class diagrams are widely used to describe the types of objects in a system and their
relationships. Class diagrams model class structure and contents using design elements
such as classes, packages and objects. Class diagrams describe three different
perspectives when designing a system, conceptual, specification, and implementation.
These perspectives become evident as the diagram is created and help solidify the
design.
• Name
• Attributes
• Operations.
Class diagrams also display relationships such as containment, inheritance, associations
and others. The association relationship is the most common relationship in a class
diagram. The association shows the relationship between instances of classes. Another
common relationship in class diagrams is a generalization. A generalization is used
when two classes are similar, but have some differences.
Classes are composed of three things:

22
FIG 5.2.2 Class Diagram

23
5.2.3 SEQUENCE DIAGRAM
A sequence diagram represents the interaction between different objects in the
system. The important aspect of a sequence diagram is that it is time-ordered. This
means that the exact sequence of the interactions between the objects is represented step
by step. Different objects in the sequence diagram interact with each other by passing
"messages".

FIG 5.2.3 Sequence Diagram

24
5.2.4 COLLABORATION DIAGRAM
A collaboration diagram groups together the interactions between different
objects. The interactions are listed as numbered interactions that help to trace the
sequence of the interactions. The collaboration diagram helps to identify all the possible
interactions that each object has with other objects.

FIG 5.2.4 Collaboration Diagram

25
5.2.5 STATE CHART DIAGRAM
A state diagram, as the name suggests, represents the different states that objects
in the system undergo during their life cycle. Objects in the system change states in
response to events. In addition to this, a state diagram also captures the transition of the
object's state from an initial state to a final state in response to events affecting the
system.

FIG 5.2.5 State Chart Diagram

26
5.2.6 ACTIVITY DIAGRAM
The process flows in the system are captured in the activity diagram. Similar to a state diagram, an
activity diagram also consists of activities, actions, transitions, initial and final states,and guard
conditions.

FIG 5.2.6 Activity Diagram

27
5.2.7 COMPONENT DIAGRAM
The component diagram represents the high-level parts that make up the
system. This diagram depicts, at a high level, what components form part of the system
and how they are interrelated. A component diagram depicts the components culled
after the system has undergone the development or construction phase.

FIG 5.2.7 Component diagram

28
5.2.8 DEPLOYMENT DIAGRAM
The deployment diagram captures the configurations of the runtime elements of the
application. This diagram is by far most useful when a system is built and ready to be
deployed.

FIG 5.2.8 Deployment Diagram

29
CHAPTER 6
IMPLEMENTATION AND RESULTS

6.1 INSTALLATIONS
How to Install Python on Windows and Mac :
There have been several updates in the Python version over the years. The question is
how to install Python? It might be confusing for the beginner who is willing to start
learning Python but this tutorial will solve your query. The latest or the newest version
of Python is version 3.7.4 or in other words, it is Python 3.
Note: The python version 3.7.4 cannot be used on Windows XP or earlier devices.
Before you start with the installation process of Python. First, you need to know about
your System Requirements. Based on your system type i.e. operating system and based
processor, you must download the python version. My system type is a Windows 64-bit
operating system. So the steps below are to install python version 3.7.4 on Windows 7
device or to install Python 3. Download the Python Cheat sheet here. The steps on how
to install Python on Windows 10, 8 and 7 are divided into 4 parts to help understand
better.

6.2 Database Design


The user details are stored in two databases:
User Database
This is the database used for user authentication. It includes the fields user_id, username
and password (which is stored in encrypted form for security reasons). user_id is required
to create different user details databases for each of them. user_id acts as foreign key in the
user details database.
User Details Database
We have stored other user details such as the user's account balance, total expenditure and
expenses in various categories such as food, transportation etc in this database. These
values are either updated or retrieved based on the user’s query. We have used user_id as

30
the foreign key to connect this database to the user database.

Here we have a screenshot of the exact model that was created.

31
CODE SNIPPETS
"""Django's command-line utility for administrative tasks."""
import os import sys
def main():
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'FinBotFrontEnd.settings')
try:
from django.core.management import execute_from_command_line except
ImportError as exc:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and " "available
on your PYTHONPATH environment variable? Did you " "forget to
activate a virtual environment?")
from exc execute_from_command_line(sys.arg)

32
6.2 Registration

The user can register on this page in case he doesn’t have a pre-existing account.

Screen 1: Registration Page

33
6.3.1 Login

The user logs in with his Username and Password. This opens up the ChatBot
interface, where hecan log his queries and get appropriate responses.

Screen 2: Login Page

34
6.2.1 Forgot Password

The user can reset his password if he forgets his original one. This is done using the
Email-ID.Inbuilt Django password reset has been used for the same.
As the website is locally hosted for now, the email is displayed on the command
line and notactually sent via the mail protocol.

Screen 3: Forgot Password

35
Screen 4: Reset Password

36
6.2.2 Banking Bot Interface

The user login opens up the Banking Bot Interface, which is the central point of use for the
user. The user can ask queries and talk to the chatbot here. This process is facilitated by
training of 2 models: Intents and Dialogue. Corresponding to the query entered by the user,
the intent of that query is classified. Based on the intent, the chatbot identifies the
utterance from the dialogue flow and provides the suited response corresponding to the
utterance identified.
The user can enter his/her query in form of a text input or a speech input. In case a speech
inputis entered, the bot converts the speech to text using web Kit Speech Recognition
functionality provided by JavaScript.

Screen 5: Banking Bot Interface

Features of the Banking Bot:


6.2.2.1 Greetings: The Banking bot greets the user when the user initiates his conversation
and says goodbye when the user ends it. This makes the banking bot more
humanlike.

37
6.2.2.2 Account Balance: The Banking bot can provide the current balance present in the
user’s account.

38
CHAPTER 7
TESTING AND VALIDATION
INTRODUCTION
The purpose of testing is to discover errors. Testing is the process of trying to discover
every conceivable fault or weakness in a work product. It provides a way to check the
functionality of components, sub assemblies, assemblies and/or a finished product It is
the process of exercising software with the intent of ensuring that the Software system
meets its requirements and user expectations and does not fail in an unacceptable
manner. There are various types of test. Each test type addresses a specific testing
requirement.
TYPES OF TESTS
7 .4.1 Unit testing
Unit testing involves the design of test cases that validate that the internal program logic
is functioning properly, and that program inputs produce valid outputs. All decision
branches and internal code flow should be validated. It is the testing of individual
software units of the application .it is done after the completion of an individual unit
before integration. This is a structural testing, that relies on knowledge of its
construction and is invasive. Unit tests perform basic tests at component level and test a
specific business process, application, and/or system configuration. Unit tests ensure
that each unique path of a business process performs accurately to the documented
specifications and contains clearly defined inputs and expected results.
7.4.2 Integration testing
Integration tests are designed to test integrated software components to determine if
they actually run as one program. Testing is event driven and is more concerned with
the basic outcome of screens or fields. Integration tests demonstrate that although the
components were individually satisfaction, as shown by successfully unit testing, the
combination of components is correct and consistent. Integration testing is specifically
aimed at exposing the problems that arise from the combination of components.
7.4.3 Functional test

39
Functional tests provide systematic demonstrations that functions tested are available as
specified by the business and technical requirements, system documentation, and user
manuals.
Valid Input : identified classes of valid input must be accepted.
Invalid Input : identified classes of invalid input must be rejected. Functions: identified
functions must be exercised.
Output: identified classes of application outputs must be exercised.
Systems/Procedures : interfacing systems or procedures must be invoked.
Organization and preparation of functional tests is focused on
requirements, key functions, or special test cases. In addition, systematic coverage
pertaining to identify Business process flows; data fields, predefined processes, and
successive processes must be considered for testing. Before functional testing is
complete, additional tests are identified and the effective value of current tests is
determined.

7.4.4 System Test


System testing ensures that the entire integrated software system meets requirements. It
tests a configuration to ensure known and predictable results. An example of system
testing is the configuration oriented system integration test. System testing is based on
process descriptions and flows, emphasizing pre-driven process links and integration
points.
7.4.5 White Box Testing
White Box Testing is a testing in which in which the software tester has knowledge of
the inner workings, structure and language of the software, or at least its purpose. It is
purpose. It is used to test areas that cannot be reached from a black box level.
7.4.6 Black Box Testing
Black Box Testing is testing the software without any knowledge of the inner workings,
structure or language of the module being tested. Black box tests, as most other kinds of
tests, must be written from a definitive source document, such as specification or
requirements document, such as specification or requirements document. It is a testing
in which the software under test is treated, as a black box .you cannot ―see‖ into it. The

40
test provides inputs and responds to outputs without considering how the software
works.
7.4.7 Unit Testing
Unit testing is usually conducted as part of a combined code and unit test phase of the
software lifecycle, although it is not uncommon for coding and unit testing to be
conducted as two distinct phases.
7.4.8 Integration Testing
Software integration testing is the incremental integration testing of two or more
integrated software components on a single platform to produce failures caused by
interface defects.
The task of the integration test is to check that components or software applications, e.g.
components in a software system or – one step up – software applications at the
company level – interact without error.
Test Results: All the test cases mentioned above passed successfully. No defects
encountered.
7.4.9 Acceptance Testing
User Acceptance Testing is a critical phase of any project and requires significant
participation by the end user.

41
7.5 TEST CASES
Input Message 1: Hello

Input Message 2: What features do you have ?

Input Message 3: How much money is there in my account?

42
Input Message 4: What is my total Expenditure?

Input Message 5: I want to buy a new phone.

Input Message 6: Spent 200 on lunch.

Input Message 7: Spent 500 for eye checkup.

43
CHAPTER 8

CONCLUSION
The system is designed for banks use where users can ask any bank related questions like
loan, account, policy etc. This application is developed for web users. The system
recognizes user‘s query and understands what he wants to convey and simultaneously
answers them appropriately. The questions asked by the users can be in any format. There
is no specific format for users to ask questions. The built in artificial intelligence system
realizes users requirements and provides suitable answers to the user.

FUTURE ENHANCEMENT
We experimented this approach on limited set of data. In future, we would like to extend
this work to a massive dataset extracted from real time conversations of banks. Further, it
can be deployed to any particular bank‘s website. Features like transaction history and
other confidential information can be made available to users by deploying private secured
login ID to each customer.

44
REFERENCES
[1] Tiong LK, ―Risks and guarantees in BOT tender,‖Journal of Construction
Engineering and Management,pp.183-187,Jun 1995.
[2] Tiong LK, ―Final negotiation in competitive BOT tender,‖Journal of
Construction Engineering and Management,pp.6-
10,Jan 1997.
[3] Zayed TM and Chang LM, ―Prototype model for build-operate-transfer risk
assessment,‖Journal of Management in Engineering,pp.7-16, Jan 2002.
[4] David AK, ―Risk modeling in energy contracts between host utilities and BOT
plant investors,‖IEEE Transactions on Energy Conversion,pp. 359- 366,Jun l996.
[5] Bell DE, ―Risk,return,andutility,‖Management Science,pp.23-30,Jan 1995.

[6] Feng CM and Kang CC, ―Risk identication and measurement of BOT
projects,‖Journal of the Eastern Asia Society for Transportation Studies
,pp.331- 350,Apr 1999.
[7] De Silva, Garza AG and Maher ML, ―An evolutionary approach to case
adaptation, case-based reasoning research and applications,‖ Proceedings of the Third
International Conference on Case-Based Reasoning, ICCBR-99, Munich,Jul 1999.

45

You might also like