Manavprojectreportfinal
Manavprojectreportfinal
MANAV SINGH
(ROLL NO: 2212044040057)
Ms. Pushpanjali
August-2024
1
2
ABSTRACT
Project Definition
The e-billing project for the supermarket aims to streamline and modernize the billing process through
the implementation of a comprehensive electronic invoicing system. This system will replace traditional
paper-based invoicing with digital invoices, enhancing efficiency and accuracy in transactions. By
integrating e-billing into the supermarket's operations, we aim to reduce administrative overhead,
minimize errors associated with manual data entry, and expedite the payment process. Additionally, the
e-billing system will provide real-time tracking and reporting capabilities, offering valuable insights into
sales and financial metrics. Ultimately, this project will improve overall operational efficiency, enhance
customer satisfaction through faster and more transparent billing, and support the supermarket's
sustainability goals by reducing paper consumption.
Problem Statement
The current billing process at the supermarket relies heavily on paper-based invoices, leading to
inefficiencies, increased risk of errors, and slower transaction times. This manual system results in
significant administrative overhead, including the time-consuming tasks of invoice generation,
distribution, and storage. Additionally, paper invoices are prone to inaccuracies and delays, which can
negatively impact cash flow and customer satisfaction. The lack of real-time tracking and reporting
further complicates financial oversight and decision-making. To address these challenges, there is a
critical need for an e-billing system that can automate and streamline the invoicing process, improve
accuracy, accelerate transactions, and provide comprehensive financial insights.
• Expert Management
• Diversification
• Real-Time Monitoring
3
Methodology
In order to develop a system one has to follow a system development methodology. This
methodology guides the developer in system development. The choice of methodology depends
upon the problem at hand. While developing this stock market portfolio services PROTOTYPE
MODEL is followed. The prototype models is a systems development method (SDM) in which a
prototype (an early approximation of a final system or product) is built, tested, and then reworked
as necessary until an acceptable prototype is finally achieved from which the complete system or
product can now be developed.
4
ACKNOWLEDGEMENT
The Completion of any task is the reward to not only persons actively involved in
accomplishing it, but also' to the people involved in the inspiring, guiding and helping those
peoples. We take the opportunities here to thank all those who have helped us in completion of
this project, without which this indeed would have been a mammoth task. Yet this project
wouldn't have been possible without the unrelenting, care and support of many people.
I would like to express my immense gratitude towards our Project Guide Ms.
Pushpanjali honorable faculty, computer applications, SRMCM, Lucknow. I am highly
indebted to his for encouraging, motivating and invaluable support in bringing the work to this
shape, without which this project report indeed would have been a quit difficult task.
I devote my special thanks to all faculty members of SRMCM who provide me great support
during developing of this project. I also thanks to all my friends who provide me great support
during developing of this project. I also thanks to all my friends who gave me suggestion &
inspiration from time to time to work on this project.
Above all we are thankful to almighty God without whose grace nothingis possible
and our parents.
2212044040057
MANAV SINGH
BCA 5th Semester
5
DEPARTMENT OF BCA
SRMCM
DECLARATION
I hereby declare that the project entitled "e-Path" submitted by me in the partial
fulfillment of the requirements for the award of the degree of Bachelor of Computer
Application of Lucknow University is record of my own work carried under the
supervision and guidance of Ms. Pushpanjali BCA, SRMCM.
To the best of my knowledge this project has not been submitted to Lucknow University or
any other University or Institute for the award of any degree
6
TABLE OF CONTENT
S.no Title Page No.
1 Introduction 9
3 Technology 12-17
4 Problem Definition 18
12 Testing 43-48
13 Conclusion 49
14 References 50
7
REPORT
(e-Billing for
Supermarket)
8
1. INTRODUCTION
The project is on Supermarket Billing. Supermarket is the place where customers come
to purchase their daily using products and pay for that. so there is a need to calculate how
many products are sold and to generate the bill for the customer. In our project we have 3
users. First is the data entry operator who will enter the products in database. Second one is
the administrator who will decide the taxes and commissions on the products and can see
the report of any product. Third one is the bill calculating operator who will calculate the bill
and print.
An E-Billing System for Supermarket Offers a wide range of benefits that address
the challenges associated with the current state of Customer’s data management in
Supermarkets. By improving efficiency, data accuracy, communication, and security, SMS
contributes to a more effective and productive environment for all stakeholders.
9
2. OBJECTIVE , WORKFLOW AND AIM
Objectives :
This project is based on MERN technology, the main objective of this project is to make
software fast in processing, with good user interface so that user can change it and it
should be used for a long time without error and maintenance
In other words we can say that our project has the following objectives :-
Enable Scalability
Improve Communication
Workflow :
Work in the Supermarket will be done in the following way:
2. Data entry operator will enter the information of the product in database.
3. The Administrator will enter the taxes and commissions for each product.
4. The customer will come and take the basket with him/her and choose the product and
took it to the counter.
10
5. The bill calculating operator will check the products with the bar code detecting machine
then it will match with product-id then it will show its information and price and the bill will
be calculated and total payment will shown.
AIM :
The aims of e-billing software for supermarkets are to streamline the billing process,
enhance efficiency, and improve customer service. Here are the key objectives:
11
3. TECHNOLOGY
3.1MERN Stack :
In conclusion, MERN allows developers to use JavaScript for both front-end and back-end
development, which streamlines development and reduces the need for context switching
between different languages and is highly productive.
12
3.2 MONGODB: DATABASE
MongoDB is a NoSQL database that stores data in a flexible, JSON-like format called BSON
(Binary JSON). MongoDB is a popular database management system that is designed to
store, manage, and retrieve large volumes of unstructured or semi-structured data. It is part
of the NoSQL database category, which means it offers a more flexible data model than
traditional relational databases. MongoDB is known for its scalability, performance, and
flexibility, and it is particularly well-suited for use cases that involve big data, real-time
applications, and rapid development cycles.
Benefits:
Schema-less design: Developers can easily adapt the database schema to evolving
requirements, making it suitable for complex data structures in an EBS.
Scalability: MongoDB is horizontally scalable, enabling it to handle large datasets and user
loads.
Compatibility with JavaScript: JSON/BSON data format aligns well with JavaScript, the
primary language of MERN stack.
Real-Time Data: MongoDB is well-suited for real-time applications and use cases that
require instant data updates and queries, such as social media feeds, chat applications, and
live dashboards.
MongoDB's architecture and data storage format are optimized for read and write
operations, making it a high-performance database system for Student Management
System. It supports features like indexing and caching to further enhance performance.
13
3.3 BACKEND FRAMEWORK
Express.js is a minimal and flexible Node.js web application framework that simplifies
backend development. It is a fast, minimalist, and flexible framework designed for building
web and mobile applications and APIs. Express.js provides a set of essential features and
tools that simplify common web development tasks, making it a popular choice for
developers building web applications and RESTful APIs with Node.js. Express is known for its
simplicity, scalability, and robust performance.
While Express.js itself is a lightweight framework, developers often use various middleware
and frameworks in conjunction with it to enhance its capabilities and streamline
development. Here are some notable Express.js frameworks and middleware:
Express Middleware:
Express.js allows developers to use middleware, which are functions that have access to the
request and response objects. Middleware can be used to perform tasks such as request
logging, authentication, input validation, and more.
NestJS:
AdonisJS:
These frameworks and middleware, when used in conjunction with Express.js, help
developers build web applications and APIs efficiently by providing structured development
patterns, additional features, and simplified solutions to common web development
challenges. Developers can choose the framework or middleware that best fits their
project's requirements and development.
14
3.4 Front-end Library :
React :
React is a popular JavaScript library for building user interfaces, focusing on component-
based development. React.js, commonly referred to as React, is an open-source JavaScript
library for building user interfaces (UIs) and front-end applications. Developed and
maintained by Facebook, React has gained widespread popularity in the web development
community for its efficiency, flexibility, and component-based architecture. It is often used
to create interactive and dynamic user interfaces for web and mobile applications.
2. Virtual DOM (Document Object Model): React uses a virtual DOM to improve
performance. Instead of directly manipulating the actual browser DOM, React creates a
lightweight virtual representation of the DOM and updates it efficiently. This minimizes the
number of updates to the actual DOM, resulting in faster rendering and improved user
experience.
3. Declarative Syntax: React uses a declarative syntax, which means developers describe
what the UI should look like based on the application's current state. React then
automatically handles updating the UI to match the desired state, abstracting away the
complexities of manual DOM manipulation.
4. React Components: React applications are built using components, which are JavaScript
classes or functions. Components can have state (data that can change over time) and props
(immutable data passed from parent to child components). This allows for dynamic and
interactive UIs.
5. Unidirectional Data Flow: React follows a unidirectional data flow, which ensures that
data flows in one direction—from parent components to child components. This helps
maintain data consistency and predictability.
6. JSX (JavaScript XML): React uses JSX, a syntax extension for JavaScript that allows
developers to write HTML-like code within their JavaScript files. JSX makes it easier to define
component structures and render them in a more readable way.
15
7. React Router: React Router is a popular library for implementing client-side routing in
React applications. It allows developers to define routes and navigate between different
views or components without full page reloads.
8. State Management: While React manages component-level state, for global state
management, developers often use additional libraries like Redux or the Context API. These
tools help manage application-wide state and data.
9. Rich Ecosystem: React has a vast ecosystem of libraries, tools, and extensions that
complement its capabilities. This includes libraries for state management, form handling,
animation, and more.
10. Community and Documentation: React has a large and active community of developers.
This means access to extensive documentation, tutorials, and a wealth of open-source
components and projects.
11. Cross-Platform Development: React can be used to build not only web applications but
also mobile applications using frameworks like React Native. This allows for code reuse and
faster development for multiple platforms.
16
3.5 RUNTIME ENVIRONMENT :
Node js:
1. Web Servers and APIs: Node.js is commonly used for building web servers and RESTful
APIs. Popular web frameworks like Express.js simplify the process of creating server-side
applications in Node.js.
5. Community and Support: Node.js has a large and active developer community, providing
extensive documentation, tutorials, and support forums. The community also regularly
releases updates and security patches.
6. Enterprise Adoption: Many large organizations and enterprises use Node.js for building
web applications, microservices, and APIs due to its performance, scalability, and developer-
friendly features.
Node.js is a versatile runtime environment that has found applications in a wide range of
domains, including web development, IoT (Internet of Things), real-time applications, cloud
computing, and serverless computing. Its popularity continues to grow as developers and
organizations recognize its benefits in terms of performance, scalability, and development
efficiency.
17
4. PROBLEM DEFINITION
The problem at hand is the inefficient and error-prone management of Customers, products
and Orders data and administrative processes in Supermarket. Key issues include:
Data Fragmentation: customers, products and Orders data is often scattered across multiple
systems and formats, leading to data inconsistency and duplication.
Manual Administrative Tasks: The reliance on manual processes for Order tracking and
grade management is time-consuming and prone to errors.
Data Security Concerns: With sensitive Customers information at stake, data security and
privacy are critical concerns.
Scalability Challenges: Many existing systems lack the scalability to accommodate the
diverse needs of Supermarkets, from small shops to large Supermarkets.
Data Inaccuracy: Errors in attendance tracking and incentive calculation can lead to work
disputes and affect employees outcomes.
Data Vulnerability: Inadequate data security measures can expose sensitive customers
information to unauthorized access and breaches.
Scalability Issues: supermarkets face limitations in scaling their systems to meet evolving
needs and accommodate growing customers populations.
18
5.REQUIREMENT AND ANALYSIS
A. GENERAL DESCRIPTION
1. User Registration: New users can create accounts with appropriate roles (e.g.,
admin, cashier).
2. Dashboard and Employees Profiles
User Dashboard: Cashiers are presented with role-specific dashboards upon login.
Profile Management: Admin can view and edit the employees profiles.
3. Reports and Analytics: Access to reports and analytics tools for supermarket
planning.
4. Salary and Incentives Tracking: Salary and Incentives will be updated
according to shifts done.
19
5. Data Backup and Recovery: Regularly back up Customers data to ensure data
integrity and recovery in case of data loss.
B. SPECIFIC REQUIREMENTS
I. Functional Requirements:
Database should be secure by applying primary key and not null constraints wherever
possible. The validity of user should be checked with proper authentications.
The environment of the web portal should be user friendly. Software should use client-server
architecture so that one or more user can do entries in the software system as well as view
reports at a time.
Identification of need mainly concern with requirements of the project how much time it
would be taken and how much cost it would require completing. The hardware requirement
of project also concern. The member of the project team is also decided in this phase.
Here we focus our points towards organizing needs i.e. to organize the things which are
scattered here and there. Need to gather information about various aspects like customer
information, bill calculation and reports. Each & every level of entity that is involving in the
management system needs to communicate together with the help of management system.
A preliminary investigation is carried out by various ways. As the staff of the concerned
institution was to be affected by the system therefore their needs and wish list were listed so
as to do the requirement analysis.
20
Only the people who actually are in the system could answer these questions. Therefore the
questions were asked to some of the staff of the concerned institution.
For this a prior appointment was taken and the following Questions wet
a) What kind of difficulties do you generally face in your system?
b) How are the records maintained?
¢) What information is required to be maintained?
d) What are the expectations from the proposed system?
e) What are the outputs required from the system?
f) What reports you desire for internal monitoring of daily activities?
Before getting started on a new system it was important to determine the feasibility
involved in the development system so that the new system development could be
developed.
Feasibility tests:
This type of study determines if a project can and should be taken. Once it has been
determined that, project is feasible, after that analyst can go ahead and prepares the
project specification, which finalizes project requirement.
The developed system is started after considering the main three type of feasibilities that
are
1. Technical Feasibility
2. Economic Feasibility
3. Legal Feasibility
21
4. Operational Feasibility
5. Schedule Feasibility
We can determine the feasibility of your study and make informed decisions about
whether to proceed or make adjustments to your research plan. There are other feasibility
studies as well like financial studies, resource feasibility, cultural feasibility.
22
6. SOFTWARE ENGINEERING PARADIGM APPLIED
Software Development Life Cycle (SDLC) is extremely vast and full of various development
and testing activities, methodologies, techniques, tools, and more. It involves intense
planning and management, calculation and preparation. It is only after combining all these
efforts of the software engineers that a software or application is successfully developed.
prototype Model is too a part of Software Development Life Cycle. It is a particular
implementation of a software development life cycle that focuses on an initial, simplified
implementation, which then progressively gains more complexity and a broader feature set
until the final system is complete.
PROTOTYPE MODEL
23
1. Requirements gathering and analysis : Requirement analysis is the first step in
developing a prototyping model. During this phase, the system’s desires are precisely
defined. During the method, system users are interviewed to determine what they expect
from the system.
2. Quick design : The second phase could consist of a preliminary design or a quick
design. During this stage, the system’s basic design is formed. However, it is not a complete
design. It provides the user with a quick overview of the system. The rapid design aids in the
development of the prototype.
3. Build a Prototype : During this stage, an actual prototype is intended to support the
knowledge gained from quick design. It is a small low-level working model of the desired
system.
4. Initial user evaluation : The proposed system is presented to the client for
preliminary testing at this stage. It is beneficial to investigate the performance model’s
strengths and weaknesses. Customer feedback and suggestions are gathered and forwarded
to the developer.
5.Refining prototype : If the user is dissatisfied with the current model, you may want
to improve the type that responds to user feedback and suggestions. When the user is
satisfied with the upgraded model, a final system based on the approved final type is
created.
7. Testing: An estimate says that 50% of whole software development process should be
tested. Errors may ruin the software from critical level to its own removal. Software testing
is done while coding by the developers and thorough testing is conducted by testing experts
at various levels of code such as module testing, program testing, product testing, in-house
testing and testing the product at user's end.
9. Maintenance: This phase confirms the software operation in terms of more efficiency
and less errors. If required, the users are trained on, or aided with the documentation on
how to operate the software and how to keep the software operational. The software is
maintained timely by updating the code according to the changes taking place in user’s end
environment or technology.
24
7. SOFTWARE AND HARDWARE REQUIRMENT
SPECIFICATION
Hardware and the software plays a major role in the development cycle of any system, right
from the planning phase to the end of the development process and then in the implementation
of the system. The Hardware and the software requirements are the key factors during the
feasibility of the candidate system.
Software requirements:
Hardware requirements:
2 RAM 512MB
3 HDD 15GB
25
8. PROJECT PLANNING AND SCHEDULING
During the planning phase, the team defines the solution: what to build, how to build it, and
who will build it, during this phase the team prepares the functional specification, works
through the design process and prepare works plans, cost estimates, and schedules for the
deliverables. There are three design processes in the planning phase: conceptual, logical and
physical design. These three processes are not parallel. There starting and ending points are
staggered. There processes are dependent on each other. Logical design is dependent on
conceptual design, and physical design is dependent on logical design any changes to the
conceptual design affect logical design leading to changes in the physical design.
There are two levels of reliability. The first is meeting the right requirements. A careful and
through systems study is needed to satisfy this aspect of reliability. The second level of
systems reliability involves the actual working delivered to the user. At this level, the systems
reliability is interwoven with software engineering and development. There are three
approaches to reliability.
26
2. Error detection and correction: In this approach errors are recognized whenever they are
encountered and correcting the error by effect of error, of the system does not fail.
3. Error tolerance: In this approach errors are recognized whenever they occur, but enables
the system to keep running through degraded perform or by applying values that instruct the
system to continue process.
8.1.2 Maintenance
Maintainability is a crucial phase in the Software Development Life Cycle (SDLC) for any
software project, including the e-Billing for Supermarket (EBS) developed using the MERN
stack. This phase focuses on ensuring that the system remains functional, up-to-date, and
adaptable over its lifecycle. Here's an explanation of the maintainability step within the
SDLC cycle for the EBS project:
One of the most important factors of an information system for the user is the output the
system produces. Without the quality of the output, the entire system may appear unnecessary
that will make us avoid using it possibly causing it to fail. Designing the output should
process the in an organized well throughout the manner. The right output must be developed
while ensuring that each output element is designed so that people will find the system easy
to use effectively.
The term output applying to information produced by an information system whether printed
or displayed while designing the output we should identify the specific output that is needed
to information requirements select a method to present the formation and create a document
report or other formats that contains produced by the system.
27
8.1.4 Layout Design:
It is an arrangement of items on the output medium. The layouts are building a mock up of
the actual reports or document, as it will appear after the system is in operation. The output
layout has been designated to cover information. The outputs are presented in the appendix.
Input specifications describe the manner in which data enter the system for processing. Input
design features will ensure the reliability of the systems and produce results from accurate
data, or thus can be result in the production of erroneous information. The input design also
determines whenever the user can interact efficiently with this system.
Input design consists of developing specifications and procedures for data preparation, the
steps necessary to put transaction data into a usable from for processing and data entry, the
activity of data into the computer processing. The five objectives of input design are:
Data preparation and data entry operation depend on people, because labour costs are high,
the cost of preparing and entering data is also high. Reducing data requirement expense.
By reducing input requirement the speed of entire process from data capturing to processing
to provide results to users.
Avoiding delay:
The processing delay resulting from data preparation or data entry operations is called
bottlenecks. Avoiding bottlenecks should be one objective of input.
Avoiding errors:
28
Through input validation we control the errors in the input data.
The designer should avoid the input design that cause extra steps in processing saving or
adding a single step in large number of transactions saves a lot of processing time or takes
more time to process.
If controls are more people may feel difficult in using the systems. The best-designed system
fits the people who use it in a way that is comfortable for them.
Task Task 1 2 3 4 5 6 7
No.
1 Requirement
Analysis
2 Design
3 Coding
4 Testing
5 Documentation
6 Implementation
7 Final Review
29
9. CONCEPTUAL DESIGN
9.1 DATA FLOW DIAGRAM
Data flow diagram (DFD) represents the flows of data between different processes in a
business. It is a graphical technique that depicts information flow and the transforms that are
applied as data move form input to output. It provides a simple, intuitive method for
describing business processes without focusing on the details of computer systems. DFDs are
attractive technique because they provide what users do rather than what computers do. The
DFD may be used for any level of data abstraction. DFD can be partitioned into levels. Each
level has more information flow and data functional details than the previous level.
30
9.1.2 1 LEVEL DFD
This level (level 1) shows all processes at the first level of numbering, data stores, external
entities and the data flows between them. The purpose of this level is to show the major high-
level processes of the system and their interrelation. A process model will have one, and only
one, level-1 diagram. A level-1 diagram must be balanced with its parent context level
diagram, i.e. there must be the same external entities and the same data flows, these can be
broken down to more detail in the level 1.
1 LEVEL DFD
31
9.2 ENTITY RELATIONSHIP DIAGRAM
An entity relationship diagram (ERD) shows the relationships of entity sets stored in a
database. An entity in this context is an object, a component of data. An entity set is a
collection of similar entities. These entities can have attributes that define its properties. By
defining the entities, their attributes, and showing the relationships between them, an ER
diagram illustrates the logical structure of databases. There are five main components of an
ERD:
32
E-R Diagram of E-billing System
33
9.3 USE CASE DIAGRAM
The Billing Management System is designed to streamline and automate
the process of managing invoices and payments within an organization. It
handles various tasks such as generating and sending invoices, tracking
payment statuses, and managing customer accounts. Key features include
invoice creation, payment processing, and reporting. The system interacts
with users to capture billing details, process transactions, and provide
insights into financial data, ensuring accurate and timely billing
operations.
Actors:
Use Cases:
34
Use Case Diagram
35
10. DATABASE DESIGN
Data:
Data is a collection of a distinct small unit of information. It can be used in a variety of forms
like text, numbers, media, bytes, etc. it can be stored in pieces of paper or electronic memory,
etc.
Word 'Data' is originated from the word 'datum' that means 'single piece of information.' It is
plural of the word datum. In computing, Data is information that can be translated into a form
for efficient movement and processing. Data is interchangeable.
Database handlers create a database in such a way that only one set of software program
provides access of data to all the users. The main purpose of the database is to operate a large
amount of information by storing, retrieving, and managing data. There are many dynamic
websites on the World Wide Web nowadays which are handled through databases. For
example, a model that checks the availability of rooms in a hotel. It is an example of a
dynamic website that uses a database. There are many databases available like MySQL,
Sybase, Oracle, MongoDB, Informix, PostgreSQL, SQL Server, etc.
Modern databases are managed by the database management system (DBMS). SQL or
Structured Query Language is used to operate on the data stored in a database. SQL depends
on relational algebra and tuple relational calculus.
DATABASE TABLES –
The database tables I have used for my Student Management System are a student table
and an admin table. The student table has a Name field, City, Course and Fees paid field .A
The admin table has a username and password field.
36
Screenshot of Database
37
11. MODULE DESCRIPTION
The proposed e-billing for supermarket offers a wide range of benefits that address the
challenges associated with the current state of Customer’s data management in
Supermarkets and Store. By improving efficiency, data accuracy and security, EBS
contributes to a more effective and productive Customers environment for all stakeholders.
Product Functions :
2. Customer Functions
3. Administrative Functions
4. Real-Time Features
5. Data Management
6. Data Security
Objectives :
The primary objectives of the e-billing for supermarket project are as follows:
1. Efficient Data Management: Create a centralized platform for storing and managing
customers information.
2. User-Friendly Interface: Develop an intuitive and user-friendly web interface
accessible to Cashier and administrators.
3. Automation: Automate routine administrative tasks such as attendance tracking to
reduce manual effort.
4. Communication: Improve communication between Cashier, Customers , and
administrators through notifications and reporting.
5. Data Security: Ensure the security and privacy of customers data through robust
access controls and encryption.
6. Scalability: Design the system to be scalable to accommodate the needs of e-billing
for supermarket of various sizes.
HOME PAGE :
38
This is the home page of my e-Billing System website for SuperMarket. We can read
about the website.
SIGNUP SCREEN :
This is the signUp screen where the cashier can enter their details to signUp and get
unique ID to login.
39
LOGIN PAGE :
CASHIER ACTIVITIES :
40
ADD NEW PRODUCT :
After adding a new product’s details we can view the availability and price details of
that product.
41
VIEW CASHIER :
42
12. TESTING
Software testing can be stated as the process of validating and verifying that a software
program/application/product:
Software testing, depending on the testing method employed, can be implemented at any
time in the development process. However, most of the test effort traditionally occurs
after the requirements have been defined and the coding process has been completed
having been shown that fixing a bug is less expensive when found earlier in the
development process. Although in the Agile approaches most of the test effort is,
conversely, on-going. As such, the methodology of the test is governed by the software
development methodology adopted.
Different software development models will focus the test effort at different points in the
development process. Newer development models, such as Agile, often employ test
driven development and place an increased portion of the testing in the hands of the
developer, before it reaches a formal team of testers. In a more traditional model, most of
the test execution occurs after the requirements have been defined and the coding process
has been completed. Testing can never completely identify all the defects within software.
Instead, it furnishes a criticism or comparison that compares the state and behaviour of
the product against oracles—principles or mechanisms by which someone might
recognize a problem. These oracles may include (but are not limited to) specifications,
contracts, comparable products, past versions of the same product, inferences about
intended or expected purpose, user or customer expectations, relevant standards,
43
applicable laws, or other criteria. Every software product has a target audience. For
example, the audience for video game software is completely different from banking
software. Therefore, when an organization develops or otherwise invests in a software
product, it can assess whether the software product will be acceptable to its end users, its
target audience, its purchasers, and other stakeholders. Software testing is the process of
attempting to make this assessment.
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 are distinguished by the test target without
implying a specific process model. There are three levels of testing as given below
Unit testing
Integration testing
System testing
Unit testing-
Unit testing, also known as component 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 synchronized application of a broad spectrum
of defect prevention and detection strategies in order to reduce software development
44
risks, time, and costs. It is performed by the software developer or engineer during the
construction phase of the software development lifecycle.
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).
In this 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. The Big Bang 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. Usage Model
testing 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,
45
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. For
integration testing, Usage Model testing can be more efficient and provides better test
coverage than traditional focused functional integration testing. To be more efficient
and accurate, care must be used in defining the user-like workloads for creating
realistic scenarios in exercising the environment. This gives confidence that the
integrated environment will work as expected for the target customers.
46
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 successfully 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 of 3 types:
o Alpha Testing
o Beta Testing
o Acceptance Testing
➢ Alpha Testing
Alpha testing is one of the most common software testing strategies used in software
development. It’s specially used by product development organizations. Alpha testing is
testing of an application when development is about to complete. Minor design changes can
still be made as a result of alpha testing. Alpha testing is typically performed by a group that
is independent of the design team, but still within the company, e.g. in-house software test
engineers, or software QA engineers. 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.
47
➢ Beta Testing
A beta test is the second phase of software testing in which a sampling of the intended
audience tries the product out. (Beta is the second letter of the Greek alphabet.) Originally,
the term alpha test meant the first phase of testing in a software development process. The
first phase includes unit testing, component testing, and system testing. Beta testing can be
considered ―pre-release testing. It comes after alpha testing and can be considered a form of
external user acceptance testing. Version of the software known as beta versions, are released
to a limited audience outside of the programming team knwn as beta testers. The software is
released to groups of people so that further testing can ensure the product has few faults or
bugs.
➢ Acceptance Testing
Formal testing with respect to user needs, requirements, and business processes conducted to
determine whether or not a system satisfies the acceptance criteria and to enable the user,
customers or other authorized entity to determine whether or not to accept the system. It is
performed by the customer, often in their lab environment on their hardware is known as
User Acceptance Testing (UAT).
48
CONCLUSION
49
REFERENCES
BOOKS-
LINKS-
1. www.w3schools.com/index.html
2. https://www.javatpoint.com/features-of-javawww.tutorialspont.com/js/js_queries.html
3. www.w3schools.com/html/default.html
4. www.scribd.com
5. www.wikipedia.com
6. https://www.geeksforgeeks.org
50