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

Hospital Management python

The Hospital Management System project aims to automate patient registration, billing, and data management, providing unique IDs for patients and a user-friendly interface for administrators and receptionists. It addresses the inefficiencies of manual systems, enhancing data retrieval, security, and processing speed. The system is built using Python for the front end and Laravel for the back end, ensuring a robust and scalable application.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Hospital Management python

The Hospital Management System project aims to automate patient registration, billing, and data management, providing unique IDs for patients and a user-friendly interface for administrators and receptionists. It addresses the inefficiencies of manual systems, enhancing data retrieval, security, and processing speed. The system is built using Python for the front end and Laravel for the back end, ensuring a robust and scalable application.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 42

ABSTRACT

Our project Hospital Management system includes registration of patients, storingtheir details into

the system, and also computerized billing in the pharmacy, and labs. Oursoftware has the facility to

give a unique id for every patient and stores the details of everypatient and the staff automatically. It

includes a search facility to know the current status ofeach room. User can search availability of a

doctor and the details of a patient using the id.The Hospital Management System can be entered

using a username andpassword. It is accessible either by an administrator or receptionist. Only they

can add datainto the database. The data can be retrieved easily. The interface is very user-friendly.

Thedata are well protected for personal use and makes the data processing very fast.

The main objective of the Hospital Management System is to manage the details of

Hospital,Doctor,Employee,Test,Medicine. It manages all the information about Hospital, Patient,

Medicine, Hospital. The project is totally built at administrative end and thus only the administrator

is guaranteed the access. The purpose of the project is to build an application program to reduce the

manual work for managing the Hospital, Doctor, Patient, Employee. It tracks all the details about

the Employee,Test,Medicine.
INDEX

S.No. Index Page No.

Chapter 1 INTRODUCTION 1-6

1.1 Introduction 1

1.2 Aim 1

1.3 Existing System 2

1.4 Proposed System 2

1.5 Feasibility Study 3-4

1.6 Project Work Schedule 5

1.7 Organisation of Report 6

Chapter 2 SOFTWARE REQUIREMENTS SPECIFICATION 7

2.1 Hardware Requirement 7

2.2 Software Requirement 7

Chapter 3 DESIGN & PLANNING 8-14

3.1 Software Development Life Cycle Model 8

3.2 GENERAL OVERVIEW 9

3.3 User Flow Diagram 10

3.4 ER Diagram 11

3.5 DFD Diagram 12-14

Chapter 4 IMPLEMENTATION DETAILS 15 - 18

4.1 FRONT END 15 - 15

4.2 BACK END 16 - 17

Chapter 5 TESTING 18- 28

5.1 UNIT TESTING 18 - 19

5.2 INTEGRATION TESTING 20 - 21


5.3 SOFTWARE VERIFICATION AND VALIDATION 22 - 24

5.4 Black-Box Testing 25

5.5 White-Box Testing 26 - 27

5.6 SYSTEM TESTING 28

Chapter 6 RESULTS 29 - 36

Chapter 7 ADVANTAGES 37

Chapter 8 CONCLUSION 38

BIBLIOGRAPHY 39
CHAPTER 1 : INTRODUCTION

1.1 INTRODUCTION

Our project hospital management system includes registration of patients, storing their details into

the system, and also computerized billing in the pharmacy, and labs. Our software has the facility to

give a unique id for every patient and stores the details of every patient and the staff automatically.

It includes a search facility to know the current status of each room. User can search availability of

a doctor and the details of a patient using the id. The hospital management system can be entered

using a username and password. It is accessible either by an administrator or receptionist. Only they

can add data into the database. The data can be retrieved easily. The interface is very user-friendly.

The data are well protected for personal use and makes the data processing very fast.

1.2 AIM

This project is aimed to automate the hospital management system. This project is developed

mainly to administrate doctor's appointment with the patients. The purpose of the project entitled as

HOSPITAL MANAGEMENT SYSTEM is to computerize the Front Office Management of

Hospital to develop software which is user friendly, simple, fast, and cost – effective. It deals with

the collection of patient’s information, diagnosis details, etc. Traditionally, it was done manually.

The main function of the system is to register and store patient details and doctor details and

retrieve these details as and when required, and also to manipulate these details meaningfully. The

purpose of the project entitled as “HOSPITAL MANAGEMENT SYSTEM” is to computerize the

Front Office Management of Hospital to develop software which is user friendly, simple, fast, and

cost – effective. It deals with the collection of patient’s information, diagnosis details, etc.

Traditionally, it was done manually. The main function of the system is to register and store patient

details and doctor details and retrieve these details as and when required, and also to manipulate

these details meaningfully System input contains patient details, diagnosis details; while system

output is to get these details on to the CRT screen.

Page No. 1
1.3 EXISTING SYSTEM

The current manual system has a lot of paper work. To maintain the records of sale and service

manually, is a Time-consuming task. With the increase in database, it will become a massive task to

maintain the database. Requires large quantities of file cabinets, which are huge and require quite a

bit of space in the office, which can be used for storing records of previous details. The retrieval of

records of previously registered patients will be a tedious task. Lack of security for the records,

anyone disarrange the records of your system. If someone want to check the details of the available

doctors the previous system does not provide any necessary detail of this type. All this work is done

manually by the receptionist and other operational staff and lot of papers are needed to be handled

and taken care of. Doctors have to remember various medicines available for diagnosis and

sometimes miss better alternatives as they can’t remember them at that time.

1.4 PROPOSED SYSTEM

The drawback of the existing system is that it is very difficult to retrieve data from case files.It is

difficult to handle the whole system manually and it is less accurate and to keep the data in case

files for future reference because it may get destroyed. Moreover it is very difficult to retrieve data.

Redundancy of data may occur and this may lead to the inconsistency. The manual system is so

time-consuming.The proposed system is very easy to operate. Speed and accuracy are the main

advantages of proposed system. There is no redundancy of data. The data are stored in the

computer’s secondary memories like hard disk, etc. it can be easily receive and used at anytime.

The proposed system will easily handle all the data and the work done by the existingsystems. The

proposed systems eliminate the drawbacks of the existing system to a great extent and it provides

tight security to data

Page No. 2
1.5 FEASIBILITY STUDY

A feasibility study is a high-level capsule version of the entire System analysis and Design Process.
The study begins by classifying the problem definition. Feasibility is to determine if it’s worth
doing. Once an acceptance problem definition has been generated, the analyst develops a logical
model of the system. A search for alternatives is analyzed carefully. There are 3 parts in feasibility
study.

1) Operational Feasibility

2) Technical Feasibility

3) Economical Feasibility

1.5.1 OPERATIONAL FEASIBILITY

Operational feasibility is the measure of how well a proposed system solves the problems, and takes
advantage of the opportunities identified during scope definition and how it satisfies the
requirements identified in the requirements analysis phase of system development.The operational
feasibility assessment focuses on the degree to which the proposed development projects fits in with
the existing business environment and objectives with regard to development schedule, delivery
date, corporate culture and existing business processes.To ensure success, desired operational
outcomes must be imparted during design and development. These include such design-dependent
parameters as reliability, maintainability, supportability, usability, producibility, disposability,
sustainability, affordability and others. These parameters are required to be considered at the early
stages of design if desired operational behaviours are to be realised. A system design and
development requires appropriate and timely application of engineering and management efforts to
meet the previously mentioned parameters. A system may serve its intended purpose most
effectively when its technical and operating characteristics are engineered into the design.
Therefore, operational feasibility is a critical aspect of systems engineering that needs to be an
integral part of the early design phases.

Page No. 3
1.5.2 TECHNICAL FEASIBILITY

This involves questions such as whether the technology needed for the system exists, how difficult
it will be to build, and whether the firm has enough experience using that technology. The
assessment is based on outline design of system requirements in terms of input, processes, output,
fields, programs and procedures. This can be qualified in terms of volume of data, trends, frequency
of updating inorder to give an introduction to the technical system. The application is the fact that it
has been developed on windows XP platform and a high configuration of 1GB RAM on Intel
Pentium Dual core processor. This is technically feasible .The technical feasibility assessment is
focused on gaining an understanding of the present technical resources of the organization and their
applicability to the expected needs of the proposed system. It is an evaluation of the hardware and
software and how it meets the need of the proposed system.

1.5.3 ECONOMICAL FEASIBILITY

Establishing the cost-effectiveness of the proposed system i.e. if the benefits do not outweigh the
costs then it is not worth going ahead. In the fast paced world today there is a great need of online
social networking facilities. Thus the benefits of this project in the current scenario make it
economically feasible. The purpose of the economic feasibility assessment is to determine the
positive economic benefits to the organization that the proposed system will provide. It includes
quantification and identification of all the benefits expected. This assessment typically involves a
cost/benefits analysis.

Page No. 4
1.6 GAANT Chart

Page No. 5
1.7 ORGANISATION OF THE REPORT

1.7.1 INTRODUCTION

This section includes the overall view of the project i.e. the basic problem definition and the general
overview of the problem which describes the problem in layman terms. It also specifies the software
used and the proposed solution strategy.

1.7.2 SOFTWARE REQUIREMENTS SPECIFICATION

This section includes the Software and hardware requirements for the smooth running of the
application.

1.7.3 DESIGN & PLANNING

This section consists of the Software Development Life Cycle model. It also contains technical
diagrams like the Data Flow Diagram and the Entity Relationship diagram.

1.7.4 IMPLEMENTATION DETAILS

This section describes the different technologies used for the entire development process of the
Front-end as well as the Back-end development of the application.

1.7.5 RESULTS AND DISCUSSION

This section has screenshots of all the implementation i.e. user interface and their description.

1.7.6 SUMMARY AND CONCLUSION

This section has screenshots of all the implementation i.e. user interface and their description.

Page No. 6
CHAPTER 2 : SOFTWARE REQUIREMENTS SPECIFICATION

2.1 Hardware Requirements

Number Description

1 PC with 250 GB or more Hard disk.

2 PC with 2 GB RAM.

3 PC with Pentium 1 and Above.

2.2 Software Requirements

Number Description Type

1 Operating System Windows XP / Windows

2 Back-End Technology Laravel, MySQL

3 Front-End Technology Python

4 Browser Google Chrome

Page No.
7
CHAPTER 3 : DESIGN & PLANNING
3.1 Software Development Life Cycle Model

3.1.1 WATERFALL MODEL

The waterfall model was selected as the SDLC model due to the following reasons:

Requirements were very well documented, clear and fixed.


Technology was adequately understood.
Simple and easy to understand and use.
There were no ambiguous requirements.
Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a
review process.
Clearly defined stages.
Well understood milestones.Easy to arrange tasks.

Page No. 8
3.2 GENERAL OVERVIEW

Page No. 9
3.3 Use Case Diagram

Page No. 10
3.4 ER Diagram

Page No. 11
3.5 DFD Diagram

3.5.1 Zero-Level DFD Diagram

Page No. 12
3.5.2 First-Level DFD Diagram

Page No. 13
3.5.3 Second-Level DFD Diagram

Page No. 14
CHAPTER 4 : IMPLEMENTATION DETAILS
In this Section we will do Analysis of Technologies to use for implementing the project.

4.1 : FRONT END

4.1.1 Python

Python is a high-level programming language that is widely used in various industries, such as
finance, software development, and data analysis. It was first introduced in 1991 by Guido van
Rossum and since then it has become one of the most popular programming languages. Python is a
versatile language that can be used for a variety of purposes, from simple scripts to complex
software applications. It is also an open-source language, which means that its source code is freely
available for anyone to use, modify, and distribute.

One of the main advantages of using Python is its simplicity. Unlike other programming languages,
Python uses an intuitive syntax that is easy to read and write. This makes it an ideal choice for both
beginners and experienced programmers. Python is also known for its versatility, which makes it a
good choice for a variety of tasks, such as web development, scientific computing, and machine
learning. The Python community has developed a large number of libraries and modules, which are
collections of pre-written code that can be used to perform specific tasks. These libraries make it
easy to accomplish complex tasks in just a few lines of code, which saves time and effort.

In recent years, Python has become increasingly popular in the data science community. This is
because it has a large number of libraries that are specifically designed for data analysis, such as
Pandas and NumPy. These libraries make it easy to perform complex data manipulations, such as
aggregating and summarizing data, and performing statistical analysis. Python also has libraries for
machine learning, such as scikit-learn, which make it possible to build and train machine learning
models with ease. This is why Python is often referred to as a “Swiss Army Knife” of data science,
as it provides a wide range of tools that make it possible to perform complex data analysis tasks.

Overall, Python is a highly versatile programming language that has a lot to offer. Its simplicity and
versatility make it an ideal choice for a variety of tasks, from simple scripts to complex software
applications. Python’s popularity in the data science community is also a testament to its
capabilities, as it provides a wide range of tools that make it possible to perform complex data
analysis tasks. Whether you are a beginner or an experienced programmer, Python is a language that
is worth learning, as it is sure to provide you with many opportunities to explore new areas of
programming and to expand your skills.

Page No. 15
4.2 : BACK END

4.2.1
Laravel
Laravel is a free, open-source PHP web application framework designed for building high-
performance, secure and scalable web applications. It was created in 2011 by Taylor Otwell and has
since become one of the most popular PHP frameworks in the world. The reason for its popularity is
due to its elegant syntax and the ease of use of its tools and features. Laravel’s goal is to make the
development process enjoyable and to help developers build robust applications quickly and
efficiently.

One of the key features of Laravel is its routing system, which allows developers to define URL
patterns that can be easily matched to specific actions in the code. This means that developers can
easily create a clean and organized URL structure for their application. Additionally, Laravel’s
ORM (Object Relational Mapping) system allows developers to interact with the database in an
easy and intuitive way. This ORM system helps to minimize the amount of repetitive code that
needs to be written and makes it easy to perform CRUD (Create, Read, Update, Delete) operations
on the database.

Another advantage of Laravel is its modular architecture, which makes it easy to extend the
framework with additional functionality. The framework comes with a number of pre-built modules,
such as authentication, authorization, and caching, which can be easily integrated into the
application. This means that developers don’t need to reinvent the wheel every time they start a new
project. Additionally, Laravel’s modular architecture makes it easy to test the application, as
developers can isolate specific parts of the code and test them in isolation. This makes it easier to
ensure that the application is working as expected and reduces the risk of bugs or errors affecting
other parts of the application.

Laravel also provides a powerful template engine that makes it easy to separate the presentation
layer from the business logic. This means that developers can write clean and maintainable code,
while still producing visually appealing pages. Additionally, Laravel’s template engine supports
layouts and partials, which makes it easy to reuse common code across multiple pages. This can be
especially useful for sites that have a similar structure across all pages, as developers can easily
update the layout or styling in one place, and the changes will be reflected throughout the site.

Page No. 16
4.2.1 MySQL

MySQL is a popular open-source relational database management system that is widely used by
web-based applications, including e-commerce and content management systems. It was first
introduced in 1995 and since then, has become one of the most preferred databases for web-based
applications. MySQL is known for its fast, reliable, and flexible features, making it the ideal choice
for developers who need a database that can handle large amounts of data, support multiple users
and transactions, and handle complex queries.

MySQL is written in the C programming language and uses a Structured Query Language (SQL) for
data management. It supports a wide range of data types, including text, numbers, and dates, and
also offers a range of functions, triggers, and stored procedures. Additionally, it supports ACID
(Atomicity, Consistency, Isolation, Durability) transactions, which ensure that all transactions are
completed successfully, or rolled back if there is an error, ensuring data consistency and
reliability.One of the reasons for MySQL's popularity is its ease of use. MySQL is designed to be
user-friendly, making it easy for developers to create and manage databases. It is also highly
customizable, which allows developers to tailor their databases to meet their specific needs.
Additionally, MySQL is very flexible and can be used for a wide range of applications, from small
websites to large enterprise systems. It is also highly scalable, meaning that it can handle large
amounts of data and can be easily scaled to accommodate growing data requirements.

One of the key advantages of using MySQL is its open-source nature. The source code is available
to anyone, and developers can make modifications to the software to suit their specific needs. This
has led to a large and thriving community of developers and users, who are constantly working on
improving and enhancing the software. There are also numerous plugins and extensions available
that can be used to extend the functionality of MySQL. Additionally, because it is open-source,
there is no need to purchase licenses or pay for upgrades, which can save organizations a significant
amount of money. Furthermore, because it is widely used, there are a large number of online
resources and support available, making it easy for new users to get up and running quickly.

In conclusion, MySQL is an open-source database management system that offers a range of


features and functions that make it the ideal choice for web-based applications. Its fast, reliable, and
flexible features make it a popular choice for developers and businesses alike. Its scalability
features, which allow for horizontal and vertical scaling, make it an excellent choice for growing
businesses. With its wide range of data types and functions, support for ACID transactions, and its
popularity, MySQL is likely to continue to be a popular choice for developers and businesses in the
years to come.

Page No. 17
CHAPTER 5 : TESTING
5.1 : UNIT TESTING

5.1.1 Introduction

In computer programming, unit testing is a software testing method by which individual units
of source code, sets of one or more computer program modules together with associated control
data, usage procedures, and operating procedures, are tested to determine whether they are fit for
use. Intuitively, one can view a unit as the smallest testable part of an application. In procedural
programming, a unit could be an entire module, but it is more commonly an individual function or
procedure. In object-oriented programming, a unit is often an entire interface, such as a class, but
could be an individual method. Unit tests are short code fragments created by programmers or
occasionally by white box testers during the development process. It forms the basis for component
testing. Ideally, each test case is independent from the others. Substitutes such as method
stubs, mock objects, fakes, and test harnesses can be used to assist testing a module in isolation.
Unit tests are typically written and run by software developers to ensure that code meets its design
and behaves as intended.

Page No. 18
5.1.2 Benifits

The goal of unit testing is to isolate each part of the program and show that the individual parts are
correct. A unit test provides a strict, written contract that the piece of code must satisfy. As a result,
it affords several benefits.

1) Find problems early : Unit testing finds problems early in the development cycle. In test-driven
development (TDD), which is frequently used in both extreme programming and scrum, unit tests
are created before the code itself is written. When the tests pass, that code is considered complete.
The same unit tests are run against that function frequently as the larger code base is developed
either as the code is changed or via an automated process with the build. If the unit tests fail, it is
considered to be a bug either in the changed code or the tests themselves. The unit tests then allow
the location of the fault or failure to be easily traced. Since the unit tests alert the development team
of the problem before handing the code off to testers or clients, it is still early in the development
process.

2 ) Facilitates Change : Unit testing allows the programmer to refactor code or upgrade system
libraries at a later date, and make sure the module still works correctly (e.g., in regression testing).
The procedure is to write test cases for all functions and methods so that whenever a change causes
a fault, it can be quickly identified. Unit tests detect changes which may break a design contract.

3 ) Simplifies Integration : Unit testing may reduce uncertainty in the units themselves and can be
used in a bottom-up testing style approach. By testing the parts of a program first and then testing
the sum of its parts, integration testing becomes much easier.

4 ) Documentation : Unit testing provides a sort of living documentation of the system. Developers
looking to learn what functionality is provided by a unit, and how to use it, can look at the unit tests
to gain a basic understanding of the unit's interface (API).Unit test cases embody characteristics that
are critical to the success of the unit. These characteristics can indicate appropriate/inappropriate
use of a unit as well as negative behaviors that are to be trapped by the unit.

Page No. 19
5.2 : INTEGRATION TESTING

Integration testing (sometimes called integration and testing, abbreviated I&T) is the phase in
software testing in which individual software modules are combined and tested as a group. It occurs
after unit testing and before validation testing. Integration testing takes as its input
modules that have been unit tested, groups them in larger aggregates, applies tests defined in an
integration test plan to those aggregates, and delivers as its output the integrated system ready
for system testing.

5.2.1 Purpose

The purpose of integration testing is to verify functional, performance, and reliability


requirements placed on major design items. These "design items", i.e., assemblages (or groups of
units), are exercised through their interfaces using black-box testing, success and error cases being
simulated via appropriate parameter and data inputs. Simulated usage of shared data areas and inter-
process communication is tested and individual subsystems are exercised through their input
interface. Test cases are constructed to test whether all the components within assemblages interact
correctly, for example across procedure calls or process activations, and this is done after testing
individual modules, i.e., unit testing. The overall idea is a "building block" approach, in which
verified assemblages are added to a verified base which is then used to support the integration
testing of further assemblages.Software integration testing is performed according to the software
development life cycle (SDLC) after module and functional tests. The cross- dependencies for
software integration testing are: schedule for integration testing, strategy and selection of the tools
used for integration, define the cyclomatical complexity of the software and software architecture,
reusability of modules and life-cycle and versioning management.Some different types of integration
testing are big-bang, top-down, and bottom-up, mixed (sandwich) and risky-hardest. Other
Integration Patterns[2] are: collaboration integration, backbone integration, layer integration, client-
server integration, distributed services integration and high-frequency integration.

Page No. 20
5.2.1.1 Big Bang

In the big-bang approach, most of the developed modules are coupled together to form a complete
software system or major part of the system and then used for integration testing. This method is
very effective for saving time in the integration testing process. However, if the test cases and their
results are not recorded properly, the entire integration process will be more complicated and may
prevent the testing team from achieving the goal of integration testing.A type of big-bang
integration testing is called "usage model testing" which can be used in both software and hardware
integration testing. The basis behind this type of integration testing is to run user-like workloads in
integrated user-like environments. In doing the testing in this manner, the environment is proofed,
while the individual components are proofed indirectly through their use. Usage Model testing takes
an optimistic approach to testing, because it expects to have few problems with the individual
components. The strategy relies heavily on the component developers to do the isolated unit testing
for their product. The goal of the strategy is to avoid redoing the testing done by the developers, and
instead flesh-out problems caused by the interaction of the components in the environment.

5.2.1.2 Top-down And Bottom-up

Bottom-up testing is an approach to integrated testing where the lowest level components are tested
first, then used to facilitate the testing of higher level components. The process is repeated until the
component at the top of the hierarchy is tested.All the bottom or low-level modules, procedures or
functions are integrated and then tested. After the integration testing of lower level integrated
modules, the next level of modules will be formed and can be used for integration testing. This
approach is helpful only when all or most of the modules of the same development level are ready.
This method also helps to determine the levels of software developed and makes it easier to report
testing progress in the form of a percentage.Top-down testing is an approach to integrated testing
where the top integrated modules are tested and the branch of the module is tested step by step until
the end of the related module.Sandwich testing is an approach to combine top down testing with
bottom up testing.

Page No. 21
5.3 : SOFTWARE VERIFICATION AND VALIDATION

5.3.1 Introduction

In software project management, software testing, and software engineering, verification and
validation (V&V) is the process of checking that a software system meets specifications and that it
fulfills its intended purpose. It may also be referred to as software quality control. It is normally the
responsibility of software testers as part of the software development lifecycle. Validation checks
that the product design satisfies or fits the intended use (high-level checking), i.e., the software
meets the user requirements.This is done through dynamic testing and other forms of
review.Verification and validation are not the same thing, although they are often
confused. Boehm succinctly expressed the difference between

Validation : Are we building the right product?


Verification : Are we building the product right?

According to the Capability Maturity Model (CMMI-SW v1.1)

Software Verification: The process of evaluating software to determine whether the products of a
given development phase satisfy the conditions imposed at the start of that phase.

Software Validation: The process of evaluating software during or at the end of the development
process to determine whether it satisfies specified requirements.

In other words, software verification is ensuring that the product has been built according to the
requirements and design specifications, while software validation ensures that the product meets the
user's needs, and that the specifications were correct in the first place. Software verification ensures
that "you built it right". Software validation ensures that "you built the right thing". Software
validation confirms that the product, as provided, will fulfill its intended use.

Page No. 22
From Testing Perspective

Fault – wrong or missing function in the code.


Failure – the manifestation of a fault during execution.
Malfunction – according to its specification the system does not meet its specified functionality

Both verification and validation are related to the concepts of quality and of software quality
assurance. By themselves, verification and validation do not guarantee software quality;
planning, traceability, configuration management and other aspects of software engineering are
required.Within the modeling and simulation (M&S) community, the definitions of verification,
validation and accreditation are similar:

M&S Verification is the process of determining that a ⦁ computer model, simulation, or


federation of models and simulations implementations and their associated data accurately
represent the developer's conceptual description and specifications.
M&S Validation is the process of determining the degree to which a model, simulation, or
federation of models and simulations, and their associated data are accurate representations of
the real world from the perspective of the intended use(s).

Page No. 23
5.3.2 Classification of Methods

In mission-critical software systems, where flawless performance is absolutely necessary, formal


methods may be used to ensure the correct operation of a system. However, often for non-mission-
critical software systems, formal methods prove to be very costly and an alternative method of
software V&V must be sought out. In such cases, syntactic methods are often used.

5.3.3 Test Cases

A test case is a tool used in the process. Test cases may be prepared for software verification and
software validation to determine if the product was built according to the requirements of the user.
Other methods, such as reviews, may be used early in the life cycle to provide for software
validation.

Page No. 24
5.4 : Black-Box Testing

Black-box testing is a method of software testing that examines the functionality of an application
without peering into its internal structures or workings. This method of test can be applied virtually
to every level of software testing: unit, integration, system and acceptance. It typically comprises
most if not all higher level testing, but can also dominate unit testing as well.

5.4.1 Test Procedures

Specific knowledge of the application's code/internal structure and programming knowledge in


general is not required. The tester is aware of what the software is supposed to do but is not aware
of how it does it. For instance, the tester is aware that a particular input returns a certain, invariable
output but is not aware of how the software produces the output in the first place.

5.4.2 Test Cases

Test cases are built around specifications and requirements, i.e., what the application is supposed to
do. Test cases are generally derived from external descriptions of the software, including
specifications, requirements and design parameters. Although the tests used are
primarily functional in nature, non-functional tests may also be used. The test designer selects both
valid and invalid inputs and determines the correct output, often with the help of an oracle or a
previous result that is known to be good, without any knowledge of the test object's internal
structure.

Page No. 25
5.5 : White-Box Testing

White-box testing (also known as clear box testing, glass box testing, transparent box testing,
and structural testing) is a method of testing software that tests internal structures or workings of an
application, as opposed to its functionality (i.e. black-box testing). In white-box testing an internal
perspective of the system, as well as programming skills, are used to design test cases. The tester
chooses inputs to exercise paths through the code and determine the appropriate outputs. This is
analogous to testing nodes in a circuit, e.g. in-circuit testing (ICT). White-box testing can be applied
at the unit, integration and system levels of the software testing process. Although traditional testers
tended to think of white-box testing as being done at the unit level, it is used for integration and
system testing more frequently today. It can test paths within a unit, paths between units during
integration, and between subsystems during a system–level test. Though this method of test design
can uncover many errors or problems, it has the potential to miss unimplemented parts of the
specification or missing requirements.

5.5.1 Levels

1 ) Unit testing : White-box testing is done during unit testing to ensure that the code is working as
intended, before any integration happens with previously tested code. White-box testing during unit
testing catches any defects early on and aids in any defects that happen later on after the code is
integrated with the rest of the application and therefore prevents any type of errors later on.

2 ) Integration testing : White-box testing at this level are written to test the interactions of each
interface with each other. The Unit level testing made sure that each code was tested and working
accordingly in an isolated environment and integration examines the correctness of the behaviour in
an open environment through the use of white-box testing for any interactions of interfaces that are
known to the programmer.

3 ) Regression testing : White-box testing during regression testing is the use of recycled white-
box test cases at the unit and integration testing levels.

Page No. 26
5.5.2 Procedures

White-box testing's basic procedures involves the tester having a deep level of understanding of the source
code being tested. The programmer must have a deep understanding of the application to know what
kinds of test cases to create so that every visible path is exercised for testing. Once the source code is
understood then the source code can be analyzed for test cases to be created. These are the three
basic steps that white-box testing takes in order to create test cases:

Input involves different types of requirements, functional specifications, detailed designing of


documents, proper source code, security specifications. This is the preparation stage of white-
box testing to layout all of the basic information.
Processing involves performing risk analysis to guide whole testing process, proper test plan,
execute test cases and communicate results. This is the phase of building test cases to make sure
they thoroughly test the application the given results are recorded accordingly.
Output involves preparing final report that encompasses all of the above preparations and
results.

Page No. 27
5.6 : SYSTEM TESTING

System testing of software or hardware is testing conducted on a complete, integrated system to


evaluate the system's compliance with its specified requirements. System testing falls within the
scope of black-box testing, and as such, should require no knowledge of the inner design of the
code or logic. As a rule, system testing takes, as its input, all of the "integrated" software
components that have passed integration testing and also the software system itself integrated with
any applicable hardware system(s). The purpose of integration testing is to detect any
inconsistencies between the software units that are integrated together (called assemblages) or
between any of the assemblages and the hardware. System testing is a more limited type of testing;
it seeks to detect defects both within the "inter-assemblages" and also within the system as a whole.

System testing is performed on the entire system in the context of a Functional


Requirement Specification(s) (FRS) and/or a System Requirement Specification (SRS). System
testing tests not only the design, but also the behavior and even the believed expectations of the
customer. It is also intended to test up to and beyond the bounds defined in the software/hardware
requirements specification(s).

Page No. 28
CHAPTER 6 : RESULTS

Page No. 29
Page No. 30
Page No. 31
Page No. 32
Page No. 33
Page No. 34
Page No. 35
Page No. 36
CHAPTER 7 : ADVANTAGES
Easy Access To Patient Data.
Cost Effective.
Better revenue management.
Increased Data Security & Retrieve-ability.

Page No. 37
CHAPTER 8 : CONCLUSION
The HOSPITAL MANAGEMENT SYSTEM is a great improvement over the manual system using
case fields and paper. The computerization of the system has sped up the process. In the current
system, the front office managing is very slow. The hospital managing system was thoroughly
checked and tested with dummy data and thus is found to be very reliable. ADVANTAGES: It is
fast, efficient and reliable Avoids data redundancy and inconsistency Web-based Number of
personnel required is considerably less Provides more security and integrity to data.

Page No. 38
BIBLIOGRAPHY
https://www.tutorialspoint.com/index.htm
https://www.javatpoint.com
https://www.w3schools.com
https://html.com

Page No. 39

You might also like