0% found this document useful (0 votes)
6 views51 pages

Cse SVVT File B Section

The document is a practical file for a Software Verification and Validation and Testing Lab course at Panipat Institute of Engineering & Technology. It includes various practical exercises aimed at understanding the role of software, identifying software development models, and classifying requirements for software projects. The document emphasizes the importance of software engineering in reducing complexity, minimizing costs, and ensuring reliability in software development.

Uploaded by

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

Cse SVVT File B Section

The document is a practical file for a Software Verification and Validation and Testing Lab course at Panipat Institute of Engineering & Technology. It includes various practical exercises aimed at understanding the role of software, identifying software development models, and classifying requirements for software projects. The document emphasizes the importance of software engineering in reducing complexity, minimizing costs, and ensuring reliability in software development.

Uploaded by

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

Panipat Institute of Engineering & Technology

Samalkha
Computer Science & Engineering Department

Practical File of Software Verification and Validation and Testing Lab


Code: PE-CS-D403AL

Submitted to: Submitted by:


Mr.Puneet Sharma
Assistant Professor
CSE Department B.Tech CSE VII Sem

Affiliated to

Kurukshetra University Kurukshetra, India

1
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 day life.

2. To identify any scenario and identify suitable


software development model for the given
scenario.

3. To classify the requirement into functional and


non-functional requirements and list four
functional and non-functional requirements for
any scenario.

4. Do comparative study of various software


development models.

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

6. To identify the usage of Regression Testing.

7. To identify the usage of Agile Testing.

8. To understand the importance of SDLC and STLC


process.

2
SVVT(PE-CS-D403AL)

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

3
SVVT(PE-CS-D403AL) 2821240

 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.
 MaliciousSoftware 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
4
SVVT(PE-CS-D403AL) 2821240

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

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

5
SVVT(PE-CS-D403AL) 2821240

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
SVVT(PE-CS-D403AL) 2821240

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.
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 categeories and the
designed separately

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

7
SVVT(PE-CS-D403AL) 2821240

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

First increment:

COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION->DEPLOYMENT

Second increment:

COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION->DEPLOYMENT

Third increment:

COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION->DEPLOYMENT

.N th increment:

COMMUNICATION->PLANNING->MODELLING->CONSTRUCTION->DEPLOYMENT

8
SVVT(PE-CS-D403AL) 2821240

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
Distributed
DDB
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 reservation
functions. We will have a database server supporting hundreds of major cities around the

9
SVVT(PE-CS-D403AL) 2821240

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
SVVT(PE-CS-D403AL) 2821240

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.
1
1
SVVT(PE-CS-D403AL) 2821240

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

12
SVVT(PE-CS-D403AL) 2821240

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.

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.

2.3. SYSTEM FEATURES


DESCRIPTION and PRIORITY

1
3
SVVT(PE-CS-D403AL) 2821240

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.

Distributed database located in four different cities

14
SVVT(PE-CS-D403AL) 2821240

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 Back-end software: SQL
4.2 HARDWARE INTERFACES
Windows.
A browser which supports CGI, HTML & Java script.
4.3 SOFTWARE INTERFACES
Following are the software used for the flight management online application.

1
5
SVVT(PE-CS-D403AL) 2821240

Description
Software used

We have chosen Windows operating system for its best


support and user-friendliness.
Operating system

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

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

16
SVVT(PE-CS-D403AL) 2821240

RELATIONSHIPS: Which connect entities and represent meaningful dependencies between


them.

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.

1
7
SVVT(PE-CS-D403AL) 2821240

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

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.

18
SVVT(PE-CS-D403AL) 2821240

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. This means that

1
9
SVVT(PE-CS-D403AL) 2821240

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

20
SVVT(PE-CS-D403AL) 2821240

V-Shaped Model

Description

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

2
1
SVVT(PE-CS-D403AL) 2821240

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

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

22
SVVT(PE-CS-D403AL) 2821240

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

Advantages:

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.

Disadvantages:

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

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.

2
3
SVVT(PE-CS-D403AL) 2821240

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

24
SVVT(PE-CS-D403AL) 2821240

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.

Disadvantages:

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

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.

2
5
SVVT(PE-CS-D403AL) 2821240

Advantages:-

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.

Disadvantages:-

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

26
SVVT(PE-CS-D403AL) 2821240

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.

2
7
SVVT(PE-CS-D403AL) 2821240

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 searchby 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
28
SVVT(PE-CS-D403AL) 2821240

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


INTRODUCTION

Purpose

The purpose of this SRS is to describe the requirementsinvolved 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.The
2
9
SVVT(PE-CS-D403AL) 2821240
overall description provides interface requirements for the Library Management System,

30
SVVT(PE-CS-D403AL) 2821240

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

3
1
SVVT(PE-CS-D403AL) 2821240

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 username 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 wherealready borrowed.
After the validation of the user software allows the user to return thebooks, 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 bethe 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.
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 theuser 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 forthe 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
32
SVVT(PE-CS-D403AL) 2821240

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

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

3
3
SVVT(PE-CS-D403AL) 2821240

LNAME TEXT
GENDER TEXT
DEPT TEXT
EMAIL TEXT
PASSWORD TEXT
NO_OF_BOOKS NUMBER

34
SVVT(PE-CS-D403AL) 2821240

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.

34
SVVT(PE-CS-D403AL) 2821240

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:

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, reusable 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


35
SVVT(PE-CS-D403AL) 2821240

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:

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.

36
SVVT(PE-CS-D403AL) 2821240

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.

37
SVVT(PE-CS-D403AL) 2821240

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:

38
SVVT(PE-CS-D403AL) 2821240

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.

Less documentation—teams use a reusable checklist. Agile development focuses on


current customer needs rather than comprehensive, documented requirements and
instructions.

Test-driven—testers evaluate the product at the time of implementation, rather than


after implementation (as is the case with traditional testing methods).

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?”

39
SVVT(PE-CS-D403AL) 2821240

 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

40
SVVT(PE-CS-D403AL) 2821240

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.

41
SVVT(PE-CS-D403AL) 2821240

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

42
SVVT(PE-CS-D403AL) 2821240

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

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.

43
SVVT(PE-CS-D403AL) 2821240

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

44
SVVT(PE-CS-D403AL) 2821240

Waterfall Model

Iterative Model

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

Requirement Analysis

Test Planning

Test case development

Test Environment setup

Test Execution

Test Cycle closure

45
SVVT(PE-CS-D403AL) 2821240

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

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

46
SVVT(PE-CS-D403AL) 2821240

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

47
SVVT(PE-CS-D403AL) 2821240

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

48
SVVT(PE-CS-D403AL) 2821240

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

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

49
SVVT(PE-CS-D403AL) 2821240

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

50

You might also like