You are on page 1of 64

Government Engineering College, Modasa

Department of Computer Engineering

Software Engineering (3150711)

(2020-2021)

Enrollment Number: - 180160107004

CE / SE /180160107004 Page : 1
Index

No. Description Page Date Sign


1 Make Software Requirement 3-20 30/06/2020
Specification document for
your Software project.
2 To study about UML and 21-25 07/07/2020
UML diagram and Use Case
diagram. Draw use Case
diagram for your software
project .
3 Identify domain Classes from the 26-29 14/07/2020
problem statements and to prepare
Class Diagram for your Software
Project.
4 To prepare Activity Diagram for 30-32 21/07/2020
your Software Project.
5 To prepare Sequence diagrams for 33-35 28/07/2020
your Software Project.
6 To prepare State Chart Diagram 36-38 04/08/2020
for your Software Project.
7 To prepare ER Diagram for your 39-41 11/08/2020
Software Project.
8 To prepare analytic Study about 42-47 18/08/2020
tools for Software Testing.
9 Designing Test cases for your 48-55 01/09/2020
Software Definition.
10 To prepare Test cases using 56-61 08/09/2020
Software testing Tools.
11 To prepare project planning using 62-64 22/09/2020
Gantt Chart.

CE / SE /180160107004 Page : 2
Practical : 1

Aim : Make Software Requirement Specification document for


your software project .

Tool Used : Draw.io

Theory/Description :

The production of the requirements stage of the software development


process is software Requirement Specification (SRS).This report lays a
foundation for software engineering activities and is constructing when
entire requirements are elicited and analysed.

SRS is a formal report, which acts as a representation of software that


enables the customer to review whether it (SRS) is according. Also it
comprises user requirements for a system as well as detailed
specifications of the system requirements.

The SRS is a specification for a specific software product,program ,or set


of application that perform particular function in a specific environment.

First the SRS is could be written by the client of a system.Second, the


SRS could be written by a developer of the system.The two methods
create entirely various situation and establish different purpose for
document together.

The first case ,SRS is used to define the needs and expectation of the
users.

The second case,SRS is written for various purposes and serves


as a contact document between customer and developer.

The best SRS documents define how the software will interact
When embedded in hardware or when connected to other software. Good
SRS documents also account for real-life users.

Problem Definition : Software Requirement Specification document


for Library Management System.

CE / SE /180160107004 Page : 3
Introduction :

CE / SE /180160107004 Page : 4
Introduction :

In this software we want to digitalize the library.We want to make


simple library into digital library.Our main motive this to construct
simple library into digital library so we can avoid the complexity of the
library and it’s problem.With the increase in the number of readers, better
management of libraries system is required. The Library management
system focuses on improving the management of libraries in a city or
town. “What If you can check whether a book is available in the library
through your phone ?” or “what if instead of having different library
cards for different libraries you can just have one ?” or “you can reserve a
book or issue a book from your phone sitting at your home!”. The
Integrated Library Management system provides you the ease of
issuing,renewing, or reserving a book from an library within your
town through your phone. The Integrated Library Management system is
developed on the android platform which basically focuses on issuing,
renewing and reserving a book.

Users of this software :

 Student :
Student easily access this library for study purpose.

 Faculty :
Also faculty access this library for teaching purpose .

 Librarian :
Librarian can easily manage the book and their work can be so
easy.Librarian can easily maintain the record of all the data
of students,book,faculty and other staff.

 Author :
Author can easily publish their book and easily access this digital library.

CE / SE /180160107004 Page : 5
PURPOSE

 The purpose of the project is to maintain the details of books and


library members of different libraries.

 The main purpose of this project is to maintain a easy circulation


system between users and the libraries, to issue books using single
library card, also to search and reserve any book from different
available libraries and to maintain details about the user (fine, address,
phone number).

 Moreover, the user can check all these features from their home.

SCOPE

 Manually updating the library system into an android based


application so that the user can know the details of the books
available and maximum limit on borrowing from their through their
phones.

 The LM System provides information's like details of the books,


insertion of new books, deletion of lost books, limitation on issuing
books, fine on keeping a book more than one month from the issued
date.

 Also user can provide feedback for adding some new books to the
library

CE / SE /180160107004 Page : 6
OVERALL DESCRIPTION

CE / SE /180160107004 Page : 7
2.1 PRODUCT PRESPECTIVE

 The proposed Library Management System will take care of the


current book detail at any point of time.

 System will be provide a search facility.

 The book issue, book return will update the current book details
automatically so that user will get the update current book details.

2.2 PRODUCT FUNCTIONALITY

Functionality of this system is:-

LIBRARIAN :

 A librarian can issue a book to the student


 Can view The different categories of books available in the Library
 Can view the List of books available in each category
 Can take the book returned from students
 Add books and their information of the books to the database
 Edit the information of the existing books.
 Can check the report of the issued Books.
 Can access all the accounts of the students.

USERS:

 Can view the different categories of books available in the Library.


 Can view the List of books available in each category.
 Can own an account in the library.
 Can view the books issued to him.
 Can put a request for a new book .
 Can view the history of books issued to him previously.
 Can search for a particular book.

2.3 USERS CLASSES AND CHARACTERISTICS

There are various kinds of users for the product. Usually web products
are visited by various users for different reasons.

CE / SE /180160107004 Page : 8
The users include:

Students who will be using the above features by accessing the Library
online.

Librarian who will be acting as the controller and he will have all the
privileges of an administrator.

2.4 Operating Environment

 SOFTWARE REQUIREMENT

 Front end:

• Android developer tool

• java

 Back end:

• MySQL

 HARDWARE REQUIREMENT

 Android version 2.3 ginger bread(minimum, android user’s)

 2 GB RAM

 16 GB ROM

2.5 Design and Implementation Constraints

 The information of all users, books and libraries must be


stored in a database that is accessible by the website.

 The Online Library System is running 24 hours a day.

 Users must have their correct username and passwords to enter into
their online accounts and do actions.

CE / SE /180160107004 Page : 9
2.6 USER DOCUMENTATION

The user manual and help will be available online and can be accessed
any time by any user.

The manual will be updated on a regular basis so as to keep the contents


up to date.

2.7 Assumptions and Dependencies

 Users can issue for only two books at a time.

 Financial transaction are managed by librarian.

CE / SE /180160107004 Page :10


Functional Requirement

CE / SE /180160107004 Page :11


3.1 EXTERNAL INTERFACE REQUIREMENTS
3.1.1 User Interface :
Various GUI elements like forms, images and
standard buttons will be included in the User Interface.

3.1.2 Software Interface :


Software will work on Windows OS. The Database
used will be an open-source database like MySql. And the system will
run on Java Virtual Machine.

3.1.3 Communication Interface


This system will require web browser, internet
connection which supports HTTP and server.

3.2 FUNCTIONAL REQUIREMENT

1:Register

 Description : First the user will have to register/sign up. There are
two different type of users.

 Librarian : The manager have to provide details about the name of


library,address, phone number, email id.

 Regular student : The user have to provide details about his/her


name of address,phone number, email id.

R.1.1: Sign up

 Input : Detail about the user as mentioned in the description.

 Output : Confirmation of registration status and a membership


number and password will be generated and mailed to the user.

 Processing : All details will be checked and if any error are found
then an error message is displayed else a membership number and
password will be generated.

CE / SE /180160107004 Page :12


R.1.2 : Login

 Input: Enter the membership number and password provided.

 Output : User will be able to use the features of software.

R.2 : Manage books by user.

R.2.1 : Books issued.

 Description : List of books will be displaced along with data of


return.

R.2.2 : Search

 Input : Enter the name of author's name of the books to be issued.

 Output : List of books related to the keyword.

R.2.3 : Issues book

 State : Searched the book user wants to issues.

 Input : click the book user wants.

 Output : conformation for book issue and apology for failure in issue.

 Processing : if selected book is available then book will be issued


else error will be displayed.

R.2.4 : Renew book

 State : Book is issued and is about to reach the date of return.

 Input : Select the book to be renewed.

 Output : conformation message.


 Processing : If the issued book is already reserved by another user
then error message will be send and if not then conformation message
will be displayed.

CE / SE /180160107004 Page :13


R.2.5 : Return

 Input ; Return the book to the library.

 Output : The issued list will be updated and the returned book will be
listed out.

R.2.6 : Reserve book

 Input : Enter the details of the book.

 Output : Book successfully reserved.



 Description : If a book is issued by someone then the user can
reserve it ,so that later the user can issue it.

R.2.6 : Penalty

 Input : check for the penalties.

 Output : Details about penalties on different books issued by the


user.

 Processing : The penalty will be calculated, if it crossed the date of


return and the user did not renewed if then fine will be applied by Rs
10 per day.

R.3 Manage book by librarian

R.3.1 Update details of books

R.3.1.1 Add books

 Input : Enter the details of the books such as names ,author ,edition,
quantity.

 Output : confirmation of addition.

CE / SE /180160107004 Page :14


R.3.1.2 Remove books

 Input : Enter the name of the book and quantity of books.

 Output : Update the list of the books available.

3.3 Non Functional Requirements


 Usability Requirement
 The system shall allow the users to access the system from the phone
using android application.

 The system uses a android application as an interface. Since all users


are familiar with the general usage of mobile app, no special training
is required.

 The system is user friendly which makes the system easy.

 Performance Requirement :

 Login/Registration will not take more than 10 seconds.

 Any financial transactions will not take more than 15 second.

 Safety and security requirements :

 Database will be secured by authentication process.

 Unauthorized access will be avoided and will be tracked.

 Database backup will be maintained .

 Software quality attributes :

 System will be reliable.


 System can be maintained easily.

CE / SE /180160107004 Page :15


System Design

CE / SE /180160107004 Page :16


 Problem Definition : Library Management System

 DATA FLOW DIAGRAM

 0 Level Diagram :

CE / SE /180160107004 Page :17


 1 Level Diagram :

CE / SE /180160107004 Page :18


 UML Diagram :

CE / SE /180160107004 Page :19


 Sequence Diagram :

CE / SE /180160107004 Page :20


Practical-2

Aim: To study about UML and UML Diagrams and Use Case
diagrams. Draw Use case Diagram for your Software Project.

 Tools Used: Draw.io

1) Theory / Description :

 UML:

 The Unified Modeling Language (UML) is a general-purpose,


developmental, modeling language in the field of software
engineering that is intended to provide a standard way to
visualize the design of a system.

 UML Diagram:

 UML diagram is designed to let developers and customers view


a software system from a different perspective and in varying
degrees of abstraction. UML diagrams commonly created in
visual modeling tools.

 Type of UML Diagram:

1. Use Case Diagram

2. Class Diagram

3. Interaction Diagrams
i. Sequence Diagram
ii. Collaboration Diagram

4. State Diagram

5. Activity Diagram

6. Physical Diagrams
i. Component Diagram
ii. Deployment Diagram

CE / SE /180160107004 Page :21


 Use Case Diagram:

 A use case is a set of scenarios that describing an interaction


between a user and a system. A use case diagram displays the
relationship among actors and use cases.

 The two main components of a use case diagram are use cases
and actors.

 An actor is representing a user or another system that will


interact with the system you are modeling.

 A use case is an external view of the system that represents


some action the user might perform in order to complete a task.

 USE:

 Use cases are used in almost every project. They are helpful
in exposing requirements and planning the project.

 During the initial stage of a project most use cases should be


defined, but as the project continues more might become
visible.

Below table shown some notation for use case diagram:

CE / SE /180160107004 Page :22


Name Notation Description
The scope of a system can be
represented by a system boundary.
System Boundary The use cases of the system are
placed inside the system boundary,
while actors who interact with the
system are put outside the system.
A use case represent a user goal
Use Case that can be achieved by accessing
the system or software application.

Actor are the entities that interact


with a system.

Actor

Actor and use case can be


Association associated it include the actor
participate in that use case.
A generalization relationship is
Generalization used to represent inheritance
relationship between model
elements of same type.
Anchor is used to connect a note
Anchor the use case in case diagram.

An include relationship specifies


how the behavior for the inclusion
Include use case is inserted into the
behavior defined for the base use
case.
An extend relationship specifies
how the behavior of the extension
Extends use case can be inserted into the
behavior defined for the base use
case.
Show condition exists between
Constraint actors an activity.

CE / SE /180160107004 Page :23


Interface is used to connect
Interface package and use case. Head is
linked with package and tail linked
with use case.

CE / SE /180160107004 Page :24


2) Problem Definition :- Use Case Diagram of Library
Management System.

3) Definition Diagram :-

CE / SE /180160107004 Page :25


Practical-3

Aim: Identify domain Classes from the problem statements


and to prepare Class Diagram for your Software
Project.

 Tools Used: Draw.io

1) Theory / Description :

 Class Diagram:

 Class diagrams are widely used to describe the types of objects


in a system and their relationships.

 Class diagrams model class structure and contents using design


elements such as classes, packages and objects.

 Class diagrams describe three different perspectives designing a


system, conceptual, specification, and implementation.

 Classes are composed of three things: a name, attributes, and


operations.

 Class diagrams also display relationships such as containment,


inheritance, associations and others.

 The association relationship is the most common relationship in


a class diagram. The association shows the relationship between
instances of classes.

CE / SE /180160107004 Page :26


 Use:

 Class diagrams are used in nearly all Object Oriented software


designs. Use them to describe the Classes of the system and
their relationships to each other.

Visibility:

To specify the visibility of class member (i.e. any attribute or method),


these notations must be placed before the member’s name:
1. + Public
2. – Private
3. # Protected
4. ~ Package

Name Notation Description


Class A class notation
Notation consists of three
parts:
1.Class Name
The name of the
class appears in the
first partition.
2.Class Attributes
Attributes map onto
member variables
(data members) in
code.
3.Class
Operations(Methods)
Operations map onto
class methods in
code.
Inheritance Represents an “is-a”
relationship.

Simple A structural link


Association between two peer
classes.
A special type of

CE / SE /180160107004 Page :27


Aggregation association. It
represents a “part of”
relationship.
A special type of
Composition aggregation where
parts are destroyed
when the whole is
destroyed

CE / SE /180160107004 Page :28


4) Problem Definition :- Class Diagram of Library Management
System.

5) Definition Diagram :- Class diagram of Library Management


System.

CE / SE /180160107004 Page :29


Practical – 4

Aim: To prepare Activity Diagram for Your Software Project.

Tool Used: Draw.io

Theory / Description:

Activity diagram is another important diagram in UML to describe the


dynamic aspects of the system.
Activity diagram is basically a flowchart to represent the flow from one
activity to another activity. The activity can be described as an operation
of the system.
The control flow is drawn from one operation to another. This flow can
be sequential, branched, or concurrent. Activity diagrams deal with all
type of flow control by using different elements such as fork, join, etc.
The purpose of an activity diagram can be described as:
 Draw the activity flow of a system.
 Describe the sequence from one activity to another.
 Describe the parallel, branched and concurrent flow of the system.
Activity Diagram Notations:-

Name Notation Description


The starting state before
Initial state an activity takes place is
depicted using the initial
state.
An activity represents
execution of an action on
objects or by objects.
Action Basically any action or
event that take place is
represented using an
activity.
Action flow or control
flow are also referred to
as paths and edges. They
Action flow or are used to show the
control flow transaction from one
activity state to another.

CE / SE /180160107004 Page :30


When we need to make a
Decision node and decision before deciding
Branching the flow of control we
use decision node.
A guard refers to a
statement written next to
Guards a decision node on an
arrow sometimes within
square brackets.
Fork nodes are used to
Fork support concurrent
activities.
Join nodes are used to
support concurrent
activities converging into
Join one. For join we have
two or more incoming
edges and one outgoing
edge.
We can merge two or
more activities into one
if the control proceeds
onto the next activity
Merge irrespective of the path
chosen.

We use swimlanes for


grouping related
activities in one column.
Swimlanes Swimlanes can be
vertical and horizontal. It
is not mandatory to use
swimlanes.
The state which the
system reaches when a
particular process or
Final state activity ends is known as
a final state. A system or
a process can have
multiple final states.

Problem Definition: Activity diagram for Library Management System.

CE / SE /180160107004 Page :31


Diagram for problem definition:
Activity diagram for Library Management System.

CE / SE /180160107004 Page :32


Practical – 5

Aim: To prepare Sequence diagrams for your Software Project.

Tool Used: Draw.io

Theory / Description:
A sequence diagram simply depicts interaction between objects in a
sequential order. Sequence diagrams describe how and in what order the
objects in a system function.
These diagrams are widely used by businessmen and software developers
to document and understand requirements for new and existing systems.
Sequence diagrams are sometimes known as event diagrams or event
scenarios.
Basic Sequence Diagram Notations:

Name Notation Description


An actor in a UML diagram
represents a type of role
Actor where it interacts with the
system and its objects.
A lifeline represents an
Lifeline individual participate in the
interaction.

Activation boxes represents


the time an object needs to
complete a task. When an
object is busy executing a
Activation process or waiting for a
reply message use a thin
gray rectangle placed
vertically on its lifeline.
A note gives the ability to
Note attach various remarks to
elements.

Common message symbols

CE / SE /180160107004 Page :33


Name Notation Description
A synchronous message
requires a response before
the interaction can continue.
Synchronous message It’s usually drawn using a
line with a solid arrowhead
pointing from one object to
another
Represented by a solid line
with a lined arrowhead.
Asynchronous message Asynchronous messages
don’t require a response
before the sender continues.
A return message is drawn
Return message with a dotted line and an
open arrowhead pointing
back to the original lifeline.
A message an object sends
to itself, usually shown as a
Self message U shaped arrow pointing
back to itself.
This is a message that
creates a new object.
Create message Represented by a dashed line
with a lined arrowhead.
This is a message that
Delete message destroys an object. It can be
shown by an arrow with an x
at the end.
A message sent from an
Found message unknown recipient shown by
an arrow from an endpoint
to a lifeline.
A message send to an unknown
recipient. It is shown by an arrow
going from a lifeline to an
Lost message
endpoint a filled circle or an x.

Problem Definition: Sequence Diagram for Library Management


System.
Diagram for problem definition:

CE / SE /180160107004 Page :34


CE / SE /180160107004 Page :35
Practical – 6

Aim: To prepare State Chart Diagram for your Software Project.

Tool Used: Draw.io

Theory / Description:
A state diagram is used to represent the condition of the system or part of
the system at infinite instances of time. It is also referred to as State
machines and State-chart diagrams.
A state diagram is used to model the dynamic behavior of a class in
response to time and changing external stimuli. These diagram are used to
model the event based system. A state of an object is controlled with the
help of an event.
Uses of state chart diagram:
 We use it to state the events responsible for change in state.
 We use it to model the dynamic behavior of the system.
 To understand the reaction of objects / classes to internal or
external stimuli.
Basic components of a state chart diagram:
Name Notation Description
We use a black filled
Initial state circle represent the initial
state of a System or a
class.
We use a solid arrow to
represent the transition or
change of control from
one state to another. The
Transition arrow is labelled with the
event which causes the
change in state.
We use a rounded
rectangle to represent a
state. A state represents
State the conditions or
circumstances of an
object of a class at an
instant of time.

CE / SE /180160107004 Page :36


We use a rounded solid
rectangular bar to
represent a fork notation
which incoming arrow
Fork from the parent state and
outgoing arrows towards
the newly created states.
Use the fork notation to
represent a state splitting
into two or more
concurrent states.
We use a rounded solid
rectangular bar to
represent a join notation
which incoming arrows
from the joining state
Join and outgoing arrow
towards the common
goal states. Use the join
notation when two or
more states concurrently
converge into one on the
occurrence of an event
or events.
We use a solid arrow
pointing back to the state
Self transition itself to represent a self
transition.

We use a rounded
rectangle to represent a
Composite state composite state also. We
represent a state with
internal activities using a
composite state.
We use a filled circle
within a circle notation
Final state to represent the final
state in a state machine
diagram.

CE / SE /180160107004 Page :37


Problem definition: State Chart Diagram for Library Management
System.
Diagram for problem definition:

CE / SE /180160107004 Page :38


Practical – 7

Aim: To prepare ER Diagram for your Software Project.

Tool Used: Draw.io

Theory / Description:

An Entity–relationship model describes the structure of a database with


the help of a diagram, which is known as Entity Relationship Diagram.
The main components of E-R model are: entity set and relationship set.
An ER Diagram shows the relationship among entity sets.
Symbols used in ER Diagram as follows:

Name Notation Description


Attributes are
Attribute the properties which
define the entity type.
The attribute
which uniquely
Key Attribute identifies each entity in
the entity set is called
key attribute.
An attribute
Multivalued Attribute consisting more than
one value for a given
entity.
An attribute which can
be derived from other
Derived Attribute attributes of the entity
type is known as
derived attribute. In ER
diagram, derived
attribute is represented
by dashed oval.
An attribute composed
of many other
Composite Attribute attribute is called as
composite attribute.

CE / SE /180160107004 Page :39


When a single
instance of an entity is
One to one associated with a
relationship single instance of
another entity then it
is called one to one
relationship.
When a single
instance of an entity is
One to many associated with more
relationship than one instances of
another entity then it
is called one to many
relationship.
When more than one
instances of an entity
is associated with a
Many to one single instance of
relationship another entity then it
is called many to one
relationship.
When more than one
instances of an entity
is associated with
Many to many more than one
relationship instances of another
entity then it is called
many to many
relationship.
An entity that cannot
be uniquely identified
by its own attributes
Weak Entity and relies on the
relationship with other
entity is called weak
entity. The weak
entity is represented
by a double rectangle.

CE / SE /180160107004 Page :40


Problem Definition: ER Diagram for Library Management System.

Diagram for problem definition:

CE / SE /180160107004 Page :41


Practical – 8

Aim: To prepare analytic Study about tools for Software Testing.

Tool Used: Microsoft word 2007

Theory / Description:

ABSTRACT:
Software testing is one of the most important phases in software development
lifecycle (SDLC). Software testing is the process of evaluating the software product
with the intent to find whether it satisfies the user requirements or not. It involves
identifying bug or error or defect in a software product without correcting it. There
are various automated tools which help as to test the software products with accuracy.
This paper analyses some of the test management, functional and load testing tools.

INTRODUCTION:
Software testing is the process of detecting defects/bugs in the product during
execution. It acts as the part of quality assurance. It assists the software developers in
delivering a defect free product. It also helps in validating a product against client’s
specifications/ requirements.
Software development lifecycle (SDLC) explains the process involved in developing
software by the software industry. Mainly there are five phases. They are Analysis,
Design, Implementation, Testing and Maintenance. Software development, begins
with customer specification of requirements and then it will progress through
Analysis, Design, Implementation, Testing and ongoing support of the completed
software.

TESTING AND ITS ACTIVITIES:

The process of testing involves the following steps. Initially the Test plan has to be
prepared which is a document describing the scope, methodology, testing
environment, schedule, major risks etc.

There are two types of testing, they are static and dynamic. Static testing means
identify the error before executing the program. Techniques used for static testing are
code inspections and review. It identifies logical, standard and control errors.
Dynamic testing means identify the error after executing the program.

CE / SE /180160107004 Page :42


METHODS OF SOFTWARE TESTING:

Testing can be done in two ways. They are Manual Testing and Automation Testing.

Manual Testing:
In manual testing, testers will initially prepare the test plan and test cases based on the
requirement specifications. Test cases will contain the information about the input to
be given to the system and the corresponding output. Quality of testing depends on
how far the test cases have covered the requirements. Test cases should also cover the
incorrect scenario to detect how the system is responding for the particular scenario.
One main drawback of manual testing is which required more time and resources.

Automation Testing:
In automation testing tester writes scripts and feed to another software to test the
products. It improves the test coverage, accuracy and save time and memory.
Automation testing tools falls under three different categories. They are Test
Management tools, Functional Testing Tools and Load Testing Tools.

TOOLS USED IN SOFTWARE TESTING:

This section discusses about the various software testing tools which is focused on
Test Management, Functionality and load.

Test Management Tools:


It is used to maintain and plan manual testing, run or gather execution data from
automated tests, manage multiple environments and to enter information about found
defects. Test management tools offer the prospect of streamlining the testing process
and allow quick access to data analysis, collaborative tools and easy communication
across multiple project teams.

Open Source Tools:

Tools Name Tools Description


TET (Test Environment Toolkit) The goal behind creating the Test Environment
Toolkit (TET) was to produce a test drive for
check functionality and interfaces.
TETware TETware is the supported version of the Test
Environment Toolkit, offering additional
platform support and capabilities. It provides
an easy-to-use multi-platform uniform test
framework into which local, remote,
distributed and realtime test suites can be
incorporated.
Test Manager It is used to facilitate regular Software
Development activities, automate & manage
the testing activities.
RTH- Requirements and Testing It provides the bug tracking facilities

CE / SE /180160107004 Page :43


Hub
HP Quality Center/ALM It is a set of software tools for application
development and testing. It includes tools for
requirements management, test planning and
functional testing, performance testing,
developer management, and defect
management.
QAComplete Manage, organize, and report on all your
testing efforts in a central place using
QAComplete. Centrally store your manual and
automated testing assets to promote
reusability. Allow your testing teams to
communicate more effectively, while staying
organized and keeping a track of changes with
proper version control.
T-Plan Professional Test Process mgmt tool, Test ANY system. As
automation runs at the GUI level, the tool can
automate most applications.
Automated Test Designer (ATD) ATD is a unique tool for creating Test Cases
based on Functional Requirements. It uses an
advanced and rigorous Neural Network
Optimization algorithm and reduction
methods, in order to generate the minimum
number of test cases to certify 100% of the
Requirements rules
Testuff Testuff test management is an on-demand
service for managing and executing manual
software tests and for reporting defects. This
test management suite includes: Requirements
management, test cases, test planning and
execution, defect reporting, video recorder and
player, time management, integration to all
bug trackers and automation tools and much
more.
SMARTS Assurance Suite, delivers critical data center
management insights that empower IT
operations teams to deliver service assurance
for applications and services. Smarts monitors
the availability and performance of physical
and virtual networks, storage environments,
and servers.
QAS.TCS (Test Case Studio) QAS.TCS provides a central platform for the
entire test team, with functionality extending
to test case planning, definition,
parameterizing, and even automated test
execution at your option.
SpiraTest SpiraTest provides a complete Quality
Assurance solution that manages requirements,
tests, bugs and issues in one environment, with
complete traceability from inception to

CE / SE /180160107004 Page :44


International Journal of Pure and Applied
Mathematics Special Issue 1786 completion.

Functional Testing Tools:

Functional testing is a type of testing which verifies that each function of the software
application operates in conformance with the requirement specification. This testing
involves checking of User Interface, APIs, Database, security, client/ server
applications and functionality of the Application under Test. The testing can be done
either manually or using automation.
Here we have listed some of the testing tools under different categories. It mainly
concentrates on:
1) Mainline functions: Testing the main functions of an application
2) Basic Usability: It involves basic usability testing of the system. It checks
whether an user can freely navigate through the screens without any
difficulties.
3) Accessibility: Checks the accessibility of the system for the user.
4) Error Conditions: Usage of testing techniques to check for error conditions. It
checks whether suitable error messages are displayed.

Tools Name Tools Description


Selenium Selenium is a portable software testing
framework for web applications.
Selenium provides a record/playback tool
for authoring tests without learning a test
scripting language (Selenium IDE).
SoapUI SoapUI is an open-source web service
testing application for service-oriented
architectures (SOA) and representational
state transfer (REST). Its functionality
covers web service inspection, invoking,
development, simulation and mocking,
functional testing, load and compliance
testing.
Watir It is an open-source (BSD) family of
Ruby libraries for automating web
browsers. It is simple and flexible. It
supports multiple browsers on different
platforms.
HTTP::Recorder It is a browser-independent recorder that
records interactions with web sites and
produces scripts for automated playback.
WatiN easy way to automate your tests with
Internet Explorer and FireFox using .Net.
CanooWebTest Ant and Http Unit to implement
functional testing of web applications.to
support writing tests before the
implementation. The tool used for

CE / SE /180160107004 Page :45


acceptance testing. It is easy to extend.
Webcorder This is a free GUI software testing tool I
developed in VB to allow for simple end
user web testing.
Solex Solex is a Web application testing tool
built as a plug-in for the Eclipse IDE. It
provides functions to record a client
session, adjust it according to various
parameters and replay it later typically in
order to ensure non regression of the
application's behavior.
Imprimatur Web application testing tool. The tests are
described in a simple XML file. Along
with the standard GET and POST actions,
Imprimatur handles HTTP sessions and
file uploads. The responses can be
validated using regular expressions and
response code checks. Open source.
SAMIE-Simple Automated Module Perl module (SAM.pm) that allows a user
For Internet Explorer to automate Internet Explorer. This free
tool is designed for quality assurance
engineers that need to run tests for their
browser applications.
Swete Swete provides cross platform console
based tools for regression testing of web
applications. The tools may be used when
refactoring and during development to
ensure that new functionality doesn't
break previously completed features.
ITP Web application testing harness.
Lightweight, yet powerful! Test scripts
written in XML. No programming
required! No changes required to your
application. Supports sessions/cookies,
POST form data. Command line based
for integration into other tools.

CE / SE /180160107004 Page :46


Load Testing Tools :

Load testing is the process of putting demand on a software system or computing


device and measuring its response. Load testing is performed to determine a system's
behaviour under both normal and anticipated peak load conditions.

Tools Name Tools Description


Jmeter Java desktop application designed to load
test functional behavior and measure
performance.
FunkLoad FunkLoad is a functional and load web
tester, written in Python, Regression,
performance and stress.
WebLOAD Professional a tool for load testing Internet and Intranet
applications. It aims to be easy to use and
providing near real-time performance
measurements of the application under
test. This is particularly useful when you
are doing optimization as you can see the
impact of your changes almost
immediately.
HP LoadRunner It is used to test applications, measuring
system behaviour and performance under
load. HPE LoadRunner can simulate
thousands of users concurrently using
application software, recording and later
analyzing the performance of key
components of the application.
LoadStorm The easy and cost effective load testing
tool for web and mobile
applications.StormRunner Load is
Software as a Service (SaaS) solution for
Web and mobile application performance
and cloud testing, for both internal and
external applications.
NeoLoad Simulates hundreds of virtual users on
your web site, getting performance
statistics and revealing errors under stress.

CE / SE /180160107004 Page :47


Practical-9

Aim: Designing Test cases for your Software Definition.

Tool Used: Microsoft Excel 2007.

Theory / Description:

What is a Test Case in Software Testing?


A test case is a document which has a set of conditions or actions that are performed
on the software application in order to verify the expected functionality of the feature.
After test scripts, test cases are the second most detailed way of documenting testing
work. They describe a specific idea that is to be tested, without detailing the exact
steps to be taken or data to be used. For example, in a test case, you document
something like ‘Test if coupons can be applied on actual price‘. This doesn’t mention
how to apply the coupons or whether there are multiple ways to apply. It also doesn’t
mention if the tester uses a link to apply a discount, or enter a code, or have a
customer service apply it. They give flexibility to the tester to decide how they want
to execute the test.

Benefits of Writing Test Cases


The key purpose of a test case is to ensure if different features within an application
are working as expected. It helps tester, validate if the software is free of defects and
if it is working as per the expectations of the end users. Other benefits of test cases
include:
 Test cases ensure good test coverage
 Help improve the quality of software
 Decreases the maintenance and software support costs
 Help verify that the software meets the end user requirements
 Allows the tester to think thoroughly and approach the tests from as many
angles as possible
 Test cases are reusable for the future – anyone can reference them and execute
the test.

CE / SE /180160107004 Page :48


Test Case Design Techniques
An efficient test case design technique is necessary to improve the quality of the
software testing process. It helps to improve the overall quality and effectiveness of
the released software. The test case design techniques are broadly classified into three
major categories:

Specification-Based (Black Box Techniques): This type of techniques can be used


to design test cases in a systematic format. These use external features of the software
such as technical specifications, design, client’s requirements, and more, to derive test
cases. With this type of test case design techniques, testers can develop test cases that
save testing time and allow full test coverage.

Structure-Based (White Box Techniques): These techniques design test cases based
on the internal structure of the software program and code. Developers go into minute
details of the developed code and test them one by one.

Experienced-Based Techniques: These techniques are highly dependent on tester’s


experience to understand the most important areas of the software. They are based on
the skills, knowledge, and expertise of the people involved.

Test case guidelines


Following guidelines that you need to follow while writing test cases are:
 Prioritize which test cases to write based on the project timelines and the risk
factors of your application.
 Remember the 80/20 rule. To achieve the best coverage, 20% of your tests
should cover 80% of your application.
 Don’t try to test cases in one attempt instead improvise them as you progress.
 List down your test cases and classify them based on business scenarios and
functionality.
 Make sure test cases are modular and test case steps are as granular as
possible.
 Write test cases in such a way that others can understand them easily &
modify if required.
 Always keep end-users’ requirements in the back of your mind because
ultimately the software designed is for the customer.
 Actively use a test management tool to manage stable release cycle.
 Monitor your test cases regularly. Write unique test cases and remove
irrelevant & duplicate test cases.

CE / SE /180160107004 Page :49


Test Case Format
The primary ingredients of a test case are an ID, description, bunch of inputs, few
actionable steps, as well as expected and actual results. Let’s learn what each of them
is:

Test Case Name: A test case should have a name or title that is self-explanatory.

Test Case Description: The description should tell the tester what they’re going to
test in brief.

Pre-Conditions: Any assumptions that apply to the test and any preconditions that
must be met prior to the test being executed should be listed here.

Test Case Steps: The test steps should include the necessary data and information on
how to execute the test. The steps should be clear and brief, without leaving out
essential facts.

Test Data: It’s important to select a data set that gives sufficient coverage. Select a
data set that specifies not only the positive scenarios but negative ones as well.

Expected Result: The expected results tell the tester what they should experience as a
result of the test steps.

Actual Result: They specifies how the application actually behaved while test cases
were being executed.

Comments: Any other useful information such as screenshots that tester want’s to
specify can be included here.

This is the typical format that testers follow when they write a test case. Along with
these parameters, testers can include additional parameters like test case priority, type
of test case, bug id, etc.

CE / SE /180160107004 Page :50


Test Case Design Checklist
Application Testing Checklist
Tested By Tester Date 08/10/20
Application Name Library Management System.
Pass/Fail
Procedure Expected Result (P/F) Actual Results/Comments
Application Functionality
Performs primary Yes P Opens and allows students to
functionality and attend test without program
maintains stability errors or hangs.
Windows Fundamentals
Installs under a user No P Does install under student user
account account
Installs under a power Yes P Installs correctly
user account
Installs under an Yes P Installs correctly
administrator account
Completes a play store Yes P Install correctly
installation
Completes a typical Yes P Typical installation completes
installation with no errors
Completes a full Yes P Full installation completes with
installation no errors
Completes a network NA NA NA
installation
Performs Android Yes P Compatible with all latest
operating system android version.
version checking
correctly
Lists on Start menu Yes P Work properly with no error.
and has Home
shortcuts for users
Basic Application Testing
Performs as expected Yes P No errors or hangs when
when other multiple applications are
applications are open running
Starts from the App Yes P Opens correctly from the App
Drawer Drawer and functions with no
errors

CE / SE /180160107004 Page :51


Application Testing Checklist
Tested By Tester Date 08/10/20
Application Name Library Management System.
Pass/Fail
Procedure Expected Result (P/F) Actual Results/Comments
Starts from a shortcut Yes P Opens properly

Starts from the autorun NA NA NA


file on the application
CD
Attempt Test Yes P Attempt test correctly

Show My Rank NA F NA

CE / SE /180160107004 Page :52


Problem Definition: Design Test cases of Login functionality of
Library Management System .

Test Case 1 :

Test Case ID LMS_001 Test Case Test the Login Functionality in Library Application
Description
Created By Kartik Reviewed By Test Lead Version 1.1

QA Tester’s Log Review comments from Babariya incorporate


in version 1.1

Tester's Name Babariya Date Tested 08-AUG-2020 Test Case Pass


(Pass/Fail/N
ot Executed)

S# Prerequisites: S# Test Data


1 Access from mobile application 1 Userid = library@gmail.com
2 Access from browser 2 Pass = library@123
3 3
4 4

Test Verify on entering valid user-ID and password, the customer can login.
Scenario

Step # Step Details Expected Actual Results Pass / Fail / Not executed /
Results Suspended

1 Open Library Application . Able to see As Expected Pass


Login dialog box
2 Enter User-ID & Password Credential can As Expected Pass
be entered
3 Click Submit Customer is As Expected Pass
logged in

CE / SE /180160107004 Page :53


Test Case 2 :

Test Case ID LMS_001 Test Case Test the Login Functionality in Library Application
Description
Created By Kartik Reviewed By Test Lead Version 1.1

QA Tester’s Log Review comments from Babariya incorporate


in version 1.1

Tester's Name Babariya Date Tested 08-AUG-2020 Test Case Fail


(Pass/Fail/N
ot Executed)

S# Prerequisites: S# Test Data


1 Access from mobile application 1 User-ID = library@gmail.com
2 Access from browser 2 Pass = library@123
3 3
4 4

Test Verify on entering invalid user-ID and password, the customer can login
Scenario

Step # Step Details Expected Actual Results Pass / Fail / Not executed /
Results Suspended

1 Open Library Application . Able to see As Expected Pass


Login dialog box
2 Enter User-ID & Password Credential can As Expected Pass
be entered
3 Click Submit Customer is User Login Fail
logged in Unsuccessful

CE / SE /180160107004 Page :54


Test Case 3 :

Test Case ID Bank_01 Test Case Test The Money Transfer Functionality in App
Description
Created By Kartik Reviewed By Test Lead Version 1.2

QA Tester’s Log Review comments from Babariya incorporate


in version 1.2

Tester's Name Babariya Date Tested 08-AUG-2020 Test Case Pass


(Pass/Fail/No
t Executed)

S# Prerequisites: S# Test Data


1 App Install and set Bank Details. 1 Check Money transfer
Functionality
2 Set Balance in Account. 2

Test Scenario Check the response the money transfer functionality.

Step # Step Details Expected Actual Results Pass / Fail / Not executed /
Results Suspended

1 Navigate to APP App should As Expected Pass


open with full
data
2 Use money transfer successful get a As Expected Pass
option
3 Enter the amount Enter successful As Expected Pass
4 Enter the PIN Enter As Expected Pass
Successful
5 Response Output Money will be As Expected Pass
sent.

CE / SE /180160107004 Page :55


Practical – 10

Aim: To prepare Test cases using Software testing Tools.

Tool Used: Microsoft word 2007, Selenium Tool

Theory / Description:

Introduction
Selenium is an open-source tool that is used for automating the tests carried out on
web browsers (Web applications are tested using any web browser).
Wait, before you get carried away, let me re-iterate that, only testing of web
applications is possible with Selenium. We can neither test any desktop (software)
application nor test any mobile application using Selenium.
It’ a bummer right? I can feel your pain. But don’t worry, there are many tools for
testing software and mobile applications like: IBM’s RFT, HP’s QPT, Appium and
many more. But, the focus of this blog is, testing dynamic web applications and why
Selenium is the best for that purpose.
Challenges with manual testing
Manual testing means the (web) application is tested manually by QA testers. Tests
need to be performed manually in every environment, using a different data set and
the success/ failure rate of every transaction should be recorded.

Look at the above image of a poor chap, who manually verifies the transactions
recorded. The challenges he is facing cause fatigue, boredom, delay in work, mistakes
and errors because of manual effort. This lead to the invention of Selenium
(automation testing tool).

CE / SE /180160107004 Page :56


How automation testing beats manual testing?
Automation testing beats manual testing every time. Why? Because it is faster, needs
less investment in human resource, it is not prone to errors, frequent execution of tests
is possible, supports lights out execution, supports regression testing and also
functional testing.
Let’s take a similar example to the one mentioned earlier. Suppose there is a login
page and we need to verify if all the login attempts are successful, then it will be
really easy to write a piece of code which will validate if all the transaction/ login
attempts are a success or not (automated test case execution).
Moreover, these tests can be configured in such a way that they are tested in different
environments and web browsers. What else can be done? You can automate the
generation of result file, by scheduling it for a particular time during the day. Then
you can also automate the generation of reports based on those results and what not.
The key point is that automation testing makes a tester’s job a whole lot simpler.
Check out the image below which shows a more relaxed environment in which the
same tester is working.

Selenium as an automation testing tool


Selenium is an automation testing tool, Software testing is of two types: Manual
Testing & Automation Testing. Selenium was founded as an automation testing tool
to overcome the drawbacks/ limitations of manual testing.

CE / SE /180160107004 Page :57


Advantages & Disadvantages of Selenium
Advantages:
Since Selenium is open-source, there is no licensing cost involved, which is a major
advantage over other testing tools. Other reasons behind Selenium’s ever growing
popularity are:
 Test scripts can be written in any of these programming languages: Java,
Python, C#, PHP, Ruby, Perl & .Net
 Tests can be carried out in any of these OS: Windows, Mac or Linux.
 Tests can be carried out using any browser: Mozilla Firefox, Internet Explorer,
Google Chrome, Safari or Opera.
 It can be integrated with tools such as TestNG & JUnit for managing test cases
and generating reports.
 It can be integrated with Maven, Jenkins & Docker to achieve Continuous
Testing.

Disadvantages:
 We can use Selenium only to test web applications. We cannot test desktop
applications or any other software.
 There is no guaranteed support available for Selenium. We need to leverage
on the available customer communities.
 It is not possible to perform testing on images. We need to integrate Selenium
with Sikuli for image based testing.
 There is no native reporting facility. But we can overcome that issue by
integrating it with frameworks like TestNG or JUnit.

Selenium suite of tools


 Selenium RC (Now depreciated)
 Selenium IDE
 Selenium Grid
 Selenium WebDriver

CE / SE /180160107004 Page :58


Screen shots of Testing done Using Selenium IDE
Step-1: create new project and add project name.

Step-2: Next add your URL which you want to test and Press Start Recording.

Step-3: Next start test of your url. In background selenium start recording your test
steps like following image.

CE / SE /180160107004 Page :59


Step-4: next click run button for run your test.it run your test automatically and last
when process is completed it give appropriate status like this.

CE / SE /180160107004 Page :60


Basics of Selenium IDE

In 2006, Shinya Kastani from Japan had donated his Selenium IDE prototype to
Apache’s Selenium project. It was a Firefox plugin for faster creation of test cases.
IDE implemented a record and playback model wherein, test cases are created by
recording the interactions which the user had with the web browser. These tests can
then be played back any number of times.
The advantage with Selenium IDE is that, tests recorded via the plugin can be
exported in different programming languages like: Java, Ruby, Python etc. Check out
the below screenshot of Firefox’s IDE plugin.

But the associated shortcomings of IDE are:

 Plug-in only available for Mozilla Firefox; not for other browsers
 It is not possible to test dynamic web applications; only simple tests can be
recorded
 Test cases cannot be scripted using programming logic
 Does not support Data-Driven testing

CE / SE /180160107004 Page :61


Practical – 11

Aim: To prepare project planning using Gantt Chart.

Tool Used : Microsoft Excel 2007.

Theory / Description:

Gantt chart:

A Gantt chart is a project management tool assisting in the planning and scheduling of
projects of all sizes, although they are particularly useful for simplifying complex
projects. Project management timelines and tasks are converted into a horizontal bar
chart, showing start and end dates, as well as dependencies, scheduling and deadlines,
including how much of the task is completed per stage and who is the task owner.
This is useful to keep tasks on track when there is a large team and multiple
stakeholders when the scope changes.
As it's in a bar chart format it is possible to check on progress with a quick glance.
You can easily see:

 a visual display of the whole project,


 timelines and deadlines of all tasks,
 relationships and dependencies between the various activities,
 project phases

Project management solutions that integrate Gantt charts give managers visibility into
team workloads, as well as current and future availability, which allows for more
accurate scheduling. Gantt charts have been around for nearly a century, having been
invented by Henry Gantt, an American mechanical engineer, around 1910.

How to use a Gantt chart?


The underlying concept of a Gantt chart is to map out which tasks can be done in
parallel and which need to be done sequentially. If we combine this with the project
resources we can explore the trade-off between the scope (doing more or less work),
cost (using more or less resources) and the time scales for the project. By adding more
resources or reducing the scope the project manager can see the effect on the end date.
To create a chart you need to know all of the individual tasks required to complete the
project, an estimate of how long each task will take and which tasks are dependent on
others. The very process of pulling this information together helps a project manager
focus on the essential parts of the project and begin to establish a realistic timeframe
for completion.

CE / SE /180160107004 Page :62


Why use a Gantt chart?

 Establish the initial project schedule - who is going to do what, when and how
long will it take.
 Allocate resources - ensure everyone knows who is responsible for what.
 Make project adjustments - the initial plan will need many adjustments.
 Monitor and report progress - helps you stay on schedule.
 Control and communicate the schedule - clear visuals for stakeholders and
participants.
 Display milestones - shows key events.
 Identify and report problems - As everything is depicted visually you can
immediately see what should have been achieved by a certain date and, if the
project is behind schedule, you can take action to bring it back on course.

What are the key parts of a Gantt chart?

 Task list: Runs vertically down the left of the gantt chart to describe project
work and may be organized into groups and subgroups

 Timeline: Runs horizontally across the top of the gantt chart and shows
months, weeks, days, and years

 Dateline: A vertical line that highlights the current date on the gantt chart

 Bars: Horizontal markers on the right side of the gantt chart that represent
tasks and show progress, duration, and start and end dates

 Milestones: Yellow diamonds that call out major events, dates, decisions, and
deliverables

 Dependencies: Light gray lines that connect tasks that need to happen in a
certain order

 Progress: Shows how far along work is and may be indicated by % Complete
and/or bar shading

 Resource assigned: Indicates the person or team responsible for completing a


task

CE / SE /180160107004 Page :63


Problem Definition: Gantt Chart for Library Management System.

Definition Diagram:

Task Day Time Duration


Requirement Gethering 10 01-Jun
Fesibility Study 15 15-Jun
System Analysis 5 20-Jun
Documentation 10 30-Jun
Coding 5 05-Jul
Design 20 25-Jul
Testing and Deployement 12 07-Aug
Report 10 08-Aug

CE / SE /180160107004 Page :64

You might also like