Cse SVVT File B Section
Cse SVVT File B Section
Samalkha
Computer Science & Engineering Department
Affiliated to
1
INDEX
2
SVVT(PE-CS-D403AL)
Practical No-1
Theory:
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.
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.
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.
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
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.
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
SCENARIO:
1.1 The purpose of this document is to build an online system to manage flights and
passengers to ease the flight management.
DB Database
Distributed
DDB
Database
ER Entity Relationship
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.
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
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.
10
SVVT(PE-CS-D403AL) 2821240
The diagram shows the layout of airline database system – entity–relationship model
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:
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
distributed database
client/server system
Operating system: Windows.
database: sql+ database
platform: vb.net/Java/PHP
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.
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.
14
SVVT(PE-CS-D403AL) 2821240
CLIENT/SERVER SYSTEM
Some sites are client sites and others are server sites.
1
5
SVVT(PE-CS-D403AL) 2821240
Description
Software used
5. NONFUNCTIONAL 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.
16
SVVT(PE-CS-D403AL) 2821240
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
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.
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.
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.
Waterfall Model
V-Shaped Model
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
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
2. Structures approach.
Disadvantages
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
Advantages
3. Higher chance of success over the waterfall model due to the development of test plans early
on during the life cycle.
Disadvantages
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
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.
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:
1. Reduced time and costs, but this can be a disadvantage if the developer loses time in
developing the prototypes.
Disadvantages:
Description
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.
1. Estimates (i.e. budget, schedule, etc.) become more realistic as work progressed because
important issues are discovered earlier.
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.
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
Disadvantages:
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:-
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.
26
SVVT(PE-CS-D403AL) 2821240
Practical No: 5
Requirements:
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.
Purpose
Scope
tasks
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
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
Memory Constraints
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
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
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.
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
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.
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
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 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.
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.
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 of Functionalities which has undergone more and recent changes
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.
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
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.
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.
Involving the whole team—testers, developers and business analysts all test the
software.
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.
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
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.
41
SVVT(PE-CS-D403AL) 2821240
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.
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.
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.
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.
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.
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
STLC Phases
There are following six major phases in every Software Testing Life Cycle Model
(STLC Model):
Requirement Analysis
Test Planning
Test Execution
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 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.
46
SVVT(PE-CS-D403AL) 2821240
RTM
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.
Training requirement
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 cases/scripts
Test data
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.
Understand the required architecture, environment set-up and prepare hardware and
software requirement list for the Test Environment.
48
SVVT(PE-CS-D403AL) 2821240
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.
Defect reports
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.
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.
Test metrics
50