D.A.V Public School: A Project Report On Hotel Management System
D.A.V Public School: A Project Report On Hotel Management System
V PUBLIC SCHOOL
S.E.C.L KORBA (C.G)
A Project Report
on
SUBMITTED BY
AKSHAT GUPTA
[Roll No…….]
This is to certify that the Project / Dissertation entitled HOTEL Management System is a
bonafide work done by Master AKSHAT GUPTA of class XII Session2018-19 in fulfillment
of CBSE’s BOARD Examination 2019 and has been carried out under my direct supervision
and guidance. This report or a similar report on the topic has not been submitted for any
other examination and does not form a part of any other course undergone by the candidate.
………………………… ……………………………..
Signature of Student Signature of Teacher/Guide
……….…………………
Signature of Principal
Name: MR. H.K PATHAK SIR
Date: …………….
(i)
CERTIFICATE
This is to certify that the Project / Dissertation entitled HOTEL Management System is a
CBSE’s BOARD Examination 2019 and has been carried out under my direct supervision
and guidance. This report or a similar report on the topic has not been submitted for any
other examination and does not form a part of any other course undergone by the candidate.
………………………… ……………………………..
Signature of Student Signature of Teacher/Guide
……….…………………
Signature of Principal
Name: MR. H.K PATHAK SIR
Date: …………….
(ii)
CERTIFICATE
This is to certify that the Project / Dissertation entitled HOTEL Management System is a
bonafide work done by Hitesh Rathia of class XII Session2018-19 in fulfillment of CBSE’s
BOARD Examination 2019 and has been carried out under my direct supervision and
guidance. This report or a similar report on the topic has not been submitted for any other
examination and does not form a part of any other course undergone by the candidate.
………………………… ……………………………..
Signature of Student Signature of Teacher/Guide
……….…………………
Signature of Principal
Name: MR. H.K PATHAK SIR
Date: …………….
(iii)
ACKNOWLEDGEMENT
I
Akshat Gupta undertook this Project work, as the part of my XII-Informatics
Practices course. I had tried to apply my best of knowledge and experience, gained
during the study and class work experience. However, developing software system is
generally a quite complex and time-consuming process. It requires a systematic study,
insight vision and professional approach during the design and development. Moreover, the
developer always feels the need, the help and good wishes of the people near you, who have
considerable experience and idea.
I would like to extend my sincere thanks and gratitude to my teacher Mr. ONKAR SINGH
RATHORE SIR I am very much thankful to our Principal
Mr. H.K PATHAK for giving valuable time and moral support to develop this software.
I would like to take the opportunity to extend my sincere thanks and gratitude to my father
Mr. S.R GUPTA, and my mother Mrs. MEENA GUPTA for being a source of inspiration
and providing time and freedom to develop this software project.
I also feel indebted to my friends Devendra Uraon and Hitesh Rathia for the valuable
suggestions during the project work.
AKSHAT GUPTA
Class XII
(iv)
ACKNOWLEDGEMENT
I
Devendra Uraon undertook this Project work, as the part of my XII-Informatics
Practices course. I had tried to apply my best of knowledge and experience, gained
during the study and class work experience. However, developing software system is
generally a quite complex and time-consuming process. It requires a systematic study,
insight vision and professional approach during the design and development. Moreover, the
developer always feels the need, the help and good wishes of the people near you, who have
considerable experience and idea.
I would like to extend my sincere thanks and gratitude to my teacher Mr. ONKAR SINGH
RATHORE SIR I am very much thankful to our Principal
Mr. H.K PATHAK for giving valuable time and moral support to develop this software.
I would like to take the opportunity to extend my sincere thanks and gratitude to my father
Mr.………., and my mother Mrs.……………. for being a source of inspiration and
providing time and freedom to develop this software project.
I also feel indebted to my friends Akshat Gupta and Hitesh Rathia for the valuable
suggestions during the project work.
DEVENDRA URAON
Class XII
(v)
ACKNOWLEDGEMENT
I
Hitesh Rathia undertook this Project work, as the part of my XII-Informatics
Practices course. I had tried to apply my best of knowledge and experience, gained
during the study and class work experience. However, developing software system is
generally a quite complex and time-consuming process. It requires a systematic study,
insight vision and professional approach during the design and development. Moreover, the
developer always feels the need, the help and good wishes of the people near you, who have
considerable experience and idea.
I would like to extend my sincere thanks and gratitude to my teacher Mr. ONKAR SINGH
RATHORE SIR I am very much thankful to our Principal
Mr. H.K PATHAK for giving valuable time and moral support to develop this software.
I would like to take the opportunity to extend my sincere thanks and gratitude to my father
Mr. …………, and my mother Mrs. ………… for being a source of inspiration and
providing time and freedom to develop this software project.
I also feel indebted to my friends Devendra Uraon and Hitesh Rathia for the valuable
suggestions during the project work.
Hitesh Rathia
Class XII
(vi)
CONTENTS…
1. Introduction
3. System Implementation
4. Theoritical Background
4.2 MY SQL
8. Conclusion
9. Bibliography
(vii)
1. INTRODUCTION…
This software project is developed to automate the functionalities of a Hotel. The purpose of
the software project is to develop the Management Information System (MIS) to automate
the record keeping of Staff, Number of rooms, Customers and Number of rooms booked and
receive transactions with a view to enhance the decision making of the functionaries.
particular subject or purpose, capable to produce different reports relevant to the user. An
application program is tied with the database for easy access and interface to the database.
Using Application program or front-end, we can store, retrieve and manage all information
in proper way.
This software, being simple in design and working, does not require much of training to
users, and can be used as a powerful tool for automating a Hotel Management System.
During coding and design of the software Project, Java NetBeans IDE, a powerful front-end
tool is used for getting Graphical User Interface (GUI) based integrated platform and coding
During the past several decades personnel function has been transformed from a relatively obscure record
keeping staff to central and top-level management function. There are many factors that have influenced this
transformation like technological advances, professionalism, and general recognition of human beings as
most important resources.
• A computer-based management system is designed to handle all the primary information required to
Calculate monthly statements. Separate database is maintained to handle all the details required for the
Correct statement calculation and generation.
• This project intends to introduce more user friendliness in the various activities such as record updation,
maintenance, and searching.
• The searching of record has been made quite simple as all the details of the customer can be obtained by
simply keying in the identification of that customer.
• Similarly, record maintenance and updation can also be accomplished by using the identification of the
customer with all the details being automatically generated. These details are also being promptly
automatically updated in the master file thus keeping the record absolutely up-to-date.
• The entire information has maintained in the database or Files and whoever wants to retrieve can’t retrieve,
only authorization user can retrieve the necessary information which can be easily be accessible from the
file.
• The main objective of the entire activity is to automate the process of day to day activities of Hotel like:
1. Room activities, 2. Admission of a New Customer,
3. Assign a room according to customer’s demand, 4. Checkout of a computer and releasing the room
5. Finally compute the bill etc. 6. Packages available.
7. Advance online bookings. 8. Online Cancellation.
9. List of Regular customers. 10. Email facility.
11. Feedbacks.
The IDE provides comprehensive support for JDK 7 technologies and the most recent Java enhancements. It
is the first IDE that provides support for JDK 7, Java EE 7, and JavaFX 2. The IDE fully supports Java EE
using the latest standards for Java, XML, Web services, and SQL and fully supports the Glass Fish Server,
the reference implementation of Java EE.
NetBeans started as a student project (originally called Xelfi) in the Czech Republic in 1996. The goal was
to write a Delphi-like Java IDE in Java. Xelfi was the first Java IDE (Integrated Development Environment)
written in Java, with its first pre-releases in 1997. Xelfi was a fun project to work on, especially since Java
IDE space was uncharted territory at that time. The project attracted enough interest that these students, once
they graduated, decided that they could market it as a commercial product. Soliciting resources from friends
and relatives for a web space, they formed a company around it.
Soon after, they were contacted by Roman Stanek, an entrepreneur who had already been involved in several
start-ups in the Czech Republic. He was looking for a good idea to invest in and discovered Xelfi. He met
with the founders; they hit it off, and a business was born.
In the spring of 1999, NetBeans DeveloperX2 was released, supporting Swing. The performance
improvements that came in JDK 1.3, released in the fall of 1999, made NetBeans a viable choice for
development tools. By the summer of 1999, the team was hard at work re-architecting DeveloperX2 into the
more modular NetBeans that forms the basis of the software today.
Something else was afoot in the summer of 1999: Sun Microsystems wanted better Java development tools
and had become interested in NetBeans. It was a dream come true for the NetBeans team: NetBeans would
become the flagship tool set of the maker of Java itself! By the Fall, with the next generation of NetBeans
Developer in beta, a deal was struck. Sun Microsystems had also acquired another tools company, During
the acquisition, the young developers who had been involved in open-source projects for most of their
programming careers, mentioned the idea of open-sourcing NetBeans. Fast forward to less than six months
later, the decision was made that NetBeans would be open sourced. While Sun had contributed considerable
amounts of code to open source projects over the years, this was Sun's first sponsored open source project,
one in which Sun would be paying for the site and handling the infrastructure.
History…
NetBeans began in 1996 as Xelfi (word play on Delphi), a Java IDE student project under the guidance of
the Faculty of Mathematics and Physics at Charles University in Prague. In 1997, Roman Staněk formed a
company around the project and produced commercial versions of the NetBeans IDE until it was bought
by Sun Microsystems in 1999. Sun open-sourced the NetBeans IDE in June of the following year. Since
then, the NetBeans community has continued to grow. In 2010, Sun (and thus NetBeans) was
acquired by Oracle Corporation. Under Oracle, NetBeans competed with JDeveloper, a freeware IDE that
has historically been a product of the company. In September 2016, Oracle submitted a proposal to donate
the NetBeans project to the Apache Software Foundation, stating that it was "opening up the NetBeans
governance model to give NetBeans constituents a greater voice in the project's direction and future success
through the upcoming release of Java 9 and NetBeans 9 and beyond". The move was endorsed by Java
creator James Gosling. The project entered the Apache Incubator in October 2016.
NetBeans IDE 6.0 introduced support for developing IDE modules and rich client applications based on the
NetBeans platform, a Java Swing GUI builder (formerly known as "Project Matisse"),
improved CVS support, WebLogic 9 and JBoss 4 support, and many editor enhancements. NetBeans 6 is
available in official repositories of major Linux distributions NetBeans IDE 6.5, released in November 2008,
extended the existing Java EE features (including Java Persistence support, EJB 3 and JAX-WS).
Additionally, the NetBeans Enterprise Pack supports the development of Java EE 5 enterprise applications,
including SOA visual design tools, XML schema tools, web services orchestration (for BPEL),
and UML modelling. The NetBeans IDE Bundle for C/C++ supports C/C++ and FORTRAN development.
NetBeans IDE 6.8 is the first IDE to provide complete support of Java EE 6 and the Glass Fish Enterprise
Server v3. Developers hosting their open-source projects on kenai. comadditionally benefit from instant
messaging and issue tracking integration and navigation right in the IDE, support for web application
development with PHP 5.3 and the Symphony framework, and improved code completion, layouts, hints and
navigation in JavaFX projects.
NetBeans IDE 6.9, released in June 2010, added support for OSGi, Spring Framework 3.0, Java EE
dependency injection (JSR-299), Zend Framework for PHP, and easier code navigation (such as "Is
Overridden/Implemented" annotations), formatting, hints, and refactoring across several languages.
NetBeans IDE 7.0 was released in April 2011. On August 1, 2011, the NetBeans Team released NetBeans
IDE 7.0.1, which has full support for the official release of the Java SE 7platform.
NetBeans IDE 7.3 was released in February 2013 which added support for HTML5 and web technologies.
NetBeans IDE 7.4 was released on October 15, 2013.
NetBeans IDE 8.0 was released on March 18, 2014.
NetBeans IDE 8.1 was released on November 4, 2015.
NetBeans IDE 8.2 was released on October 3, 2016.
NetBeans 9.0, which adds support for Java 9, is currently in development by the Apache Incubator project
NETBEANS PLATFORM
The NetBeans Platform is a framework for simplifying the development of Java Swing desktop applications.
The NetBeans IDE bundle for Java SE contains what is needed to start developing NetBeans plugins and
NetBeans Platform based applications; no additional SDK is required.
Applications can install modules dynamically. Any application can include the Update Centre module to
allow users of the application to download digitally signed upgrades and new features directly into the
running application. Reinstalling an upgrade or a new release does not force users to download the entire
application again.
The platform offers reusable services common to desktop applications, allowing developers to focus on the
logic specific to their application. Among the features of the platform are:
Integrated Modules…
These modules are part of the NetBeans IDE.
NetBeans Profiler…
The NetBeans Profiler is a tool for the monitoring of Java applications: It helps developers find memory
leaks and optimize speed. Formerly downloaded separately, it is integrated into the core IDE since version
6.0. The Profiler is based on a Sun Laboratories research project that was named JFluid. That research
uncovered specific techniques that can be used to lower the overhead of profiling a Java application. One of
those techniques is dynamic bytecode instrumentation, which is particularly useful for profiling large Java
applications. Using dynamic bytecode instrumentation and additional algorithms, the NetBeans Profiler is
able to obtain runtime information on applications that are too large or complex for other profilers.
NetBeans also support Profiling Points that let you profile precise points of execution and measure
execution time.
syntax highlighting, code completion, occurrence highlighting, error highlighting, CVS version
control
semantic analysis with highlighting of parameters and unused local variables
PHP code debugging with xdebug
PHP Unit testing with PHPUnit and Selenium
Code coverage
Symphony framework support (since version 6.8)
Zend Framework support (since version 6.9)
Yii Framework support (since version 7.3)
PHP 5.3 namespace and closure support (since version 6.8)
Code Folding for Control Structures (since version 7.2 dev)
NetBeans IDE Complete Bundle…
Oracle also releases a version of NetBeans that includes all of the features of the above bundles. This bundle
includes:
What is Database?
Introduction and Concepts:
A database is a collection of information related to a particular subject or purpose, such as tracking customer
orders or maintaining a music collection. Using any RDBMS application software like MS SQL Server,
MySQL, Oracle, Sybase etc, you can manage all your information from a single database file. Within the
file, divide your data into separate storage containers called tables. You may and retrieve the data using
queries.
A table is a collection of data about a specific topic, such as products or suppliers. Using a separate table for
each topic means you can store that data only once, which makes your database more efficient and reduces
data-entry errors. Table organises data into columns (called fields) and rows (called records).
A Primary key is one or more fields whose value or values uniquely identify each record in a table. In a
relationship, a primary key is used to refer to specific record in one table from another table. A primary key
is called foreign key when it is referred to from another table.
To find and retrieve just the data that meets conditions you specify, including data from multiple tables,
create a query. A query can also update or delete multiple records at the same time and perform built-in or
custom calculations on your data.
The DBMS responds to a query by invoking the appropriate subprograms, each of which performs its
special function to interpret the query, or to locate the desired data in the database and present it in the
desired order.
What is My SQL?
The management of data in a database system is done by means of a general-purpose software package
called a Database Management System (DBMS). Some commercially available RDBMS are MS SQL
Server, MS ACCESS, INGRES, ORACLE, and Sybase.
MySQL, the most popular Open Source SQL database management system, is developed, distributed, and
supported by Oracle Corporation. MySQL is named after co-founder Monty Widenius's daughter, My. The
name of the MySQL Dolphin (our logo) is “Sakila.”
MySQL is a database management system.
A database is a structured collection of data. It may be anything from a simple shopping list to a
picture gallery or the vast amounts of information in a corporate network. To add, access, and
process data stored in a computer database, you need a database management system such as
MySQL Server. Since computers are very good at handling large amounts of data, database
management systems play a central role in computing, as standalone utilities, or as parts of other
applications.
MySQL is based on SQL.
A relational database stores data in separate tables rather than putting all the data in one big
storeroom. This adds speed and flexibility. The SQL part of “MySQL” stands for “Structured Query
Language.” SQL is the most common standardized language used to access databases and is defined
by the ANSI/ISO SQL Standard. The SQL standard has been evolving since 1986 and several
versions exist. In this manual, “SQL-92” refers to the standard released in 1992, “SQL:1999” refers
to the standard released in 1999, and “SQL:2003” refers to the current version of the standard.
MySQL software is Open Source.
Open Source means that it is possible for anyone to use and modify the software. Anybody can
download the MySQL software from the Internet and use it without paying anything. If you wish,
you may study the source code and change it to suit your needs. The MySQL software uses the GPL
(GNU General Public License),
The MySQL Database Server is very fast, reliable, and easy to use.
If that is what you are looking for, you should give it a try. MySQL Server also has a practical set of
features developed in close cooperation with our users. You can find a performance comparison of
MySQL Server with other database managers on our benchmark page. MySQL Server was originally
developed to handle large databases much faster than existing solutions and has been successfully
used in highly demanding production environments for several years. Although under constant
development, MySQL Server today offers a rich and useful set of functions. Its connectivity, speed,
and security make MySQL Server highly suited for accessing databases on the Internet.
MySQL Server works in client/server or embedded systems.
The MySQL Database Software is a client/server system that consists of a multi-threaded SQL server
that supports different backends, several different client programs and libraries, administrative tools,
and a wide range of application programming interfaces (APIs).
The Main Features of MySQL
Analysis is an important part of any project. If Analysis is not done properly then the whole
project moves in the wrong direction. It also provides a schedule for the proper project
work.
Analysis task divided into 3 areas:
Problem Recognition
Feasibility Study
Requirement Analysis
Problem Recognition:
It is the phase in which the Current need for the System is to be defined. This site of
Computer Peripherals & Consumables has all the up to date information. Regarding to all
computer Peripherals & Consumables.
Feasibility Study:
Feasibility study of the system is a very important stage during system design. Feasibility
study is a test of a system proposal according to its workability impact on the organization,
ability to meet user needs, and effective use of resources. Feasibility study decides whether
the system is properly developed or not.
Requirement Analysis:
A software product always begins with the customers’ needs. These needs initially are
either in the mind of the customer. Sometimes it is present in the existing practice where
the need is to automate a current manual process. These software requirements which are
there in the mind of the users are usually informal and not general.
This phase basically converts these informal needs from the user into a set of formal
requirement.
This phase ends up with the SRS (System Requirements Specification).
1. Problem Analysis
The goal of problem analysis is to obtain a clear understanding of the requirements of the
client and the users.
2. Requirement Specification (SRS)
The SRS makes an Agreement between the user(client) of the system and the developer on
what the software product will do.
3. Requirement Validation
It validates whether the requirement specification document does not have any error in it.
The common errors that may occur are incorrect fact, inconsistency and ambiguity.
The hardest part of building a software system is deciding precisely what to build. No other part of the
conceptual work is so difficult as establishing the detailed technical requirement. Defining and applying
good, complete requirements are hard to work, and success in this endeavor has eluded many of us. Yet, we
continue to make progress.
Problem definition describes the What of a system, not How. The quality of a software product is only as
good as the process that creates it. Problem definition is one of the most crucial steps in this creation
process. Without defining a problem, developers do not know what to build, customers do not know what to
expect, and there is no way to validate that the built system satisfies the requirement.
Problem definition and Analysis is the activity that encompasses learning about the problem to be solved,
understanding the needs of customer and users, trying to find out who the user really is, and understanding
all the constraints on the solution. It includes all activities related to the following:
Identification and documentation of customer’s or user’s needs.
Creation of a document that describes the external behavior and the association constraints that will
satisfies those needs.
Analysis and validation of the requirements documents to ensure consistency, completeness, and
feasibility
Evolution of needs.
After the analysis of the functioning of a Hotel Management System, the proposed System is expected to do
the following: -
To provide a user friendly, Graphical User Interface (GUI) based integrated and centralized
environment for computerized Hotel Management System.
The proposed system should maintain all the records and transactions and should generate the
required reports and information when required.
To provide efficient and secured Information storage, flow and retrieval system, ensuring the
integrity and validity of records.
To provide graphical and user-friendly interface to interact with a centralized database based on
client-server architecture.
To identify the critical operation procedure and possibilities of simplification using modern IT tools
and practices.
5.1System Study & Analysis
PRINCIPLES OF SYSTEM ANALYSIS…
1. Understand the problem before you begin to create the analysis model.
2. Develop prototypes that enable a user to understand how human machine interaction will occur.
3. Record the origin of and the reason for every requirement.
4. Use multiple views of requirements like building data, function and behavioral models.
5. Work to eliminate ambiguity.
A DFD shows what kind of information will be input to and output from the system, how the data will advance
through the system, and where the data will be stored. It does not show information about process timing or
whether processes will operate in sequence or in parallel, unlike a traditional structured flowchart which focuses
on control flow, or a UML activity workflow diagram, which presents both control and data flows as a unified
mode.
Data flow diagram serves two purposes:
Attributes: Attributes define the properties of a data object and take on one of three different characteristics.
They can be used to: Name an instance of data object. Describe the instance. Make reference to another
instance in other table.
Testing Methods…
Static vs. dynamic testing…
There are many approaches available in software testing. Reviews, walkthroughs,
or inspections are referred to as static testing, whereas actually executing programmed code
with a given set of test cases is referred to as dynamic testing. Static testing is often implicit,
as proofreading, plus when programming tools/text editors check source code structure or
compilers (pre-compilers) check syntax and data flow as static program analysis. Dynamic
testing takes place when the program itself is run. Dynamic testing may begin before the
program is 100% complete in order to test particular sections of code and are applied to
discrete functions or modules. Typical techniques for this are either using stubs /drivers or
execution from a debugger environment.
Static testing involves verification, whereas dynamic testing also involves validation.
Together they help improve to software testing. Among the techniques for static
analysis, mutation testing can be used to ensure the test cases will detect errors that are
introduced by mutating the source code.
The box approach…
Software testing methods are traditionally divided into white- and black-box testing. These
two approaches are used to describe the point of view that the tester takes when designing
test cases.
White-box testing…
White-box testing (also known as clear box testing, glass box testing, transparent box testing
and structural testing, by seeing the source code) tests internal structures or workings of a
program, as opposed to the functionality exposed to the end-user. 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).
While white-box testing can be applied at the unit, integration and system levels of the
software testing process, it is usually done at the unit level. 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 might not detect
unimplemented parts of the specification or missing requirements.
Techniques used in white-box testing include:
Testing Levels…
There are generally four recognized levels of tests: unit testing, integration testing,
component interface testing, and system testing. Tests are frequently grouped by where they
are added in the software development process, or by the level of specificity of the test. The
main levels during the development process as defined by the SWEBOK guide are unit-,
integration-, and system testing that is distinguished by the test target without implying a
specific process model. Other test levels are classified by the testing objective.
There are two different levels of tests from the perspective of customers: low-level testing
(LLT) and high-level testing (HLT). LLT is a group of tests for different level components of
software application or product. HLT is a group of tests for the whole software application or
product.]
Unit testing…
Unit testing refers to tests that verify the functionality of a specific section of code, usually
at the function level. In an object-oriented environment, this is usually at the class level, and
the minimal unit tests include the constructors and destructors.
These types of tests are usually written by developers as they work on code (white-box
style), to ensure that the specific function is working as expected. One function might have
multiple tests, to catch corner cases or other branches in the code. Unit testing alone cannot
verify the functionality of a piece of software, but rather is used to ensure that the building
blocks of the software work independently from each other.
Unit testing is a software development process that involves a synchronized application of a
broad spectrum of defect prevention and detection strategies in order to reduce software
development risks, time, and costs. It is performed by the software developer or engineer
during the construction phase of the software development lifecycle. Unit testing aims to
eliminate construction errors before code is promoted to additional testing; this strategy is
intended to increase the quality of the resulting software as well as the efficiency of the
overall development process.
Depending on the organization's expectations for software development, unit testing might
include static code analysis, data-flow analysis, metrics analysis, peer code reviews, code
coverage analysis and other software testing practices.
Integration testing…
Integration testing is any type of software testing that seeks to verify the interfaces between
components against a software design. Software components may be integrated in an
iterative way or all together ("big bang"). Normally the former is considered a better practice
since it allows interface issues to be located more quickly and fixed.
Integration testing works to expose defects in the interfaces and interaction between
integrated components (modules). Progressively larger groups of tested software components
corresponding to elements of the architectural design are integrated and tested until the
software works as a system.
Component interface testing…
The practice of component interface testing can be used to check the handling of data passed
between various units, or subsystem components, beyond full integration testing between
those units. The data being passed can be considered as "message packets" and the range or
data types can be checked, for data generated from one unit, and tested for validity before
being passed into another unit. One option for interface testing is to keep a separate log file
of data items being passed, often with a timestamp logged to allow analysis of thousands of
cases of data passed between units for days or weeks. Tests can include checking the
handling of some extreme data values while other interface variables are passed as normal
values. Unusual data values in an interface can help explain unexpected performance in the
next unit. Component interface testing is a variation of black-box testing, with the focus on
the data values beyond just the related actions of a subsystem component.
System testing…
System testing tests a completely integrated system to verify that the system meets its
requirements. For example, a system test might involve testing a logon interface, then
creating and editing an entry, plus sending or printing results, followed by summary
processing or deletion (or archiving) of entries, then logoff.
Operational acceptance testing…
Operational acceptance is used to conduct operational readiness (pre-release) of a product,
service or system as part of a quality management system. OAT is a common type of non-
functional software testing, used mainly in software development and software
maintenance projects. This type of testing focuses on the operational readiness of the system
to be supported, or to become part of the production environment. Hence, it is also known as
operational readiness testing (ORT) or Operations readiness and assurance (OR&A)
testing. Functional testing within OAT is limited to those tests that are required to verify
the non-functional aspects of the system.
In addition, the software testing should ensure that the portability of the system, as well as
working as expected, does not also damage or partially corrupt its operating environment or
cause other processes within that environment to become inoperative.
Installation testing…
Most software systems have installation procedures that are needed before they can be used
for their main purpose. Testing these procedures to achieve an installed software system that
may be used is known as installation testing.
Compatibility testing…
A common cause of software failure (real or perceived) is a lack of its compatibility with
other application software, operating systems (or operating system versions, old or new), or
target environments that differ greatly from the original (such as
a terminal or GUI application intended to be run on the desktop now being required to
become a Web application, which must render in a Web browser). For example, in the case
of a lack of backward compatibility, this can occur because the programmers develop and
test software only on the latest version of the target environment, which not all users may be
running. This results in the unintended consequence that the latest work may not function on
earlier versions of the target environment, or on older hardware that earlier versions of the
target environment were capable of using. Sometimes such issues can be fixed by
proactively
abstracting operating system functionality into a separate program module or library.
Smoke and sanity testing…
Sanity testing determines whether it is reasonable to proceed with further testing.
Smoke testing consists of minimal attempts to operate the software, designed to determine
whether there are any basic problems that will prevent it from working at all. Such tests can
be used as build verification test.
Regression testing…
Regression testing focuses on finding defects after a major code change has occurred.
Specifically, it seeks to uncover software regressions, as degraded or lost features, including
old bugs that have come back. Such regressions occur whenever software functionality that
was previously working correctly, stops working as intended. Typically, regressions occur as
an unintended consequence of program changes, when the newly developed part of the
software collides with the previously existing code. Common methods of regression testing
include re-running previous sets of test cases and checking whether previously fixed faults
have re-emerged. The depth of testing depends on the phase in the release process and
the risk of the added features. They can either be complete, for changes added late in the
release or deemed to be risky, or be very shallow, consisting of positive tests on each feature,
if the changes are early in the release or deemed to be of low risk. Regression testing is
typically the largest test effort in commercial software development,[30] due to checking
numerous details in prior software features, and even new software can be developed while
using some old test cases to test parts of the new design to ensure prior functionality is still
supported.
Acceptance testing…
Acceptance testing can mean one of two things:
1. A smoke test is used as a build acceptance test prior to further testing, e.g.,
before integration or regression.
2. Acceptance testing performed by the customer, often in their lab environment on their
own hardware, is known as user acceptance testing (UAT). Acceptance testing may be
performed as part of the hand-off process between any two phases of development.
Alpha testing…
Alpha testing is simulated or actual operational testing by potential users/customers or an
independent test team at the developers' site. Alpha testing is often employed for off-the-
shelf software as a form of internal acceptance testing before the software goes to beta
testing.
Beta testing…
Beta testing comes after alpha testing and can be considered a form of external user
acceptance testing. Versions of the software, known as beta versions, are released to a
limited audience outside of the programming team known as beta testers. The software is
released to groups of people so that further testing can ensure the product has few faults
or bugs. Beta versions can be made available to the open public to increase
the feedback field to a maximal number of future users and to deliver value earlier, for an
extended or even indefinite period of time (perpetual beta).
Functional vs non-functional testing…
Functional testing refers to activities that verify a specific action or function of the code.
These are usually found in the code requirements documentation, although some
development methodologies work from use cases or user stories. Functional tests tend to
answer the question of "can the user do this" or "does this particular feature work."
Non-functional testing refers to aspects of the software that may not be related to a specific
function or user action, such as scalability or other performance, behavior under
certain constraints, or security. Testing will determine the breaking point, the point at which
extremes of scalability or performance leads to unstable execution. Non-functional
requirements tend to be those that reflect the quality of the product, particularly in the
context of the suitability perspective of its users.
Continuous testing…
Continuous testing is the process of executing automated tests as part of the software
delivery pipeline to obtain immediate feedback on the business risks associated with a
software release candidate. Continuous testing includes the validation of both functional
requirements and non-functional requirements; the scope of testing extends from validating
bottom-up requirements or user stories to assessing the system requirements associated with
overarching business goals.
Destructive testing…
Destructive testing attempts to cause the software or a sub-system to fail. It verifies that the
software functions properly even when it receives invalid or unexpected inputs, thereby
establishing the robustness of input validation and error-management routine. Software fault
injection, in the form of fuzzing, is an example of failure testing. Various commercial non-
functional testing tools are linked from the software fault injection page; there are also
numerous open-source and free software tools available that perform destructive testing.
Software performance testing …
Performance testing is generally executed to determine how a system or sub-system
performs in terms of responsiveness and stability under a particular workload. It can also
serve to investigate, measure, validate or verify other quality attributes of the system, such as
scalability, reliability and resource usage.
Load testing is primarily concerned with testing that the system can continue to operate
under a specific load, whether that be large quantities of data or a large number of users. This
is generally referred to as software scalability. The related load testing activity of when
performed as a non-functional activity is often referred to as endurance testing. Volume
testing is a way to test software functions even when certain components (for example a file
or database) increase radically in size. Stress testing is a way to test reliability under
unexpected or rare workloads. Stability testing (often referred to as load or endurance
testing) checks to see if the software can continuously function well in or above an
acceptable period.
There is little agreement on what the specific goals of performance testing are. The terms
load testing, performance testing, scalability testing, and volume testing, are often used
interchangeably. Real-time software systems have strict timing constraints. To test if timing
constraints are met, real-time testing is used.
6.SYSTEM DESIGN & DEVELOPMENT
Table Structure: Status1 … Status12 (12 tables for storing status of 12 rooms)