SVVT Lab 2819044

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 49

2819044

Panipat Institute of Engineering & Technology


Samalkha
Computer Science & Engineering Department

Practical File of Software Verification Validation & Testing Lab


Code : PE-CS-D403AL

Submitted to: Submitted by:


Mr. Puneet Sharma Vikrant
Assistant Professor 2819044
CSE Department B.Tech CSE VII SEM, C1

Affiliated to

Kurukshetra University Kurukshetra, India

1
2819044

INDEX
S.No Practical Date Signature

1. To identify role of software in today’s world


across a few significant domains related to day to 31-08-
day life. 2022

2. To identify any scenario and identify suitable


software development model for the given 07-09-
scenario. 2022

3. To classify the requirement into functional and


non-functional requirements and list four 14-09-
functional and non functional requirements for any 2022
scenario.

4. Do comparative study of various software 21-09-


development models. 2022

5. Preparation of requirement document for standard


application problems in standard format.(eg 28-09-
Library Management System, Railway 2022

Reservation system, Hospital management


System, University Admission system)

6. To identify the usage of Regression Testing. 12-10-


22

2
2819044

7. To identify the usage of Agile Testing. 19-10-


22

8. To understand the importance of SDLC and STLC 02-11-


22
process.

9. To draw a use case diagram for Online Shopping 02-11-


22
System.

10. Draw class diagram for Banking System 09-11-


22

11. Draw interaction diagram for Library Management 09-11-


22
System

3
2819044

Practical No-1
Aim: To identify role of software in today’s world across a few
significant domains related to day to day life.
Theory:
Computer software, or simply software, is a collection of data or computer instructions
that tell the computer how to work. This is in contrast to physical hardware, from which
the system is built and actually performs the work.

Computer software includes computer programs, libraries and related non-


executable data, such as online documentation or digital media. Computer hardware and
software require each other and neither can be realistically used on its own.

Types of Software:
• Application Software
This is software that uses the computer system to perform special functions or
provide entertainment functions beyond the basic operation of the computer itself. There
are many different types of application software, because the range of tasks that can be
performed with a modern computer is so large.
• System Software: Software for managing computer hardware behaviour, as to provide
basic functionalities that are required by users, or for other software to run properly, if at
all. System software is also designed for providing a platform for running application
software,[11] and it includes the following:
• Operating System
which are essential collections of software that manage resources and provide common
services for other software that runs "on top" of them. Supervisory programs, boot
loaders, shells and window systems are core parts of operating systems. In practice, an
operating system comes bundled with additional software (including application
software) so that a user can potentially do some work with a computer that only has one
operating system.
• Device Drivers
which operate or control a particular type of device that is attached to a computer. Each
device needs at least one corresponding device driver; because a computer typically has
at minimum at least one input device and at least one output device, a computer typically
needs more than one device driver.
• Utilities
which are computer programs designed to assist users in the maintenance and care of
their computers.
4
2819044

• Malicious Software or malware


which is software that is developed to harm and disrupt computers. As such, malware is
undesirable. Malware is closely associated with computer-related crimes, though some
malicious programs may have been designed as practical jokes.

Importance of software in day to day lives:


Software enables programs to work. And if you live in the developed world, we are now
at the level of dependency where literally you would die without computers.

Consider a catastrophe where all the world s computers stop working for just one year.

First problem is that all bank accounts would be frozen. Banks don t make paper
backups of all their transactions, so they don t know how much money is in your
account if they don t have access to their computers. They have the data in multiple
locations to enable them to survive various events, but if they are only held in electronic
format, that doesn t help.

So with no bank accounts, most people are broke. Only those people with actual
currency (those pieces of government issued paper) can buy anything. Physical currency
is a very small percentage of all the money in an economy (the rest is in electronic form
in the banks and other institutions). So the economy immediately shrinks 50% - 90%.

The food companies would have trouble getting food to your local stores. They would
have difficulty paying all the vendors along the food chain and doing the logistics of
moving the food to the stores without computers. This leads inevitably to sporadic food
shortages. And since not everyone has cash to buy food, food riots and looting of stores
will begin no longer than 3 days after the computers stop (there is a lot of historical
evidence that shows food shortages leading to riots within a 3 day window). Gangs will
start looting people s residences to find the food they want. Eventually the government
would have to step in to the control the mobs and distribute the food.

Now multiply the food problem and apply it to electric power, transportation fuel and
water. Those will be disrupted and it would take weeks or months to get alternate
distribution up and running.

If you happen to live to live in a temperate area when the winter comes you will be
lucky. If you live in an area that has brutally cold winters and there is no way to heat
your residences, a lot of your neighbors are going to freeze to death.

This is just a taste of the problems. A full scale computer outage would be much worse.

Importance of Software Engineering

5
2819044

1. Reduces complexity

Big software are always complex and difficult to develop. Software engineering has a
great solution to decrease the complexity of any project. Software engineering divides
big problems into several small problems. And then start solving each small problem one
by one. All these small problems are solved independently to each other.

2. To minimize software cost

Software requires a lot of hard work and software engineers are highly paid
professionals. A lots of man force is requires to develop software with millions of codes.
But in software engineering, programmers plan everything and reduce all those things
that are not required. In turn, cost for software productions becomes less as compared to
any software that does not use software engineering approach.

3. To decrease time

Anything that is not made according to the plan always wastes time. And if you are
making big software then you may need to run many code to get the ultimate running
code. This is a very time consuming process and if it is not well managed then this can
take a lot of time. So if you are making your software according to software engineering
approach then it will reduce a lot of time.

4. Handling big projects

Big projects are not made in few days and they require lots of patience, planning and
management. And to invest six and seven months of any company, it requires lots of
planning, direction, testing and maintenance. No one can say that he has given four
months of company to the project and the program is still in its first stage. Because
company has given many resources to the projects and it should be completed. So to
handle big projects without any problem, company has to go for software engineering
approach.

5. Reliable software

Software should be reliable, means if you have delivered the software then it should
work for at least it s given time span or subscription. And if any bugs come in the
software then company is responsible for solving all these bugs. Because in software
engineering, testing and maintenance is provided so there is no worry of its reliability.

6. Effectiveness

Effectiveness comes if anything has made according to the standards. Software standards
are the big focus of companies to make it more effective. So Software becomes more
effective in performance with the help of software engineering.
6
2819044

Practical No- 2
AIM: To identify any scenario and identify suitable software
development model for the given scenario.

Scenario:
ABC is a new enterprise recently started by a few young entrepreneurs, intended to
develop robotic systems using IT based solutions. TENZ is a well-established
automobile manufacturing plant, Interested in automating some of the operations of the
plant.
As first step towards automation, TENZ has decided to deploy a robotic arm to pick and
place large number of bolts from one tray of a conveyer belt to another tray of a different
conveyer belt. Moving one bolt at a time. TENZ has asked ABC for demonstration the
robotic arm for the said purpose as a proof of concept. This is the first project being
executed by ABC. TENZ would like to have a first experience of the robotic arm before
signing the MOU (Memorandum of Understanding) with ABC. After MOU sign-off,
TENZ would provide the complete set of requirement of the robot.
Problem Description: Identify the most appropriate SDLC model for this scenario. Also
give reason of selecting the desired model.

Solution:
The most suitable model is incremental model .
Because as ABC is dealing with his first project if the project fails then we can stop at
developing stages in initial stage only.

In incremental model the requirements are separated based on


categories and the designed separately
In each increment specific module is designed so if any module gets error the next parts
has to be halted

Otherwise if we came to know that our project is wrong at the end all the infrastructure
and effort is wasted and the projects crosses the budget.

The phases go in these fashion

7
2819044

First increment:
COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION-
>DEPLOYMENT

Second increment:
COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION-
>DEPLOYMENT

Third increment:
COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION-
>DEPLOYMENT

.Nth increment:
COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION-
>DEPLOYMENT

8
2819044

Practical No- 3
AIM: To classify the requirement into functional and non-
functional requirements and list four functional and non
functional requirements for any scenario.

SCENARIO:
1.1 The purpose of this document is to build an online system to manage flights and
passengers to ease the flight management.

1.2 DOCUMENT CONVENTIONS


This document uses the following conventions.

DB Database

DDB Distributed Database

ER Entity Relationship

1.3 INTENDED AUDIENCE


This project is a prototype for the flight management system. This project is useful for
the flight management team and as well as to the passengers.

1.4 PROJECT SCOPE


The purpose of the online flight management system is to ease flight management and to
create a convenient and easy-to-use application for passengers, trying to buy airline
tickets. The system is based on a relational database with its flight management and

9
2819044

reservation functions. We will have a database server supporting hundreds of major


cities around the world as well as thousands of flights by various airline companies.
Above all, we hope to provide a comfortable user experience along with the best pricing
available.

2. OVERALL DESCRIPTION
2.1 PRODUCT PERSPECTIVE

A distributed airline database system stores the following information.

 Flight details:
It includes the originating flight terminal and destination terminal, along with the
stops in between, the number of seats booked/available seats between two destinations
etc.

 Customer description:
It includes customer code, name, address and phone number. This information may be
used for keeping the records of the customer for any emergency or for any other kind
of information.

 Reservation description:
It includes customer details, code number, flight number, date of booking, date of
travel.

2.2 PRODUCT FEATURES

The major features of airline database system as shown in below entity relationship
model (ER model)

10
2819044

The diagram shows the layout of airline database system entity relationship model

2.3 USER CLASS and CHARACTERISTICS

Users of the system should be able to retrieve flight information between two given cities
with the given date/time of travel from the database. A route from city A to city B is a
sequence of connecting flights from A to B such that: a) there are at most two connecting
stops, excluding the starting city and destination city of the trip, b) the connecting time is
between one to two hours. The system will support two types of user privileges,
Customer, and Employee. Customers will have access to customer functions, and the
employees will have access to both customer and flight management functions. The
customer should be able to do the following functions:

 Make a new reservation


• One-way
• Round-Trip

11
2819044

• Multi-city
• Flexible Date/time
• Confirmation
 Cancel an existing reservation
 View his itinerary
The Employee should have following management functionalities:

 CUSTOMER FUNCTIONS.
• Get all customers who have seats reserved on a given flight.
• Get all flights for a given airport.
• View flight schedule.
• Get all flights whose arrival and departure times are on time/delayed.
• Calculate total sales for a given flight.
 ADMINISTRATIVE
• Add/Delete a flight
• Add a new airport
• Update fare for flights.
• Add a new flight leg instance.
• Update departure/arrival times for flight leg instances.
Each flight has a limited number of available seats. There are a number of flights
which depart from or arrive at different cities on different dates and time.

2.4 OPERATING ENVIRONMENT

Operating environment for the airline management system is as listed below.

 distributed database
 client/server system
 Operating system: Windows.
 database: sql+ database
 platform: vb.net/Java/PHP

2.5 DESIGN and IMPLEMENTATION CONSTRAINTS

1. The global schema, fragmentation schema, and allocation schema.


2. SQL commands for above queries/applications
3. How the response for application 1 and 2 will be generated. Assuming these are
global queries. Explain how various fragments will be combined to do so.
4. Implement the database at least using a centralized database management system.

12
2819044

2.6 ASSUMPTION DEPENDENCIES

Let us assume that this is a distributed airline management system and it is used in the
following application:

 A request for booking/cancellation of a flight from any source to any destination,


giving connected flights in case no direct flight between the specified Source
Destination pair exist.
 Calculation of high fliers (most frequent fliers) and calculating appropriate reward
points for these fliers.

3. SYSTEM FEATURES
 DESCRIPTION and PRIORITY
The airline reservation system maintains information on flights, classes of seats,
personal preferences, prices, and bookings. Of course, this project has a high priority
because it is very difficult to travel across countries without prior reservations.

 STIMULUS/RESPONSE SEQUENCES
 Search for Airline Flights for two Travel cities
 Displays a detailed list of available flights and make a Reservation or Book a
ticket on a particular flight.
 Cancel an existing Reservation.
 FUNCTIONAL REQUIREMENTS
Other system features include:

DISTRIBUTED DATABASE:

Distributed database implies that a single application should be able to operate


transparently on data that is spread across a variety of different databases and connected
by a communication network as shown in below figure.

13
2819044

Distributed database located in four different cities

CLIENT/SERVER SYSTEM

The term client/server refers primarily to an architecture or logical division of


responsibilities, the client is the application (also known as the front-end), and the server
is the DBMS (also known as the back-end).

A client/server system is a distributed system in which, ▪ Some sites are client sites and
others are server sites.

 All the data resides at the server sites.


 All applications execute at the client sites.

4. EXTERNAL INTERFACE REQUIREMENTS


4.1 USER INTERFACES

 Front-end software: Vb.net version


Description
Software used

We have chosen Windows operating system for its


Operating best support and user-friendliness.
system

14
2819044

To save the flight records, passengers records we


have chosen SQL+ database.
Database

To implement the project we have chosen Vb.Net


language for its more interactive support.
VB.Net
 Back-end software: SQL+ 4.2 HARDWARE INTERFACES ▪ Windows.
 A browser which supports CGI, HTML & Java script.

4.2 SOFTWARE INTERFACES

Following are the software used for the flight management online application.

4.3 COMMUNICATION INTERFACES

This project supports all types of web browsers. We are using simple electronic forms
for the reservation forms, ticket booking etc.

5. NONFUNCTIONAL REQUIREMENTS
5.1 PERFORMANCE REQUIREMENTS

The steps involved to perform the implementation of airline database are as listed below.

A) E-R DIAGRAM

The E-R Diagram constitutes a technique for representing the logical structure of a
database in a pictorial manner. This analysis is then used to organize data as a relation,
normalizing relation and finally obtaining a relation database.

 ENTITIES: Which specify distinct real-world items in an application.


 PROPERTIES/ATTRIBUTES: Which specify properties of an entity and
relationships.
 RELATIONSHIPS: Which connect entities and represent meaningful dependencies
between them.

15
2819044

the
diagram shows the ER diagram of airline database

B) NORMALIZATION:

The basic objective of normalization is to reduce redundancy which means that


information is to be stored only once. Storing information several times leads to wastage
of storage space and increase in the total size of the data stored.

If a database is not properly designed it can give rise to modification anomalies.


Modification anomalies arise when data is added to, changed or deleted from a database
table. Similarly, in traditional databases as well as improperly designed relational
databases, data redundancy can be a problem. These can be eliminated by normalizing a
database.

Normalization is the process of breaking down a table into smaller tables. So that each
table deals with a single theme. There are three different kinds of modifications of
anomalies and formulated the first, second and third normal forms (3NF) is considered
sufficient for most practical purposes. It should be considered only after a thorough
analysis and complete understanding of its implications.

5.2 SAFETY REQUIREMENTS

If there is extensive damage to a wide portion of the database due to catastrophic failure,
such as a disk crash, the recovery method restores a past copy of the database that was
backed up to archival storage (typically tape) and reconstructs a more current state by
reapplying or redoing the operations of committed transactions from the backed up log,
up to the time of failure.

5.3 SECURITY REQUIREMENTS

16
2819044

Security systems need database storage just like many other applications. However, the
special requirements of the security market mean that vendors must choose their
database partner carefully.

5.4 SOFTWARE QUALITY ATTRIBUTES

 AVAILABILITY: The flight should be available on the specified date and specified
time as many customers are doing advance reservations.
 CORRECTNESS: The flight should reach start from correct start terminal and should
reach the correct destination.
 MAINTAINABILITY: The administrators and flight in chargers should maintain
correct schedules of flights.
 USABILITY: The flight schedules should satisfy a maximum number of customers
needs.

17
2819044

Practical No: 4
AIM: Do comparative study of various software development
models.

Introduction
Software development life cycle (SDLC) is a series of phases that provide a common
understanding of the software building process, how the software will be realized and
developed from the business understanding and requirements elicitation phase to convert
these business ideas and requirements into functions and features until its usage and
operation to achieve the business needs. The good software engineer should have enough
knowledge on how to choose the SDLC model based on the project context and the
business requirements.

It may be required to choose the right SDLC model according to the specific concerns
and requirements of the project to ensure its success.

Types of Software developing life cycles (SDLC)


• Waterfall Model

• V-Shaped Model

• Evolutionary Prototyping Model

• Spiral Method (SDM)

• Iterative and Incremental Method

• Agile development

Waterfall Model
Description

The Waterfall Model is a linear sequential flow. In which progress is seen as flowing
steadily downwards (like a waterfall) through the phases of software implementation.

18
2819044

This means that any phase in the development process begins only if the previous phase
is complete. The waterfall approach does not define the process to go back to the
previous phase to handle changes in requirement. The waterfall approach is the earliest
approach and most widely known that was used for software development.

The usage

Projects which not focus on changing the requirements, for example, projects initiated
from a request for proposals (RFPs), the customer has a very clear documented
requirements

Advantages and Disadvantages


Advantages
1. Easy to explain to the users

2. Structures approach.

3. Stages and activities are well defined.

4. Helps to plan and schedule the project

5. Verification at each stage ensures early detection of errors/misunderstanding

6. Each phase has specific deliverables.

Disadvantages
1. Very difficult to go back to any stage after it finished

2. Costly and required more time, in addition to the detailed plan.

3. Assumes that the requirements of a system can be frozen

4. A little flexibility and adjusting scope is difficult and expensive

V- Shaped Model
Description

19
2819044

It is an extension of the waterfall model, Instead of moving down in a linear way, the
process steps are bent upwards after the implementation and coding phase, to form the
typical V shape. The major difference between V-shaped model and waterfall model is
the early test planning in the V-shaped model.

The usage

• Software requirements clearly defined and known

• Software development technologies and tools are well-known

Advantages and Disadvantages


Advantages
1. Simple and easy to use

2. Each Phase has specific deliverables

3. Higher chance of success over the waterfall model due to the development of test
plans early on during the life cycle.

4. Works well for where requirements are easily understood

5. Verification and validation of the product in early stages of product development

Disadvantages
1. Very inflexible, like the waterfall model

2. Adjusting scope is difficult and expensive

3. The software is developed during the implementation so no early prototypes of the


software are produced

4. The model doesn t provide a clear path for problems during testing phases

5. Costly and required more time, in addition to a detailed

Prototyping Model
Description

20
2819044

It refers to the activity of creating prototypes of software applications, for example,


incomplete versions of the software program being developed. It is an activity that can
occur in software development. It used to visualize some component of the software to
limit the gap of misunderstanding the customer requirements by the development team.
This also will reduce the iterations may occur in waterfall approach and hard to be
implemented due to the inflexibility of the waterfall approach. So, when the final
prototype is developed, the requirement is considered to be frozen.

It has some types, such as:

Throwaway prototyping: Prototypes that are eventually discarded rather than becoming a
part of the finally delivered software

Evolutionary prototyping: prototypes that evolve into the final system through an
iterative incorporation of user feedback.

Incremental prototyping: The final product is built as separate prototypes. In the end, the
separate prototypes are merged in an overall design.

Extreme prototyping: used in web applications mainly. Basically, it breaks down web
development into three phases, each one based on the preceding one. The first phase is a
static prototype that consists mainly of HTML pages. In the second phase, the screens
are programmed and fully functional using a simulated services layer. In the third phase,
the services are implemented

The usage

This process can be used with any software developing life cycle model. While this shall
be chosen when you are developing a system has user interactions. So, if the system does
not have user interactions, such as a system does some calculations shall not have
prototypes.

Advantages and Disadvantages


1. Reduced time and costs, but this can be a disadvantage if the developer loses time in
developing the prototypes.

2. Improved and increased user involvement.

1. Insufficient analysis. User confusion of prototype finished system.

21
2819044

2. Developer misunderstanding of user objectives

3. Excessive development time of the prototype

4. It is costly to implement the prototypes

Spiral Model (SDM)


Description

It is combining elements of both design and prototyping-in-stages, in an effort to


combine advantages of top-down and bottom-up concepts. This model of development
combines the features of the prototyping model and the waterfall model. The spiral
model is favored for large, expensive, and complicated projects. This model uses many
of the same phases as the waterfall model, in essentially the same order, separated by
planning, risk assessment, and the building of prototypes and simulations.

The usage

It is used in the large applications and systems which built-in small phases or segments.

Advantages and Disadvantages


1. Estimates (i.e. budget, schedule, etc.) become more realistic as work progressed
because important issues are discovered earlier.

2. Early involvement of developers

3. Manages risks and develops the system into phases

1. High cost and time to reach the final product.

2. Needs special skills to evaluate the risks and assumptions.

3. Highly customized limiting re-usability

Iterative and Incremental Model


Description

It is developed to overcome the weaknesses of the waterfall model. It starts with an


initial planning and ends with deployment with the cyclic interactions in between. The
22
2819044

basic idea behind this method is to develop a system through repeated cycles (iterative)
and in smaller portions at a time (incremental), allowing software developers to take
advantage of what was learned during the development of earlier parts or versions of the
system.

It can consist of mini waterfalls or mini V-Shaped model

The usage

It is used in shrink-wrap application and large system which built-in small phases or
segments. Also, can be used in a system has separated components, for example, ERP
system. Which we can start with the budget module as a first iteration and then we can
start with inventory module and so forth.

Advantages and Disadvantages


1. Produces business value early in the development lifecycle

2. Better use of scarce resources through proper increment definition

3. Can accommodate some change requests between increments.

4. More focused on customer value than the linear approaches

5. Problems can be detected earlier.

1. Requires heavy documentation

2. Follows a defined set of processes

3. Defines increments based on function and feature dependencies.

4. Requires more customer involvement than the linear approaches.

5. Partitioning the functions and features might be problem

Agile Model
Description

It is based on iterative and incremental development, where requirements and solutions


evolve through collaboration between cross-functional teams.

The usage

23
2819044

It can be used with any type of the project, but it needs more engagement from the
customer and to be interactive. Also, it can be used when the customer needs to have
some functional requirement ready in less than three weeks and the requirements are not
clear enough.

Advantages and Disadvantages


1. Decrease the time required to avail some system features.

2. Face to face communication and continuous inputs from customer representative


leaves no space for guesswork.

3. The end result is the high-quality software in the least possible time duration and in
the least possible time duration and satisfied customer.

1. Scalability.

2. The ability and collaboration of the customer to express user needs

3. Documentation is done at later stages

4. Reduce the usability of components

24
2819044

Practical No: 5

AIM: Preparation of requirement document for standard


application problems in standard format.(e.g Library
Management System, Railway Reservation system, Hospital
management System, University Admission system)
Requirements:
A Software Requirements Specification (SRS) is a document that describes the nature of
a project, software or application. In simple words, SRS document is a manual of a
project provided it is prepared before you kick-start a project/application. This document
is also known by the names SRS report, software document. A software document is
primarily prepared for a project, software or any kind of application.

There are a set of guidelines to be followed while preparing the software requirement
specification document. This includes the purpose, scope, functional and nonfunctional
requirements, software and hardware requirements of the project. In addition to this, it
also contains the information about environmental conditions required, safety and
security requirements, software quality attributes of the project etc.

25
2819044

The library management system is software, which automates the job of a librarian.

The user can inquire about the availability of a book in which he can search by entering
the author s name or by entering the title of the book.

The user can borrow a book. He must provide the username and the card number, which
is unique and confidential to each user. By confirming the authenticity of a user, the
library management system provides information about the number of books already
borrowed by the user and by referring to the database whether the user can borrow books
or not. The library management system allows the user to enter the title and the author of
the book and hence issues the book if it is available.

By entering the user details and the book details the user can return the borrowed book.

SYSTEM REQUIREMENT SPECIFICATION

26
2819044

INTRODUCTION

Purpose
The purpose of this SRS is to describe the requirements involved in
developing a Library management system.

The intended audience is any person, who wants to inquire, borrow and
return the books.

Scope
The product is titled Library Management System.

The product will perform the following tasks

Enquire about the availability of books.

Borrow books if available.

Return the borrowed books.

Definitions, Acronyms and Abbreviations


DDBMS Database Management System.

References
IEEE standard 830-1998 recommended practice for Software
Requirements Specifications-Description.

Overview
The SRS contains an analysis of the requirements necessary to help easy
design.

27
2819044

The overall description provides interface requirements for the Library


Management System, product perspective, hardware interfaces, software
interfaces, communication interface, memory constraints, product
functions, user characteristics and other constraints.

Succeeding pages illustrate the characteristics of typical naïve users


accessing the system along with legal and functional constraints
enforced that affect Library Management System in any fashion.

THE OVERALL DESCRIPTION


Product perspective
Hardware interfaces
Hard disk: The database connectivity requires a hardware
configuration that is on-line. This makes it necessary to have a
fast database system running on high rpm hard disk permitting
complete data redundancy and back-up systems to support the
primary goal of reliability.

The system must interface with the standard output devise,


keyboard and mouse to interact with this software.
Software interfaces
Back End: MS-Access 2007

Front End: Microsoft Visual Basic 6.0

Memory Constraints
No specific constraints on memory.

Operations
The software allows three modes of operations 2.2.1.4.1.1
Enquire about the availability and status of books.

28
2819044

By extracting the username and password the software allows


the user to borrow a maximum of three books.

By extracting the username and password the software allows


the user to return the borrowed books.

Product Functions
Enquire about the availability and status of books.

Search the availability of book by entering the title of the book.

Search the availability of book by entering the author of the


book.

The software validates the authentic user by extracting their


user name and password.

After the validation of the user software allows the user to


borrow a maximum of three books based on the number of
books which where already borrowed.

After the validation of the user software allows the user to


return the books, which where borrowed.

User characteristics
The intended users of this software need not have specific
knowledge as to what is the internal operation of the system.
Thus the end user is at a high level of abstraction that allows
easier, faster operation and reduces the knowledge requirement
of end user

The Product is absolutely user friendly, so the intended users


can be the naïve users.

The product does not expect the user to possess any technical
background. Any person who knows to use the mouse and the
keyboard can successfully use this product.
29
2819044

Constraints
The user has a unique username and password, there are no
options to retrieve a password or username in case it is
forgotten or lost hence the user is requited to remember or store
the username and password.

SPECIFIC REQUIREMENTS

Logical Database Requirements


The system should contain databases that include all necessary
information for the product to function according to the
requirements. These include relations such as user details and
book details.

The user details refer to the information such as name, card


number, no. of books borrowed, the title and the name of the
author of the books that were borrowed.

The book details refer to the information such as the title of the
book, author availability status and the number of copies that is
available.

FRONT END DESCRIPTION


The library management system is automated library system where the user can search
for the book by either entering the details of the book or the author s name. By entering
the username and the password the software, by checking the number of books that are
already borrowed enables us to borrow a maximum of three books. And by entering the
username and password (card number), which is unique, the user can return the books.

BACK END DESCRIPTION

30
2819044

The library management system consists of two tables. One contains the student details
such as the name, card number that is the password, title and the author of the three
books, which could be borrowed. The book details consist of the title of the book,
number of copies, author and the availability status.

DATA STRUCTURES

BOOK DETAILS
FIELD NAME TYPE CONSTRAINTS
REGISTER_NO NUMBER NOT NULL
BOOK_ID NUMBER NOT NULL
ISSUE_DATE DATE/TIME
RETURN_DATE DATE/TIME
BOOK_NAME TEXT

STUDENT DETAILS
FIELD NAME TYPE CONSTRAINTS
REGISTER_NO NUMBER NOT NULL
FNAME TEXT NOT NULL
LNAME TEXT
GENDER TEXT
DEPT TEXT
EMAIL TEXT
PASSWORD TEXT
NO_OF_BOOKS NUMBER

31
2819044

Practical No: 6
AIM: To identify the usage of Regression Testing.
Theory:
Regression Testing is a type of testing that is done to verify that a code change in
the software does not impact the existing functionality of the product.

This is to ensure that the product works fine with new functionality, bug fixes or
any changes to the existing feature. Previously executed test cases are re-executed
in order to verify the impact of the change. Regression Testing is a Software
Testing type in which test cases are re-executed in order to check whether the
previous functionality of the application is working fine and the new changes have
not introduced any new bugs.

NEED OF REGRESSION TESTING:


• The Need of Regression Testing mainly arises whenever there is
requirement to change the code and we need to test whether the modified
code affects the other part of software application or not.

• Moreover, regression testing is needed, when a new feature is added to the


software application and for defect fixing as well as performance issue
fixing.

PROCESS:
• In order to do Regression Testing process, we need to first debug the code
to identify the bugs. Once the bugs are identified, required changes are
made to fix it, then the regression testing is done by selecting relevant test
cases from the test suite that covers both modified and affected parts of the
code.

• Software maintenance is an activity which includes enhancements, error


corrections, optimization and deletion of existing features. These
modifications may cause the system to work incorrectly. Therefore,
Regression Testing becomes necessary.

ACTIVITIES:
RETEST ALL:
2819044

• This is one of the methods for Regression Testing in which all the tests in
the existing test bucket or suite should be re-executed. This is very
expensive as it requires huge time and resources.

REGRESSION TEST SELECTION:

• Regression Test Selection is a technique in which some selected test cases


from test suite are executed to test whether the modified code affects the
software application or not. Test cases are categorized into two parts, reus
able test cases which can be used in further regression cycles and obsolete
test cases which can not be used in succeeding cycles.

PRIORITIZATION OF TEST CASES:

• Prioritize the test cases depending on business impact, critical & frequently
used functionalities. Selection of test cases based on priority will greatly
reduce the regression test suite.

SELECTION OF TEST CASES FOR REGRESSION TESTING:

It was found from industry data that a good number of the defects reported by
customers were due to last minute bug fixes creating side effects and hence
selecting the Test Case for regression testing is not that easy. Effective Regression
Tests can be done by selecting the following test cases -

• Test cases which have frequent defects

• Functionalities which are more visible to the users

• Test cases which verify core features of the product

• Test cases of Functionalities which has undergone more and recent changes

• All Integration Test Cases

• All Complex Test Cases

• Boundary value test cases

• A sample of Successful test cases

• A sample of Failure test cases

REGRESSION TESTING TOOLS:


2819044

Since the software undergoes frequent changes, regression testing costs will
escalate. In such cases, manual execution of test cases increases test execution time
as well as costs. Automation of regression test cases is the requirement in such
cases. The extent of automation depends on the number of test cases that remain re-
usable for successive regression cycles.

Following are the most important tools used for both functional and regression
testing in software engineering:

• Selenium: This is an open source tool used for automating web applications.
Selenium can be used for browser-based regression testing.

• Quick Test Professional (QTP): HP Quick Test Professional is automated software


designed to automate functional and regression test cases. It uses VBScript language
for automation. It is a Data-driven, Keyword based tool.

• Rational Functional Tester (RFT): IBM's rational functional tester is a Java tool
used to automate the test cases of software applications. This is primarily used for
automating regression test cases and it also integrates with Rational Test Manager.
2819044

Practical No-7
AIM: To identify the usage of Agile Testing.

THEORY:
Agile testing begins at the onset of a development project and involves the ongoing
integration between testing and development. Traditionally, testing was a separate
activity that came after the coding phase; in agile, testing is continuous, putting
testers between product owners and developers. This creates an ongoing feedback
loop which helps developers improve their code.

Key attributes of agile testing:

• Communication with product owners—testers interact with product owners


to clearly establish project expectations, so they can help developers align with
the product roadmap and satisfy customer needs.
• Close interaction with developers—testing is linked to the development
process. Testers are part of the development team, they report on quality issues
that can affect users, and suggest how to improve the solution.
• The entire team is involved in quality assurance—the whole team is
passionate about quality, developers build unit test cases for a better testing
process and to enhance the quality of audits. Developers also follow the
recommendations of testers for test requirements and code improvements.

Agile Testing Principles


There are eight main principles that guide agile testing:

• Continuous testing—agile teams perform tests regularly to make certain that


the product is continuously progressing. Testing is done in conjunction with
development.
• Continuous feedback—testers provide continuous feedback to team members.
Members regularly receive feedback regarding quality rather than requirements.
• Involving the whole team—testers, developers and business analysts all test the
software.
• Quick feedback—the business team participates in each iteration; ongoing feedback
reduces the time it takes to get feedback on development work.
• High-level software quality—teams test the software to ensure the code is clean
and tight. Through regular testing of the software, issues and vulnerabilities can be
easily detected and fixed in the same iteration as they are developed.
2819044

1. Less documentation—teams use a reusable checklist. Agile development


focuses on current customer needs rather than comprehensive, documented
requirements and instructions.
2. Test-driven—testers evaluate the product at the time of implementation, rather
than after implementation (as is the case with traditional testing methods).
3. Customer satisfaction—customers are exposed to their product during
development. They can adapt and update requirements as development
progresses. Tests can be modified to updated requirements.

Agile Testing Quadrants:


Agile testing can be simplified using a system of quadrants, which can help testers
for questions like which test to run? , when to run a test? , and how to run
tests?

• Quadrant 1—tests that relate to code quality, including automated tests like
unit and component tests.
• Quadrant 2—tests that focus on the business-related aspect of the product,
typically manual and automated functional tests. These includes prototypes,
functional tests and testing examples of scenarios.
• Quadrant 3—this quadrant provides feedback for tests in quadrants 1 and 2.
The team, business owners and even customers use the product in a realistic way
to test the user experience and measure business results.
• Quadrant 4—tests of nonfunctional requirements, including security,
compatibility, and stability. Tests used in quadrant 4 include stress, performance,
and infrastructure testing.
2819044

Practical No-8
AIM: To understand the importance of SDLC and STLC
process.

THEORY:
Software Development Life Cycle (SDLC) is a process used by the software
industry to design, develop and test high quality softwares. The SDLC aims to
produce a high-quality software that meets or exceeds customer expectations,
reaches completion within times and cost estimates.

SDLC is a process followed for a software project, within a software organization.


It consists of a detailed plan describing how to develop, maintain, replace and alter
or enhance specific software. The life cycle defines a methodology for improving
the quality of software and the overall development process.

The following figure is a graphical representation of the various stages of a typical


SDLC.
2819044

A typical Software Development Life Cycle consists of the following stages −

Stage 1: Planning and Requirement Analysis

Requirement analysis is the most important and fundamental stage in SDLC. It is


performed by the senior members of the team with inputs from the customer, the
sales department, market surveys and domain experts in the industry. This
information is then used to plan the basic project approach and to conduct product
feasibility study in the economical, operational and technical areas.

Planning for the quality assurance requirements and identification of the risks
associated with the project is also done in the planning stage. The outcome of the
technical feasibility study is to define the various technical approaches that can be
followed to implement the project successfully with minimum risks.

Stage 2: Defining Requirements

Once the requirement analysis is done the next step is to clearly define and
document the product requirements and get them approved from the customer or
the market analysts. This is done through an SRS (Software Requirement
Specification) document which consists of all the product requirements to be
designed and developed during the project life cycle.

Stage 3: Designing the Product Architecture

SRS is the reference for product architects to come out with the best architecture for
the product to be developed. Based on the requirements specified in SRS, usually
more than one design approach for the product architecture is proposed and
documented in a DDS - Design Document Specification.

This DDS is reviewed by all the important stakeholders and based on various
parameters as risk assessment, product robustness, design modularity, budget and
time constraints, the best design approach is selected for the product.

A design approach clearly defines all the architectural modules of the product along
with its communication and data flow representation with the external and third
party modules (if any). The internal design of all the modules of the proposed
architecture should be clearly defined with the minutest of the details in DDS.

Stage 4: Building or Developing the Product


2819044

In this stage of SDLC the actual development starts and the product is built. The
programming code is generated as per DDS during this stage. If the design is
performed in a detailed and organized manner, code generation can be
accomplished without much hassle.

Developers must follow the coding guidelines defined by their organization and
programming tools like compilers, interpreters, debuggers, etc. are used to generate
the code. Different high level programming languages such as C, C++, Pascal, Java
and PHP are used for coding. The programming language is chosen with respect to
the type of software being developed.

Stage 5: Testing the Product

This stage is usually a subset of all the stages as in the modern SDLC models, the
testing activities are mostly involved in all the stages of SDLC. However, this stage
refers to the testing only stage of the product where product defects are reported,
tracked, fixed and retested, until the product reaches the quality standards defined
in the SRS.

Stage 6: Deployment in the Market and Maintenance

Once the product is tested and ready to be deployed it is released formally in the
appropriate market. Sometimes product deployment happens in stages as per the
business strategy of that organization. The product may first be released in a limited
segment and tested in the real business environment (UAT- User acceptance
testing).

Then based on the feedback, the product may be released as it is or with suggested
enhancements in the targeting market segment. After the product is released in the
market, its maintenance is done for the existing customer base.

SDLC Models

There are various software development life cycle models defined and designed
which are followed during the software development process. These models are
also referred as Software Development Process Models". Each process model
follows a Series of steps unique to its type to ensure success in the process of
software development.

Following are the most important and popular SDLC models followed in the
industry −

• Waterfall Model
• Iterative Model
2819044

• Spiral Model
• V-Model
• Big Bang Model

Software Testing Life Cycle (STLC) is a sequence of specific


activities conducted during the testing process to ensure software quality goals are
met. STLC involves both verification and validation activities. Software Testing is
not just a single/isolate activity, i.e. testing. It consists of a series of activities
carried out methodologically to help certify your software product. STLC stands for
Software Testing Life Cycle.

STLC Phases
There are following six major phases in every Software Testing Life Cycle Model
(STLC Model):

1. Requirement Analysis
2. Test Planning
3. Test case development
4. Test Environment setup
5. Test Execution
6. Test Cycle closure

• Entry Criteria: Entry Criteria gives the prerequisite items that must be
completed before testing can begin.
• Exit Criteria: Exit Criteria defines the items that must be completed before
testing can be concluded
2819044

Requirement Phase Testing


Requirement Phase Testing also known as Requirement Analysis in which test
team studies the requirements from a testing point of view to identify testable
requirements and the QA team may interact with various stakeholders to understand
requirements in detail. Requirements could be either functional or non-functional.
Automation feasibility for the testing project is also done in this stage.

Activities in Requirement Phase Testing

• Identify types of tests to be performed.


• Gather details about testing priorities and focus.
• Prepare Requirement Traceability Matrix (RTM).
• Identify test environment details where testing is supposed to be carried out.
• Automation feasibility analysis (if required).

Deliverables of Requirement Phase Testing

• RTM
• Automation feasibility report. (if applicable)

Test Planning in STLC


Test Planning in STLC is a phase in which a Senior QA manager determines the
test plan strategy along with efforts and cost estimates for the project. Moreover, the
resources, test environment, test limitations and the testing schedule are also
determined. The Test Plan gets prepared and finalized in the same phase.
Test Planning Activities

• Preparation of test plan/strategy document for various types of testing


• Test tool selection
• Test effort estimation
• Resource planning and determining roles and responsibilities.
• Training requirement

Deliverables of Test Planning

• Test plan /strategy document.


• Effort estimation document.

Test Case Development Phase


The Test Case Development Phase involves the creation, verification and rework of
test cases & test scripts after the test plan is ready. Initially, the Test data is identified
2819044

then created and reviewed and then reworked based on the preconditions. Then the
QA team starts the development process of test cases for individual units.
Test Case Development Activities

• Create test cases, automation scripts (if applicable)


• Review and baseline test cases and scripts
• Create test data (If Test Environment is available)

Deliverables of Test Case Development

• Test cases/scripts
• Test data

Test Environment Setup


Test Environment Setup decides the software and hardware conditions under which a
work product is tested. It is one of the critical aspects of the testing process and can be
done in parallel with the Test Case Development Phase. Test team may not be
involved in this activity if the development team provides the test environment. The
test team is required to do a readiness check (smoke testing) of the given environment.

Test Environment Setup Activities

• Understand the required architecture, environment set-up and prepare hardware


and software requirement list for the Test Environment.
• Setup test Environment and test data
• Perform smoke test on the build

Deliverables of Test Environment Setup

• Environment ready with test data set up


• Smoke Test Results.

Test Execution Phase


Test Execution Phase is carried out by the testers in which testing of the software
build is done based on test plans and test cases prepared. The process consists of test
script execution, test script maintenance and bug reporting. If bugs are reported then it
is reverted back to development team for correction and retesting will be performed.

Test Execution Activities

• Execute tests as per plan


2819044

• Document test results, and log defects for failed cases


• Map defects to test cases in RTM
• Retest the Defect fixes
• Track the defects to closure

Deliverables of Test Execution

• Completed RTM with the execution status


• Test cases updated with results
• Defect reports

Test Cycle Closure


Test Cycle Closure phase is completion of test execution which involves several
activities like test completion reporting, collection of test completion matrices and test
results. Testing team members meet, discuss and analyze testing artifacts to identify
strategies that have to be implemented in future, taking lessons from current test cycle.
The idea is to remove process bottlenecks for future test cycles.

Test Cycle Closure Activities

• Evaluate cycle completion criteria based on Time, Test coverage, Cost,Software,


Critical Business Objectives, Quality
• Prepare test metrics based on the above parameters.
• Document the learning out of the project
• Prepare Test closure report
• Qualitative and quantitative reporting of quality of the work product to the
customer.
• Test result analysis to find out the defect distribution by type and severity.

Deliverables of Test Cycle Closure

• Test Closure report


• Test metrics
2819044

Practical No:9
AIM: To draw a use case diagram for Online Shopping
System.
Theory:

USE CASE DIAGRAM


A use case diagram is a dynamic or behavior diagram in UML. Use case diagrams
model the functionality of a system using actors and use cases. Use cases are a set of
actions, services, and functions that the system needs to perform. In this context, a
"system" is something being developed or operated, such as a web site. The "actors"
are people or entities operating under defined roles within the system.

NEED OF USE CASE DIAGRAM


Use case diagrams are valuable for visualizing the functional requirements of a
system that will translate into design choices and development priorities.
They also help identify any internal or external factors that may influence the system
and should be taken into consideration.
They provide a good high level analysis from outside the system. Use case diagrams
specify how the system interacts with actors without worrying about the details of
how that functionality is implemented.

BASIC USE CASE DIAGRAM AND NOTATIONS


• System
Draw your system's boundaries using a rectangle that contains use cases.
Place actors outside the system's boundaries.

• Use case
Draw use cases using ovals. Label the ovals with verbs that represent the
system's functions.

• Actors
Actors are the users of a system. When one system is the actor of another
system, label the actor system with the actor stereotype.
2819044

• Relationships
Illustrate relationships between an actor and a use case with a simple line.
For relationships among use cases, use arrows labeled either "uses" or
"extends." A "uses" relationship indicates that one use case is needed by
another in order to perform a task. An "extends" relationship indicates
alternative options under a certain use case.
2819044

Practical No:10
AIM: Draw class diagram for Banking System
Theory:
Class Diagram
A class diagram models the static view of a system. It comprises of the classes,
interfaces, and collaborations of a system; and the relationships between them.
Class Diagram of a System
Let us consider a simplified Banking System.
A bank has many branches. In each zone, one branch is designated as the zonal head
office that supervises the other branches in that zone. Each branch can have multiple
accounts and loans. An account may be either a savings account or a current account.
A customer may open both a savings account and a current account. However, a
customer must not have more than one savings account or current account. A
customer may also procure loans from the bank.
Classes in the system:-
Bank, Branch, Account, Savings Account, Current Account, Loan, and Customer.

Relationships
• A Bank “has–a” number of Branches − composition, one–to–many
• A Branch with role Zonal Head Office supervises other Branches − unary
association, one–to-many
• A Branch “has–a” number of accounts − aggregation, one–to–many
• From the class Account, two classes have inherited, namely, Savings Account
and Current Account.
• A Customer can have one Current Account − association, one–to–one
• A Customer can have one Savings Account − association, one–to–one
• A Branch “has–a” number of Loans − aggregation, one–to–many
• A Customer can take many loans − association, one–to–many
2819044

The following figure shows the corresponding class diagram.


2819044

Practical No:11
AIM: Draw interaction diagram for Library Management
System
Management System

Library Management System Sequence Diagram – is a designed Unified


Modeling Language (UML) diagram that shows the sequence of messages or events
between objects in the system interactions. It helps illustrating the sequence of
messages that passed between the actors and objects. Sequence diagrams are also
able to explain in details on how Library Management System control the structures
between objects.

Now to create the Sequence Diagram for Library Management System, you must be
familiarize first with its symbols. This is to know how would you emphasize the
whole content of your Library Management System. With the symbol
familiarization, you’ll then easily understand the ways on the system development

The Library Management System sequence diagram is a sort of


interaction diagram that shows how a group of items interacts and in what order.
Software engineers and business experts use these diagrams to understand the
requirements for a new system or to describe an existing process.
2819044

You might also like