0% found this document useful (0 votes)
11 views

Keval

The document is a project report on an ATM Machine Management System created by Keval B. Patel for his Computer Science class. It outlines the project's objectives, proposed system functionalities, and the system development life cycle (SDLC) phases involved in creating the software. The report includes acknowledgments, a detailed introduction to the ATM system, and sections covering system design, implementation, and testing procedures.

Uploaded by

shlokpatel031
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views

Keval

The document is a project report on an ATM Machine Management System created by Keval B. Patel for his Computer Science class. It outlines the project's objectives, proposed system functionalities, and the system development life cycle (SDLC) phases involved in creating the software. The report includes acknowledgments, a detailed introduction to the ATM system, and sections covering system design, implementation, and testing procedures.

Uploaded by

shlokpatel031
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 67

ACADEMIC YEAR: 2024-25

PROJECT REPORT ON

“ATM MACHINE”

ROLL NO :

NAME : Keval B. Patel

CLASS : XII SCIENCE

SUBJECT : COMPUTER SCIENCE

SUB CODE : 083

PROJECT GUIDE: Mr. BABITKUMAR SHARMA

PGT (CS)

MANAV KENDRA GYAN MANDIR

SCHOOL, KANADRI
CERTIFICATE

This is to certify that Cadet: KEVAL B. PATEL Roll No: has

successfully completed the project Work entitled "ATM MACHINE

MANAGEMENT SYSTEM." in the subject Computer Science (083)

laid down in the regulations of CBSE for the purpose of Practical

Examination in Class XII to be held in Manav Kendra Gyan Mandir

School Kandari on______________.

Examiner:

Name:

Signature:
TABLE OF CONTENTS [ T O C ]

SER DESCRIPTION PAGE NO

01 ACKNOWLEDGEMENT 03

02 INTRODUCTION 06

03 OBJECTIVES OF THE PROJECT 07

04 PROPOSED SYSTEM 08

SYSTEM DEVELOPMENT LIFE CYCLE


05 10
(SDLC)

PHASES OF SYSTEM DEVELOPMENT LIFE


06 11
CYCLE

07 FLOW CHART 23

08 SOURCE CODE 27

09 OUTPUT 55

10 TESTING 61

11 INSTALLATION PROCEDURE 65

HARDWARE AND SOFTWARE


12 69
REQUIREMENTS

13 BIBLIOGRAPHY 70
ACKNOWLEDGEMENT
Apart from the efforts of me, the success of any project
depends largely on the encouragement and guidelines of
many others. I take this opportunity to express my gratitude to
the people who have been instrumental in the successful
completion of this project.
I express deep sense of gratitude to almighty God for giving
me strength for the successful completion of the project.
I express my heartfelt gratitude to my parents for constant
encouragement while carrying out this project.
I gratefully acknowledge the contribution of the individuals
who contributed in bringing this project up to this level, who
continues to look after me despite my flaws,
I express my deep sense of gratitude to the luminary The
Principal, Manav Kendra Gyan Mandir School, Kandari
who has been continuously motivating and extending their
helping hand to us.
I express my sincere thanks to the academician The Vice
Principal, Manav Kendra Gyan Mandir School, Kandari,
for constant encouragement and the guidance provided
during this project
I am overwhelmed to express my thanks to The
Administrative Officer, Manav Kendra Gyan Mandir
School, Kandari for providing me an infrastructure and
moral support while carrying out this project in the
school.
My sincere thanks to Mr. Babitkumar Sharma, Master In-
charge, a guide, mentor all the above a friend, who critically
reviewed my project and helped in solving each and every
problem, occurred during implementation of the project
The guidance and support received from all the members who
contributed and who are contributing to this project, was vital
for the success of the project. I am grateful for their constant
support and help.
PROJECT ON ATM MACHINE
MANAGEMENT SYSTEM

INTRODUCTION

An ATM (Automated Teller Machine) Management System is


a software application designed to streamline the operation
and maintenance of ATMs. It provides functionalities for
secure transactions, cash management, user authentication,
and monitoring of machine performance. The system ensures
the availability of cash, maintains transaction records, and
enhances the overall banking experience for customers by
offering 24/7 banking services.

This project aims to develop a comprehensive ATM Machine


Management System that integrates user-friendly features,
secure transaction processing, and effective backend
management tools. The system is designed to benefit both
customers and financial institutions by streamlining ATM
operations and ensuring service availability.
USES OF THE PROJECT
 Cash Withdrawal and Deposit: Facilitates secure
cash withdrawal and deposit services for users.

 Account Balance Inquiry: Allows users to check


account balances instantly.

 Fund Transfers: Enables transferring funds between


accounts.

 Transaction Records: Maintains detailed logs of all


transactions for auditing and customer records.

 User Authentication: Enhances security using PINs,


biometrics, or card-based verification.

 Cash Management: Monitors cash levels and ensures


timely refills to prevent downtime.

 Fraud Prevention: Detects and prevents unauthorized


access or fraudulent activities.

 24/7 Service Availability: Provides banking services


round the clock without human intervention.
OBJECTIVES OF THE PROJECT

The objective of this project is to provide students with an


opportunity to apply their programming skills to a practical,
real-world problem while enhancing their understanding of
software development principles. It aims to expose students
to the process of creating efficient, user-friendly, and
functional software solutions, preparing them for challenges
in the field of computer science.

• Develop and implement solutions using


programming skills in a practical context.
• Apply object oriented programming principles
effectively when developing small to medium sized
project.
• Write effective procedural code to solve small to
medium sized problems.
• Students will demonstrate a breadth of knowledge in
computer science as exemplified in the areas of
systems, theory and software development.
• Students will demonstrate ability to conduct a
research or applied computer science project
requiring writing and presentation skills which
exemplify scholarly style in computer science.
PROPOSED SYSTEM

The proposed ATM Management System aims to automate


essential ATM functionalities using Python for backend logic
and MySQL for database management. The system includes
modules for User Authentication, Balance Inquiry, Cash
Withdrawal, Cash Deposit, Fund Transfer, Change PIN,
and Transaction History. User authentication ensures
secure login by verifying the account number and PIN.

The balance inquiry module fetches and displays the current


account balance, while the cash withdrawal and deposit
modules update the balance accordingly after validating
sufficient funds. Fund transfer allows secure money transfers
between accounts, and the PIN change module enables users
to update their PIN securely. The transaction history module
maintains and displays a log of all transactions, including
withdrawals, deposits, and transfers.

The database consists of three main tables: Customers,


which stores account details like account number, name,
balance, and PIN; Transactions, which logs transaction
details such as transaction ID, account number, type, amount,
and timestamp; and Fund Transfers, which manages records
of transfers between accounts. The workflow begins with
secure user login, followed by performing operations like
balance inquiries or transactions, viewing transaction history,
and updating the PIN.

Security features include PIN-based authentication, data


validation, and secure database updates to ensure accurate
and error-free processing. This system is designed to be
efficient, secure, and user-friendly while providing robust
financial transaction capabilities.
SYSTEM DEVELOPMENT LIFE CYCLE
(SDLC)

The systems development life cycle is a project


management technique that divides complex projects into
smaller, more easily managed segments or phases.
Segmenting projects allows managers to verify the successful
completion of project phases before allocating resources to
subsequent phases.

Software development projects typically include


initiation, planning, design, development, testing,
implementation, and maintenance phases. However, the
phases may be divided differently depending on the
organization involved.

For example, initial project activities might be


designated as request, requirements-definition, and planning
phases, or initiation, concept-development, and planning
phases. End users of the system under development should
be involved in reviewing the output of each phase to ensure
the system is being built to deliver the needed functionality.
PHASES OF SYSTEM DEVELOPMENT
LIFE CYCLE

INITIATION PHASE

The Initiation Phase begins when a business sponsor


identifies a need or an opportunity.

The purpose of the Initiation Phase is to:

• Identify and validate an opportunity to improve


business accomplishments of the organization or a
deficiency related to a business need.
• Identify significant assumptions and constraints on
solutions to that need.
• Recommend the exploration of alternative concepts
and methods to satisfy the need including questioning
the need for technology, i.e., will a change in the
business process offer a solution?
• Assure executive business and executive technical
sponsorship. The Sponsor designates a Project
Manager and the business need is documented in a
Concept Proposal. The Concept Proposal includes
information about the business process and the
relationship to the Agency/Organization.
• Infrastructure and the Strategic Plan. A successful
Concept Proposal results in a Project Management
Charter which outlines the authority of the project
manager to begin
the project.

Careful oversight is required to ensure projects


support strategic business objectives and resources are
effectively implemented into an organization's enterprise
architecture. The initiation phase begins when an opportunity
to add, improve, or correct a system is identified and formally
requested through the presentation of a business case. The
business case should, at a minimum, describe a proposal’s
purpose, identify expected benefits, and explain how the
proposed system supports one of the organization’s business
strategies. The business case should also identify alternative
solutions and detail as many informational, functional, and
network requirements as possible.
SYSTEM CONCEPT DEVELOPMENT PHASE

The System Concept Development Phase begins after a


business need or opportunity is validated by the
Agency/Organization Program Leadership and the
Agency/Organization CIO.

The purpose of the System Concept Development Phase


is to:

• Determine the feasibility and appropriateness of the


alternatives.
• Identify system interfaces.
• Identify basic functional and data requirements to
satisfy the business need.
• Establish system boundaries; identify goals,
objectives, critical success factors, and performance
measures.
• Evaluate costs and benefits of alternative approaches
to satisfy the basic functional requirements
• Assess project risks
• Identify and initiate risk mitigation actions, and
Develop high-level technical architecture, process
models, data models, and a concept of operations.
This phase explores potential technical solutions
within the context of the business need.
• It may include several trade-off decisions such as the
decision to use COTS software products as opposed
to developing custom software or reusing software
components, or the decision to use an incremental
delivery versus a complete, onetime deployment.
• Construction of executable prototypes is encouraged
to evaluate technology to support the business
process. The System Boundary Document serves as
an important reference document to support the
Information Technology Project Request (ITPR)
process.
• The ITPR must be approved by the State CIO before
the project can move forward.
PICTORIAL REPRESENTATION OF SDLC:
PLANNING PHASE

The planning phase is the most critical step in


completing development, acquisition, and maintenance
projects. Careful planning, particularly in the early stages of a
project, is necessary to coordinate activities and manage
project risks effectively. The depth and formality of project
plans should be commensurate with the characteristics and
risks of a given project. Project plans refine the information
gathered during the initiation phase by further identifying the
specific activities and resources required to complete a
project.
A critical part of a project manager’s job is to
coordinate discussions between user, audit, security, design,
development, and network personnel to identify and
document as many functional, security, and network
requirements as possible. During this phase, a plan is
developed that documents the approach to be used and
includes a discussion of methods, tools, tasks, resources,
project schedules, and user input. Personnel assignments,
costs, project schedule, and target dates are established.
A Project Management Plan is created with
components related to acquisition planning, configuration
management planning, quality assurance planning, concept of
operations, system security, verification and validation, and
systems engineering management planning.
REQUIREMENTS ANALYSIS PHASE

This phase formally defines the detailed functional


user requirements using high-level requirements identified in
the Initiation, System Concept, and Planning phases. It also
delineates the requirements in terms of data, system
performance, security, and maintainability requirements for
the system. The requirements are defined in this phase to
alevel of detail sufficient for systems design to proceed. They
need to be measurable, testable, and relate to the business
need or opportunity identified in the Initiation Phase. The
requirements that will be used to determine acceptance of the
system are captured in the Test and Evaluation Master Plan.

The purposes of this phase are to:

• Further define and refine the functional and data


requirements and document them in the
Requirements Document,
• Complete business process reengineering of the
functions to be supported (i.e., verify what information
drives the business process, what information is
generated, who generates it, where does the
information go, and who processes it),
• Develop detailed data and process models (system
inputs, outputs, and the process.
• Develop the test and evaluation requirements that will
be used to determine acceptable system
performance.
DESIGN PHASE

The design phase involves converting the


informational, functional, and network requirements identified
during the initiation and planning phases into unified design
specifications that developers use to script programs during
the development phase. Program designs are constructed in
various ways. Using a top-down approach, designers first
identify and link major program components and interfaces,
then expand design layouts as they identify and link smaller
subsystems and connections. Using a bottom-up approach,
designers first identify and link minor program components
and interfaces, then expand design layouts as they identify
and link larger systems and connections. Contemporary
design techniques often use prototyping tools that build mock-
up designs of items such as application screens, database
layouts, and system architectures. End users, designers,
developers, database managers, and network administrators
should review and refine the prototyped designs in an iterative
process until they agree on an acceptable design. Audit,
security, and quality assurance personnel should be involved
in the review and approval process. During this phase, the
system is designed to satisfy the functional requirements
identified in the previous phase. Since problems in the design
phase could be very expensive to solve in the later stage of
the software development, a variety of elements are
considered in the design to mitigate risk.

These include:

• Identifying potential risks and defining mitigating


design features.
• Performing a security risk assessment.
• Developing a conversion plan to migrate current data
to the new system.
• Determining the operating environment.
• Defining major subsystems and their inputs and
outputs.
• Allocating processes to resources.
• Preparing detailed logic specifications for each
software module. The result is a draft System Design
Document which captures the preliminary design for
the system.
• Everything requiring user input or approval is
documented and reviewed by the user. Once these
documents have been approved by the Agency CIO
and Business Sponsor, the final System Design
Document is created to serve as the Critical/Detailed
Design for the system.
• This document receives a rigorous review by Agency
technical and functional representatives to ensure
that it satisfies the business requirements. Concurrent
with the development of the system design, the
Agency Project Manager begins development of the
Implementation Plan, Operations and Maintenance
Manual, and the Training Plan.
DEVELOPMENT PHASE

The development phase involves converting


design specifications into executable programs. Effective
development standards include requirements that
programmers and other project participants discuss
design specifications before programming begins. The
procedures help ensure programmers clearly understand
program designs and functional requirements.
Programmers use various techniques to develop
computer programs. The large transaction oriented
programs associated with financial institutions have
traditionally been developed using procedural
programming techniques. Procedural programming
involves the line-by-line scripting of logical instructions
that are combined to form a program. Effective completion
of the previous stages is a key factor in the success of the
Development phase. The Development phase consists of:

• Translating the detailed requirements and design into


system components.
• Testing individual elements (units) for usability.
• Preparing for integration and testing of the IT system.
INTEGRATION AND TEST PHASE

• Subsystem integration, system, security, and user


acceptance testing is conducted during the integration
and test phase. The user, with those responsible for
quality assurance, validates that the functional
requirements, as defined in the functional
requirements document, are satisfied by the
developed or modified system. OIT Security staff
assess the system security and issue a security
certification and accreditation prior to
installation/implementation.

Multiple levels of testing are performed, including:

• Testing at the development facility by the contractor


and possibly supported by end users

• Testing as a deployed system with end users working


together with contract personnel

• Operational testing by the end user alone performing


all functions. Requirements are traced throughout
testing, a final Independent Verification & Validation
evaluation is performed and all documentation is
reviewed and accepted prior to acceptance of the
system.

IMPLEMENTATION PHASE

This phase is initiated after the system has been


tested and accepted by the user. In this phase, the system is
installed to support the intended business functions. System
performance is compared to performance objectives
established during the planning phase. Implementation
includes user notification, user training, installation of
hardware, installation of software onto production computers,
and integration of the system into daily work processes. This
phase continues until the system is operating in production in
accordance with the defined user requirements.

OPERATIONS AND MAINTENANCE PHASE

The system operation is ongoing. The system is


monitored for continued performance in accordance with user
requirements and needed system modifications are
incorporated. Operations continue as long as the system can
be effectively adapted to respond to the organization’s needs.
When modifications or changes are identified, the system may
reenter the planning phase.
The purpose of this phase is to:

• Operate, maintain, and enhance the system.


• Certify that the system can process sensitive
information.
• Conduct periodic assessments of the system to
ensure the functional requirements continue to be
satisfied.
• Determine when the system needs to be modernized,
replaced, or retired

FLOW CHART

START

CONN = SQL . CONNECT ( HOST =' LOCALHOST ', USER =' ROOT ’, PASSWORD ='MKGM123', DATABASE =’ KCS ’)

IMPORT MYSQL . CONNECTOR AS SQL

C 1=CONN. CURSOR ()
print(" WELCOME TO OUR BANK ")

PRINT("1.T O CREATE ACCOUNT ")

PRINT("2.T O LOGIN")

PRINT("3. EXIT")

OP=INT( INPUT("ENTER YOUR CHOICE:"))

IF
OP==1:
c="y"

M=INT(INPUT(“ENTER A 4 DIGIT ACCOUNT NO.:”))

WHILE
C ==”Y”

CB="SELECT * FROM RECORDS where ACCONT_NO={}".format(m)

CHECK WHETHER THE NUMBER EXISTS


IF NO
CREATE
ACCOUN
T

IF
OP==2

print("1.Depositng money")
print("2.withdrawing money")
print("3.Transfering money")
print("4.Checking balance")
print("5.Changing Account number
")

IF CH==1.WITHDRAW THE MONEY

IF CH==1.DEPOSIT THE MONEY


STOP

SOURCE CODE
Create a Python project of a ATM MACHINE
MANAGEMENT SYSTEM.

Note:

• Display the options and ask the user to enter


the choice.

• Show an in progress message.

• Create appropriate response.

• Allow the user to continue/ or quit the game.


SOLUTION:

Table Creation:

import mysql.connector as sql

conn=sql.connect(host='localhost',user='root',password

='mkgm123',database='kcs')

if conn.is_connected():

print("successfully connected")

c1=conn.cursor()

mn="CREATE TABLE RECORDS( ACCONT_NO INT(4)

primary key,PASSWORD INT(3),NAME

VARCHAR(20),CR_AMT INT default(0),WITHDRAWL INT

default(0),BALANCE INT default(0))"

c1.execute(mn)

print("Successfully created")
Main Code:

import mysql.connector as sql

conn=sql.connect(host='localhost',user='root',password

='mkgm123',database='kcs')

c1=conn.cursor()

print("========================================

========================================")

print("[-*-*-*-*-*-*-*-WELCOME TO OUR ATM-*-*-*-*-

*-*-*-]")

print("========================================

========================================")
while True:

print("1.To create account")

print("2.To login")

print("3.Exit")

print("========================================

========================================")

op=int(input("Enter your choice :"))

print("========================================

========================================")

if op==1:

c="y"
while c=="y":

m=int(input("Enter a 4 digit account number

:"))

cb="select * from records where

ACCONT_NO={}".format(m)

c1.execute(cb)

d=c1.fetchall()

data=c1.rowcount

if data==1:

print("========================================

========================================")

print("This account number already

exists!")
c=input("Do you want to continue (y/n) :")

print("========================================

========================================")

if c=="y":

continue

else:

print(" Thank you.")

print(" PLEASE CLOSE THIS FILE

BEFORE EXITING")

print(" Visit again.")

print("========================================

========================================")
else:

name=input("Enter your name :")

passw=int(input("Enter your password :"))

ab="insert into

records(ACCONT_NO,PASSWORD,NAME)

values({},{},'{}')".format(m,passw,name)

print("========================================

========================================")

c1.execute(ab)

conn.commit()

print("Account successfully created")


print("The minimum balance is 1000")

print("========================================

========================================")

s=int(input("Enter amount of money to be

deposited :"))

print("========================================

========================================")

sr="update records set CR_AMT={} where

ACCONT_NO={}".format(s,m)

c1.execute(sr)

conn.commit()
ef="update records set balance=cr_amt-

withdrawl where ACCONT_NO={}".format(m)

c1.execute(ef)

conn.commit()

print("Successfully Deposited")

print(" Thank you")

print(" PLEASE CLOSE THIS FILE

BEFORE EXITING")

print(" Visit again")

break

elif op==2:

y="y"

while y=="y":
acct=int(input("Enter your account number

:"))

cb="select * from records where

ACCONT_NO={}".format(acct)

c1.execute(cb)

c1.fetchall()

data=c1.rowcount

if data==1:

pas=int(input("Enter your password :"))

print("========================================

========================================")

e="select password from records where

ACCONT_NO={}".format(acct)
c1.execute(e)

a=c1.fetchone()

d=list(a)

if pas==d[0]:

print("correct")

print("1.Depositng money")

print("2.Withdrawing money")

print("3.Transfering money")

print("4.Checking balance")

print("5.Changing Account number ")

print("========================================

========================================")

r=int(input("Enter your choice :"))


print("========================================

========================================")

if r==1:

amt=int(input("Enter amount of

money to be deposited :"))

print("========================================

========================================")

sr="update records set

CR_AMT=CR_AMT + {} where

ACCONT_NO={}".format(amt,acct)

c1.execute(sr)
conn.commit()

ef="update records set

balance=cr_amt-withdrawl where

ACCONT_NO={}".format(acct)

c1.execute(ef)

conn.commit()

print("Successfully Deposited")

t=input("Do you want to continue

(y/n) :")

print("========================================

========================================")

if t=="y":
continue

else:

print(" Thank you")

print(" PLEASE CLOSE THIS

FILE BEFORE EXITING")

if r==2:

amt=int(input("Enter amount of

money to withdraw :"))

print("========================================

========================================")

ah="select BALANCE from records

where accont_no={}".format(acct)

c1.execute(ah)
m=c1.fetchone()

if amt >m[0]:

print("Your are having less

than",amt)

print("Please try again!")

print("========================================

========================================")

else:

sr="update records set

balance=balance - {} where

ACCONT_NO={}".format(amt,acct)
ed="update records set

WITHDRAWL ={} where

ACCONT_NO={}".format(amt,acct)

c1.execute(ed)

c1.execute(sr)

conn.commit()

print("Successfully Updated")

y=input("Do you want to continue

(y/n) :")

if y=="y":

continue

else:

print(" Thank you")

print(" PLEASE CLOSE THIS

FILE BEFORE EXITING")


if r==3:

act=int(input("Enter the account

number to be transferred :"))

print("========================================

========================================")

cb="select * from records where

ACCONT_NO={}".format(act)

c1.execute(cb)

c1.fetchall()

data=c1.rowcount

if data==1:
print(act,"number exists")

m=int(input("Enter the money to

be transferred :"))

print("========================================

========================================")

ah="select BALANCE from

records where accont_no={}".format(acct)

c1.execute(ah)

c=c1.fetchone()

if m > c[0]:

print("Your are having less

than",m)
print("Please try again!")

print("========================================

========================================")

else:

av="update records set

balance=balance-{} where

ACCONT_NO={}".format(m,acct)

cv="update records set

balance=balance+{} where

ACCONT_NO={}".format(m,act)
w="update records set

withdrawl=withdrawl+{} where

accont_no={}".format(m,acct)

t="update records set

CR_AMT=CR_AMT+{} where

accont_no={}".format(m,act)

c1.execute(av)

c1.execute(cv)

c1.execute(w)

c1.execute(t)

conn.commit()

print("Successfully

Transferred")

y=input("Do you want to

continue (y/n) :")


if y=="y":

continue

else:

print(" Thank

you")

print(" PLEASE CLOSE

THIS FILE BEFORE EXITING")

if r==4:

ma="select balance from records

where accont_no={}".format(acct)

c1.execute(ma)

k=c1.fetchone()

print("Current balance of your

account :",k)
print("========================================

========================================")

y=input("Do you want to continue

(y/n) :")

if y=="y":

continue

else:

print(" Thank you")

print(" PLEASE CLOSE THIS

FILE BEFORE EXITING")

if r==5:

i=int(input("Enter your new account

number :"))
cb="select * from records where

ACCONT_NO={}".format(i)

c1.execute(cb)

c1.fetchall()

data=c1.rowcount

if data==1:

print("Soory,this number already

exists")

print("Try again!")

y=input("Do you want to

continue (y/n) :")

if y=="y":

continue

else:
print(" Thank

you")

print(" PLEASE CLOSE

THIS FILE BEFORE EXITING")

else:

name=input("Enter your name

:")

ar="Update records set

accont_no={} where name='{}' and

password={}".format(i,name,pas)

c1.execute(ar)

conn.commit()

print("Your new account number

is :",i)
else:

print("Wrong password!!!")

print("========================================

========================================")

y=input("Do you want to continue (y/n)

:")

else:

print("Your account does not exists!")


elif op==3:

print(" Exiting")

print("Please close this file before exiting.")

c1.close()

break

else:

print('Invalid input entered, please try again.')


OUTPUT

Python
MySQL
TESTING

Software Testing is an empirical investigation conducted to

provide stakeholders with information about the quality of the product


or service under test [1], with respect to the context in which it is
intended to operate. Software Testing also provides an objective,
independent view of the software to allow the business to appreciate
and understand the risks at implementation of the software. Test
techniques include, but are not limited to, the process of executing a
program or application with the intent of finding software bugs.
It can also be stated as the process of validating and
verifying that a software program/application/product meets the
business and technical requirements that guided its design and
development, so that it works as expected and can be implemented
with the same characteristics. Software Testing, depending on the
testing method employed, can be implemented at any time in the
development process, however the most test effort is employed after
the requirements have been defined and coding process has been
completed.

TESTING METHODS
Software testing methods are traditionally divided into black
box testing and white box testing. These two approaches are used to
describe the point of view that a test engineer takes when designing
test cases.
BLACK BOX TESTING

Black box testing treats the software as a "black box,"


without any knowledge of internal implementation. Black box testing
methods include: equivalence partitioning, boundary value analysis,
all-pairs testing, fuzz testing, model-based testing, traceability matrix,
exploratory testing and specification-based testing.

SPECIFICATION-BASED TESTING

Specification-based testing aims to test the functionality of


software according to the applicable requirements [16] Thus, the
tester inputs data into, and only sees the output from, the test object.
This level of testing usually requires thorough test cases to be
provided to the tester, who then can simply verify that for a given
input, the output value (or behavior), either "is" or "is not" the same
as the expected value specified in the test case. Specification-based
testing is necessary, but it is insufficient to guard against certain risks

ADVANTAGES AND DISADVANTAGES

The black box tester has no "bonds" with the code, and a
tester's perception is very simple: a code must have bugs. Using the
principle, "Ask and you shall receive," black box testers find bugs
where programmers don't. But, on the other hand, black box testing
has been said to be "like a walk in a dark labyrinth without a
flashlight," because the tester doesn't know how the software being
tested was actually constructed.
That's why there are situations when (1) a black box tester
writes many test cases to check something that can be tested by
only one test case, and/or (2) some parts of the back end are not
tested at all. Therefore, black box testing has the advantage of "an
unaffiliated opinion," on the one hand, and the disadvantage of "blind
exploring," on the other.

WHITE BOX TESTING

White box testing, by contrast to black box testing, is when


the tester has access to the internal data structures and algorithms
(and the code that implement these)

Types of white box testing: -


The following types of white box testing exist:
• api testing - Testing of the application using Public
and Private APIs.
• Code coverage - creating tests to satisfy some
criteria of code coverage.
For example, the test designer can create tests to cause all
statements in the program to be executed at least once.
• fault injection methods.
• mutation testing methods.
• static testing - White box testing includes all static
testing.
CODE COMPLETENESS EVALUATION

White box testing methods can also be used to evaluate the


completeness of a test suite that was created with black box testing
methods. This allows the software team to examine parts of a
system that are rarely tested and ensures that the most important
function points have been tested.

Two common forms of code coverage are:


• Function Coverage: Which reports on functions
executed and
• Statement Coverage: Which reports on the
number of lines executed to complete the test.
They both return coverage metric, measured as a percentage
INSTALLATION PROCEDURE

ATM MACHINE:-

Pre-Requisites :

1. You have to have the following softwares for the


successful running of this software; which are

I) Python (Only for the First time), it is


downloadable from 'www.python.org'.

II) MySQL (Only for the First time), it is


downloadable from 'www.mysql.org'.

Installation :-

1. There will be two folders namely 'Python Files' and


'EXE files' in the folder 'Source Code'.
2. The folder 'Python Files' will contain the
source code of the software in python language. If you are
running the software by the 3rd step mentioned below you
have to pre install the following modules :-

mysql.connector or pymysql

3. Open the files in any python editors and run it to


start and work on the software.

4. The folder 'EXE files' will contain two files namely


'main.exe' and 'Tables_in_mysql.exe'.

5. First run the 'Tables_in_mysql.exe' to create the


tables in MySQL.

6. Then run the file 'main.exe' to start and work on


the software.

CAUTION :-

If you are running the software through running the python


files or by running the .exe files ; first run the file named
'Tables_in_mysql'.

The .exe file will take some time to run; so be


PATIENT.
HARDWARE AND SOFTWARE
REQUIREMENTS

I.OPERATING SYSTEM : WINDOWS 10 AND ABOVE

II. PROCESSOR : PENTIUM(ANY) OR AMD

ATHALON(3800+- 4200+

DUAL CORE)

III. MOTHERBOARD :1.845 OR 915,995 FOR PENTIUM 0R

MSI K9MM-V VIA K8M800+8237R PLUS

CHIPSET FOR AMD ATHALON

IV. RAM : 512MB+

V. Hard disk : SATA 40 GB OR ABOVE

VI. CD/DVD r/w multi drive combo : (If back up required)

VII. FLOPPY DRIVE 1.44 MB : (If Backup required)

VIII. MONITOR 14.1 or 15 -17 inch

IX. Key board and mouse

X. Printer : required

SOFTWARE REQUIREMENTS:

I. Windows OS
II. Python
BIBLIOGRAPHY

• Computer Science with Python - Class XI&XII by:


Sumita Arora.
• Mr. BABITKUMAR SHARMA

***********

You might also like