0% found this document useful (0 votes)
66 views32 pages

Gauss Law and It's Application

This document is a dissertation submitted by Hariprasath.B to Vidya Vikas International School in Pudukkottai, Tamil Nadu for their Class XII Computer Science examination. It discusses a library management system project developed using Python. The project aims to automate operations of a library and help manage book inventory, customer records, and sales reports.

Uploaded by

gomathivm123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
66 views32 pages

Gauss Law and It's Application

This document is a dissertation submitted by Hariprasath.B to Vidya Vikas International School in Pudukkottai, Tamil Nadu for their Class XII Computer Science examination. It discusses a library management system project developed using Python. The project aims to automate operations of a library and help manage book inventory, customer records, and sales reports.

Uploaded by

gomathivm123
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 32

VIDYA VIDYA INTERTION SCHOOL,

PUDUKKOTTAI 613301,TAMIL NADU

CBSE AFFILIATION NUMBER- 1930305

LIBRARY MANAGEMENT SYSTEM (LMS)

A dissertation submitted to Vidya vikas internation gantharvakkottai


School, Pudukkottai,Tamil Nadu for the CBSE Senior Secondary
Examination
Class XII of COMPUTER SCIENCE

SUBMITTED BY:
HARIPRASATH.B Roll Number-
UNDER THE SUPERVISION AND GUIDANCE of
Mr. Raja raja cholan

Department of Computer Science


Vidya vikas internation gandarvakkottai School,,Pudukkottai 613301,Tamil
Nadu
January,2023

1
DEPARTMENT OF COMPUTER SCIENCE

CERTIFICATE
The project report entitled : LIBRARY MANAGEMENT

Submitted by:
HARIPRASATH.B
of grade XII for the XI CBSE Senior Secondary Examination Class XII of COMPUTER SCIENCE at

VIDYAVIDYA INTERNATIONAL GANDARVAKKOTTAI SCHOOL,TAMILNADU

Signature of Teacher in-charge Signature of Principal

Signature of Internal Examiner Signature of External Examiner

2
TABLE OF CONTENTS [ T O C ]

3
SER DESCRIPTION PAGE NO

01 ACKNOWLEDGEMENT 04

02 INTRODUCTION 05

03 OBJECTIVES OF THE PROJECT 05

04 PROPOSED SYSTEM 06

05 SYSTEM DEVELOPMENT LIFE CYCLE (SDLC) 07

06 SOFTWARE DESCRIPTION 08

07 LIBRARIES FILES AND THEIR USES 09

08 USER DEFINED FUNCTIONS IN PYTHON 12

09 FILE HANDLING IN PYTHON 14

10 MODULES 17

11 SOURCE CODE 18

12 27
OUTPUT and TESTING

13 HARDWARE AND SOFTWARE REQUIREMENTS 31

14 BIBLIOGRAPHY 32

ACKNOWLEDGEMENT

4
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 would like to express my special thanks of gratitude to my


teachers as well as to our Principal and our school management
who gave me the golden opportunity to do this wonderful project
on the topic study on LIBRARY MANAGEMENT SYSTEM which
also helped me in doing a lot of research and I came to know
about so many new things I am really thankful to them.

Secondly I would also like to thank my parents and friends who


helped me a lot in finalizing this project within the limited time
PROJECT

HARIPRASATH.B

PROJECT ON LIBRARY MANAGEMENT SYSTEM

5
INTRODUCTION

This project is all about software for library. It helps the Book Stall Owner to have

a full-fledged control over his/her stall. It adds a new stock, updates an existing stock

and of course prints a receipt to the customer. Besides it displays a graph of the sales

of the current month.

`OBJECTIVES OF THE PROJECT

The objective of this project is to let the students apply the programming

knowledge into a real- world situation/problem and exposed the students how

programming skills helps in developing a good software.

1. Write programs utilizing modern software tools.

2. Apply object oriented programming principles effectively when developing small

to medium sized projects.

3. Write effective procedural code to solve small to medium sized problems.

4. Students will demonstrate a breadth of knowledge in computer science, as

exemplified in the areas of systems, theory and software development.

PROPOSED SYSTEM

6
Today one cannot afford to rely on the fallible human beings of be really wants to

stand against today’s merciless competition where not to wise saying “to err is

human” no longer valid, it’s outdated to rationalize your mistake. So, to keep pace with

time, to bring about the best result without malfunctioning and greater efficiency so to

replace the unending heaps of flies with a much sophisticated hard disk of the

computer.

One has to use the data management software. Software has been an ascent in

atomization various organizations. Many software products working are now in markets,

which have helped in making the organizations work easier and efficiently. Data

management initially had to maintain a lot of ledgers and a lot of paper work has to be

done but now software product on this organization has made their work faster and

easier. Now only this software has to be loaded on the computer and work can be done.

This prevents a lot of time and money. The work becomes fully automated and

any information regarding the organization can be obtained by clicking the button.

Moreover, now it’s an age of computers of and automating such an organization gives

the better look.

7
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.

8
LIBRARIES FILES AND THEIR USES:

1. Scrapy

One of the most popular Python data science libraries, Scrapy helps to build crawling
programs (spider bots) that can retrieve structured data from the web – for example,
URLs or contact info. It's a great tool for scraping data used in, for example, Python
machine learning models.

2. BeautifulSoup

BeautifulSoup is another really popular library for web crawling and data scraping. If you
want to collect data that’s available on some website but not via a proper CSV or API,
BeautifulSoup can help you scrape it and arrange it into the format you need.

3. NumPy

NumPy (Numerical Python) is a perfect tool for scientific computing and performing
basic and advanced array operations.

The library offers many handy features performing operations on n-arrays and matrices
in Python. It helps to process arrays that store values of the same data type and makes
performing math operations on arrays (and their vectorization) easier.

4. SciPy

This useful library includes modules for linear algebra, integration, optimization, and
statistics. Its main functionality was built upon NumPy, so its arrays make use of this
library. SciPy works great for all kinds of scientific programming projects (science,
mathematics, and engineering). It offers efficient numerical routines such as numerical
optimization, integration, and others in submodules. The extensive documentation
makes working with this library really easy.

9
5. Pandas

Pandas is a library created to help developers work with "labeled" and "relational" data
intuitively. It's based on two main data structures: "Series" (one-dimensional, like a list
of items) and "Data Frames" (two-dimensional, like a table with multiple columns).
Pandas allows converting data structures to DataFrame objects, handling missing data,
and adding/deleting columns from DataFrame, imputing missing files, and plotting data
with histogram or plot box. It’s a must-have for data wrangling, manipulation, and
visualization.

6. Keras

Keras is a great library for building neural networks and modeling. It's very
straightforward to use and provides developers with a good degree of extensibility. The
library takes advantage of other packages, (Theano or TensorFlow) as its backends.
Moreover, Microsoft integrated CNTK (Microsoft Cognitive Toolkit) to serve as another
backend. It's a great pick if you want to experiment quickly using compact systems – the
minimalist approach to design really pays off!

7. SciKit-Learn

This is an industry-standard for data science projects based in Python. Scikits is a group
of packages in the SciPy Stack that were created for specific functionalities – for
example, image processing. Scikit-learn uses the math operations of SciPy to expose a
concise interface to the most common machine learning algorithms.

8. PyTorch

PyTorch is a framework that is perfect for data scientists who want to perform deep
learning tasks easily. The tool allows performing tensor computations with GPU
acceleration. It's also used for other tasks – for example, for creating dynamic
computational graphs and calculating gradients automatically. PyTorch is based on
Torch, which is an open-source deep learning library implemented in C, with a wrapper
in Lua.

10
9. TensorFlow

TensorFlow is a popular Python framework for machine learning and deep learning,
which was developed at Google Brain. It's the best tool for tasks like object
identification, speech recognition, and many others. It helps in working with artificial
neural networks that need to handle multiple data sets. The library includes various
layer-helpers (tflearn, tf-slim, skflow), which make it even more functional. TensorFlow
is constantly expanded with its new releases – including fixes in potential security
vulnerabilities or improvements in the integration of TensorFlow and GPU.

10. XGBoost

Use this library to implement machine learning algorithms under the Gradient Boosting
framework. XGBoost is portable, flexible, and efficient. It offers parallel tree boosting
that helps teams to resolve many data science problems. Another advantage is that
developers can run the same code on major distributed environments such as Hadoop,
SGE, and MPI.

11. Plotly

This web-based tool for data visualization that offers many useful out-of-box graphics –
you can find them on the Plot.ly website. The library works very well in interactive web
applications. Its creators are busy expanding the library with new graphics and features
for supporting multiple linked views, animation, and crosstalk integration.

12. pydot

This library helps to generate oriented and non-oriented graphs. It serves as an


interface to Graphviz (written in pure Python). You can easily show the structure of
graphs with the help of this library. That comes in handy when you're developing
algorithms based on neural networks and decision trees.

11
USER DEFINED FUNCTIONS IN PYTHON

User defined functions

All the functions that are written by any us comes under the category of user defined
functions. Below are the steps for writing user defined functions in Python.

In Python, def keyword is used to declare user defined functions.

An indented block of statements follows the function name and arguments which
contains the body of the function.

Syntax:

def function_name():

statements

Parameterized Function

The function may take arguments(s) also called parameters as input within the opening
and closing parentheses, just after the function name followed by a colon.

Syntax:

def function_name(argument1, argument2, ...):

statements

12
.

Default arguments

A default argument is a parameter that assumes a default value if a value is not


provided in the function call for that argument.

Keyword arguments

The idea is to allow caller to specify argument name with values so that caller does not
need to remember order of parameters.

Example:

# Python program to demonstrate Keyword Arguments

def student(firstname, lastname):

print(firstname, lastname)

Variable length arguments

We can have both normal and keyword variable number of arguments.

The special syntax *args in function definitions in Python is used to pass a variable
number of arguments to a function. It is used to pass a non-keyworded, variable-length
argument list.

The special syntax **kwargs in function definitions in python is used to pass a


keyworded, variable-length argument list. We use the name kwargs with the double
star. The reason is because the double star allows us to pass through keyword
arguments (and any number of them).

Pass by Reference or pass by value?

One important thing to note is, in Python every variable name is a reference. When we
pass a variable to a function, a new reference to the object is created. Parameter
passing in Python is same as reference passing in Java.

13
Function with return value

Sometimes we might need the result of the function to be used in further process.
Hence, a function should also returns a value when it finishes it’s execution. This can be
achieved by return statement.

FILE HANDLING IN PYTHON

Since there is various purpose of using a file along with Python (i.e., read, write,
append), it is important to specify each time for what operations Python should expect
on the file. Thus, there are various access modes which we have to specify while
opening a file in a program.

Python - Opening a File

In order to connect our program with the desired file, we need a stream that can fetch or
write data in it. For this purpose, there are already some in-built classes/functions which
we can utilize to solve the purpose. The first thing that we need to do is create a file
object, i.e., Instance of File class which we can do using file() or open() function. In
order to open a file -

>>> myFile = open([path of file], [access mode], [buffer size])

In above case, writing

>>> myFile = open("file.txt")

Opening a file in python

Note that this time your file.txt is not in the same folder as in above case, thus here you
will have to specify the whole location.

>>> myFile = open("C:/c_code/file.txt")

Once the file had been opened there is something called pointer that points to some
position in the file. This pointer is used to read/write from that position. This pointer is

14
pretty much like a text cursor which can be shifted freely (using arrow keys) or used to
write or delete the text from a text, except that pointer can shift/read/write only through
some functions.

About access modes now, following are the available access modes that are to be
specified in the argument-

read mode - "r" for text files and "rb" for binary files. File pointer points at the beginning
of the file.

>>> myFile = open("file.txt", "r")

write mode - "w" for text files and "wb" for binary files. File pointer points at the
beginning of the file.

>>> myFile = open("file.txt", "w")

append mode - "a" for text files and "ab" for binary files. File pointer points at the end of
the file.

>>> myFile = open("file.txt", "a")

read/write mode - "r+" or "w+" provide the option for doing both read and write operation
on the same file object. "rb+" or "wb+" for binary files. File pointer points at the
beginning of the file.

>>> myFile = open("file.txt", "r+")

append/read - "a+" to enable read/append mode, "ab+" for append/read mode on binary
files. File pointer points at the end of the file.

>>> myFile = open("file.txt", "a+")

>>> myFile.close()

Another way of using a file is using with keyword. Looking at syntax will make it clear
how this works-

with open("file.txt", "r+"):

15
// operations to perform on "file.txt"

// there can be many

// syntax is pretty much like that of methods

Python - Reading a File

Let's start by learning how to read a file.

readline() function is used to read a line in the document. It can be used like:

>>> myFile.readline()

where myFile is the instance of the file. readline() function will simply print the whole line
starting from the cursor's position.

In order to print the whole content of the file, iterating line by line, we can use a for loop:

for line in myFile:

# will print all the lines one by one

print (line)

Beside using iteration, there is another way of reading the whole file, using readlines()
function(notice it is readlines, which is different from readline). Using the function will
return a list that will contain each line of the file. Because of this, one should be careful
while using this function. In case there is lots of data in the file, the list may take lots of
space, and thus making the whole reading time longer. Thus, it is recommended to use
this function only for reading shorter files which can be stored in a list efficiently.

It is used pretty much like readlines() only, except that in this case we need to store the
returned value in some variable:

>>> content = myFile.readlines()

Similar thing can done manually using iterative approach:

content = []

for line in myFile:


16
content.append(line)

This will iteratively append each line of the file on content list.

Python - Writing to a file

write() function is used to write a single string into the file. For example, there is a string

>>> content = "Hello, World. I am learning Python."

# In order to write this line in a file

>>> myFile.write(content)

Or

>>> myFile.write("Hello, World. I am learning Python")

Write can't be used for writing the content of list or tuple. In such cases, writelines()
function is used.

>>> content = ["Python 3.x\n", "Hello, World. I am learning Python"]

>>> myFile.writelines(content)

Executing this will write the file content with:

Python 3.x

Hello, World. I am learning Python

Python - Tell and Seek

As we mentioned before once you open a file there is a cursor that keeps moving once
as you read or write. It's sometimes important to move this cursor around without
making any variable read or write every time, and for this purpose, there is a seek()
function available to move to the desired location within a file.

>>> myFile.seek(offset, [start_from])

offset decides how many bytes you want to skip, here second argument start_from is
optional, which decides from which place you want to start. Possible values can be-

17
0 - Beginning of file

1 - Current position of file

2 - End of file

In case the argument is not being specified, by default, it's 0.

MODULES
BOOK DETAILS ENTRY
CUSTOMER DETAILS

SOURCE CODE

# PYTHON PROGRAM FILE : BOOK.py

import pymysql as cntr , datetime as __dt , matplotlib.pyplot as plt

from random import shuffle

from tempfile import mktemp

from os import system , startfile

__db = cntr.connect(host = 'localhost' , user = 'root' , passwd = 'manager' , database = 'book_shop')

__cur = __db.cursor()

__db.autocommit(True)

#Function to check is it leap year

is_leapyear = lambda year : year % 4 == 0

18
#Function to get last date of month

def last_month(month , year):

if month in (1,3,5,7,8,10,12) : return 31

elif month == 2 and is_leapyear(year) : return 29

elif month == 2 : return 28

else : return 30

clrscreen = lambda : system("cls")

def view_stock() :

__cur.execute("select Book_No , Book_Name , Available_Stock from stock")

data = __cur.fetchall()

print("Book Number\tBook Name\tStock")

for row in data : print(row[0] , '\t\t' , row[1] , '\t' , row[2])

def add_stock() :

print('Add Stock'.center(89 , '='))

bno = unique_book_no()

if bno :

print("Book Number : " , bno)

else : bno = int(input("Enter book number : "))

bname = input("Enter the Book\'s Name : ")

auth = input("Enter the Author of the Book : ")

publ = input("Enter the Publisher of the Book : ")

19
cost = eval(input("Enter the Cost per Book : "))

stock = int(input("Enter the Quantity purchased : "))

__cur.execute("insert into stock values ({} , '{}' , '{}' , '{}' , {} , {} , {} , '{}')".format(bno , bname , auth , publ , cost , stock , 0,

__dt.date.today()))

print("Inserted Sucessfully !!!")

def add_user() :

user = input("Enter the user name : ")

passwd = input("Enter a Password : ")

passwd2 = input("Enter Password to confirm : ")

if passwd == passwd2 :

__cur.execute("insert into users values('{}' , '{}')".format(user , passwd))

print("Created Successfully!!!")

elif passwd != passwd2 : print("You've entered different passwords")

def sell_book() :

print('Purchase')

cname = input("Enter the Customer Name : ")

phno = int(input("Enter the phone number : "))

bno = int(input("Enter book number : "))

bname = input("Enter the name of the book : ")

cost = eval(input("Enter the cost of the book : "))

__cur.execute("insert into purchased values({} , '{}')".format(bno , __dt.date.today()))

__cur.execute("update stock set qty_purchased = qty_purchased + 1 where Book_No = {}".format(bno))

20
__cur.execute("update stock set Available_Stock = Available_Stock - 1 where Book_No = {}".format(bno))

print("Bought Successfully")

q = '''Book Shop\nName : {}\nPhone No : {}\nBook Number : {}\nBook Name : {}\nCost : {}\nDate Of Purchase :

{}'''.format(cname , phno , bno , bname , cost , __dt.date.today())

filename = mktemp('.txt')

open(filename , 'w').write(q)

startfile(filename , 'print')

__cur.execute('select Book_Name , Book_No , Author from stock where Available_Stock = 0')

if __cur.rowcount == 1 :

print("STOCK OF ")

print("Book Name : " , __cur.fetchall()[0][0])

print("Book Number : " , __cur.fetchall()[0][1])

print("Author : " , __cur.fetchall()[0][2])

print("EXHAUSTED")

__cur.execute('delete from stock where Available_Stock = 0')

def unique_book_no () :

__cur.execute("select max(Book_No) from stock")

data = __cur.fetchall()

if bool(data[0][0]) :

L1 = [x for x in range((data[0][0] + 1) , (data[0][0] + 10000))]

shuffle(L1)

return L1.pop(0)

else : return False

def view_sales () :

print('Overall Sales This Month')

21
__cur.execute("select distinct(s.Book_Name) , s.qty_purchased from stock s , purchased p where s.Book_No = p.Book_No

and p.purchased_on between '{year}-{month}-01' and '{year}-{month}-{date}'".format(year = __dt.date.today().year , month =

__dt.date.today().month , date = last_month(__dt.date.today().month , __dt.date.today().year)))

data = __cur.fetchall()

L1 , L2 = [] , []

for row in data :

L1.append(row[0])

L2.append(row[1])

plt.bar(L1 , L2)

plt.xlabel('Books')

plt.ylabel('Sales')

plt.title('Sales')

plt.show()

def login():

user = input("Enter the username : ")

pwd = input("Enter the password : ")

__cur.execute("Select * from users where (username = '{}' and password = '{}')".format(user , pwd))

if __cur.rowcount : return True

def update_stock() :

bno = int(input("Enter the book number : "))

__cur.execute("select Book_Name , Available_Stock from stock where Book_No = {}".format(bno))

data = __cur.fetchall()

print("Book Name : " , data[0][0])

print("Available Stock : " , data[0][1])

stock = int(input("Enter the new stock purchased : "))

__cur.execute("update stock set Available_Stock = Available_Stock + {}".format(stock))

22
print("Updated Successfully")

=================================================================================================

# PYTHON MODULE : Tables_in_mysql

import pymysql as cntr

db = cntr.connect(host = 'localhost' , user = 'root' , passwd = 'manager')

db.autocommit(True)

cur = db.cursor()

cur.execute("create database if not exists book_shop")

cur.execute("use book_shop")

cur.execute("create table stock\

(Book_No bigint primary key,\

Book_Name varchar(255),\

Author varchar(255),\

Publisher varchar(255),\

Cost_per_Book float,\

Available_Stock bigint,\

qty_purchased bigint,\

purchased_on date)")

cur.execute("create table users(username varchar(255) , password varchar(255) , check (username <> 'ADMIN'))")

cur.execute("create table purchased (Book_no bigint , purchased_on date , foreign key(Book_no) references stock(Book_No))")

cur.execute("create unique index Book_Index on stock(Book_No)")

cur.execute("insert into users values('admin' , 'admin@123')")

print("Database and Tables created successfully")

c = input("Press any key to continue---->")

23
cur.close()

db.close()

# PYTHON MODULE : main

import Book

c = 'y'

while c.lower() == 'y' :

print("Book Shop Management".center(89 , '='))

print('1. Register')

print('2. Login')

print('3. Exit')

choice4 = int(input("Enter the serial number of your choice : "))

if choice4 == 1 :

Book.clrscreen()

Book.add_user()

elif choice4 == 2 :

Book.clrscreen()

if Book.login() :

Book.clrscreen

C = 'y'

while C.lower() == 'y' :

Book.clrscreen()

print("Book Shop Management".center(89 , '='))

print("1. Book Stock")

print("2. Book Selling")

print("3. Exit")

choice = int(input("Enter the serial number of your choice : "))

if choice == 1 :

Book.clrscreen()

24
print("Book Book".center(89 , '='))

print("1. Add a new Stock")

print("2. View all Stock")

print("3. Update an existing Stock")

print("4. Exit")

choice2 = int(input("Enter the choice : "))

if choice2 == 1 :

Book.clrscreen()

Book.add_stock()

elif choice2 == 2 :

Book.clrscreen()

Book.view_stock()

elif choice2 == 3 :

Book.clrscreen()

Book.update_stock()

elif choice2 == 4 :

print("Good Bye")

break

else : print("INVALID CHOICE")

elif choice == 2 :

Book.clrscreen()

print('Book Selling'.center(89 , '='))

print('1. Sell a book')

print('2. View Sales this month')

print("3. Exit")

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

if choice3 == 1 :

Book.clrscreen()

25
Book.sell_book()

elif choice3 == 2 :

Book.clrscreen()

Book.view_sales()

elif choice3 == 3 :

print("Good Bye")

break

else : print("INVALID CHOICE")

elif choice == 3 :

print("Good Bye")

break

else : print("INVALID CHOICE")

C = input("Do you want to continue (y/[n]) : ")

else : print("Good Bye")

else :

print("Either your username or password is incorrect")

elif choice4 == 3 :

print("Good Bye")

break

else : print("INVALID CHOICE")

c = input("Do you want to return to main menu (y/[n]) : ")

else : print("Good Bye")

OUTPUT

26
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

27
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 behaviour), 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

28
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:

29
FunctionCoverage: Which reports on functions executed and
StatementCoverage:Which reports on the number of lines executed to
complete the test.
They both return coverage metric, measured as a percentage

HARDWARE AND SOFTWARE REQUIREMENTS

I.OPERATING SYSTEM : WINDOWS 7 AND ABOVE

30
II. PROCESSOR : PENTIUM(ANY) OR AMD

ATHALON(3800+- 4200+ DUALCORE)

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

K9MM-V VIAK8M800+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 : (if print is required – [Hard copy])

SOFTWARE REQUIREMENTS:

I. Windows OS
II. Python

BILIOGRAPHY

31
1. Computer science With Python - Class X// By : HARIPRASATH.B
2. A Project Report On LIBRARY Management System (LMS)
By : HARIPRASATH.B
3. Website: https://www.w3resource.com

***

32

You might also like