0% found this document useful (0 votes)
16 views20 pages

Software Testing Unit 1&2

The document provides an overview of software engineering, defining software and its characteristics such as functionality, reliability, efficiency, usability, maintainability, and portability. It discusses the classification of software into system and application software, along with their features and types. Additionally, it addresses software evolution, the software crisis, myths surrounding software development, and introduces the software engineering process, including the Waterfall model as a structured approach to software development.

Uploaded by

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

Software Testing Unit 1&2

The document provides an overview of software engineering, defining software and its characteristics such as functionality, reliability, efficiency, usability, maintainability, and portability. It discusses the classification of software into system and application software, along with their features and types. Additionally, it addresses software evolution, the software crisis, myths surrounding software development, and introduces the software engineering process, including the Waterfall model as a structured approach to software development.

Uploaded by

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

BSc CS (SY) Software Engineering

UNIT I: Introduction to Software Engineering

What is software:

Software is a set of instructions, data or programs used to operate


computers and execute specific tasks.

Evolving role of Software:

 It is a product
 vehicle for delivering a product.

As a product, it delivers the computing potential embodied by computer


hardware. Whether it resides within a mobile phone or operates inside a
mainframe computer, software is an information transformer.

As the vehicle used to deliver the product, software acts as the basis for
the control of the computer (operating systems), the communication of
information (networks), and the creation and control other programs
(software tools and environments).

Software Characteristics:

Software is defined as a collection of


computer programs, procedures, rules, and data. Software
Characteristics are classified into six major components.

Functionality

It refers to the degree of performance of the software against its


intended purpose. Functionality refers to the set of features and
capabilities that a software program or system provides to its
users. It is one of the most important characteristics of software,
as it determines the usefulness of the software for the intended
purpose. Examples of functionality in software include:

 Data storage and retrieval


 Data processing and manipulation
 User interface and navigation
 Communication and networking
 Security and access control
 Reporting and visualizatio

1| Page
BSc CS (SY) Software Engineering

Reliability

Reliability is a characteristic of software that refers to its ability to


perform its intended functions correctly and consistently over time.
Reliability is an important aspect of software quality, as it helps
ensure that the software will work correctly and not fail
unexpectedly.

Examples of factors that can affect the reliability of software


include:
1. Bugs and errors in the code
2. Lack of testing and validation
3. Poorly designed algorithms and data structures

Efficiency

The software should make effective use of storage space and


executive command as per desired timing requirements.
Efficiency is a characteristic of software that refers to its ability to
use resources such as memory, processing power, and network
bandwidth in an optimal way.

High efficiency means that a software program can perform its


intended functions quickly and with minimal use of resources, while
low efficiency means that a software program may be slow or
consume excessive resources.

Examples of factors that can affect the efficiency of the software


include:

1. Poorly designed algorithms and data structures


2. Inefficient use of memory and processing power
3. High network latency or bandwidth usage

Usability

It refers to the extent to which the software can be used with ease.
the amount of effort or time required to learn how to use the
software.

2| Page
BSc CS (SY) Software Engineering

Maintainability

It refers to the ease with which modifications can be made in a


software system to extend its functionality, improve its
performance, or correct errors.

Portability
A set of attributes that bears on the ability of software to be
transferred from one environment to another, without minimum
changes.

Classification of Software
In a computer system, the software is basically a set of instructions
or commands that tells a computer what to do. Or in other words,
the software is a computer program that provides a set of
instructions to execute a user’s commands and tell the computer
what to do. For example, like MS-Word, MS-Excel, PowerPoint, etc.
The chart below describes the types of software:

Above is the diagram of types of software. Now we will briefly


describe each type and its sub types:
System Software
Application Software

3| Page
BSc CS (SY) Software Engineering

System Software

System software is software that directly operates the computer


hardware and provides the basic functionality to the users as well
as to the other software to operate smoothly. Or in other words,
system software basically controls a computer’s internal
functioning and also controls hardware devices such as monitors,
printers, and storage devices, etc. It is like an interface between
hardware and user applications, it helps them to communicate with
each other because hardware understands machine language (i.e.
1 or 0) whereas user applications are work in human-readable
languages like English, Hindi, German, etc. so system software
converts the human-readable language into machine language and
vice versa.

Features of system software:


Let us discuss some of the features of System Software:
1. System Software is closer to the computer system.
2. System Software is written in a low-level language in general.
3. System software is difficult to design and understand.
4. System software is fast in speed (working speed).
5. System software is less interactive for the users in comparison
to application software.

Application Software

Software that performs special functions or provides functions that


are much more than the basic operation of the computer is known
as application software. Or in other words, application software is
designed to perform a specific task for end-users. It is a product or
a program that is designed only to fulfil end-users’ requirements. It
includes word processors, spreadsheets, database management,
inventory, payroll programs, etc.
Features of application software:

Let us discuss some of the features of Application Software:


1. An important feature of application software is it performs more
specialized tasks like word processing, spreadsheets, email, etc.

4| Page
BSc CS (SY) Software Engineering

2. Mostly, the size of the software is big, so it requires more


storage space.
3. Application software is more interactive for the users, so it is
easy to use and design.
4. The application software is easy to design and understand.

Types of application software:

There are different types of application software and those are:


1. General Purpose Software: This type of application software
is used for a variety of tasks and it is not limited to performing a
specific task only. For example, MS-Word, MS-Excel, PowerPoint,
etc.
2. Customized Software: This type of application software is
used or designed to perform specific tasks or functions or
designed for specific organizations. For example, railway
reservation system, airline reservation system, invoice
management system, etc.
3. Utility Software: This type of application software is used to
support the computer infrastructure. It is designed to analyse,
configure, optimize and maintains the system, and take care of
its requirements as well. For example, antivirus, disk
fragmented, memory tester, disk repair, disk cleaners, registry
cleaners, disk space analyser, etc.

5| Page
BSc CS (SY) Software Engineering

Software Evolution

Software Evolution is a term which refers to the process of


developing software initially, then timely updating it for various
reasons, i.e., to add new features or to remove obsolete
functionalities etc. The evolution process includes fundamental
activities of change analysis, release planning, system
implementation and releasing a system to customers.

The cost and impact of these changes are accessed to see how much
system is affected by the change and how much it might cost to
implement the change. If the proposed changes are accepted, a new
release of the software system is planned. During release planning,
all the proposed changes (fault repair, adaptation, and new
functionality) are considered.
A design is then made on which changes to implement in the next
version of the system. The process of change implementation is an
iteration of the development process where the revisions to the
system are designed, implemented and tested.
The necessity of Software evolution: Software evaluation is
necessary just because of the following reasons:

a) Change in requirement with time: With the passes of time,


the organization’s needs and modus Operandi of working could
substantially be changed so in this frequently changing time the
tools(software) that they are using need to change for maximizing
the performance.

b) Environment change: As the working environment changes the


things(tools) that enable us to work in that environment also
changes proportionally same happens in the software world as the
working environment changes then, the organizations need
reintroduction of old software with updated features and
functionality to adapt the new environment.

c) Errors and bugs: As the age of the deployed software within an


organization increases their preciseness or impeccability decrease
and the efficiency to bear the increasing complexity workload also
continually degrades. So, in that case, it becomes necessary to avoid
use of obsolete and aged software. All such obsolete Software’s need

6| Page
BSc CS (SY) Software Engineering

to undergo the evolution process in order to become robust as per


the workload complexity of the current environment.

d) Security risks: Using outdated software within an organization


may lead you to at the verge of various software-based cyberattacks
and could expose your confidential data illegally associated with the
software that is in use. So, it becomes necessary to avoid such
security breaches through regular assessment of the security
patches/modules are used within the software. If the software isn’t
robust enough to bear the current occurring Cyber-attacks so it must
be changed (updated).

e) For having new functionality and features: In order to


increase the performance and fast data processing and other
functionalities, an organization need to continuously volute the
software throughout its life cycle so that stakeholders & clients of
the product could work efficiently.

7| Page
BSc CS (SY) Software Engineering

Software Crisis

Software Crisis is a term used in computer science for the


difficulty of writing useful and efficient computer programs in the
required time. The software crisis was due to using the same
workforce, same methods, same tools even though rapidly
increasing in software demand, the complexity of software, and
software challenges. With the increase in the complexity of
software, many software problems arise because existing methods
were insufficient. If we will use the same workforce, same
methods, and same tools after the fast increase in software
demand, software complexity, and software challenges, then there
arise some problems like software budget problems, software
efficiency problems, software quality problems, software managing
and delivering problem, etc. This condition is called a software
crisis.

Causes of Software Crisis:

 The cost of owning and maintaining software was as expensive


as developing the software
 At that time Projects were running over-time
 At that time Software was very inefficient
 The quality of the software was low quality
 Software often did not meet user requirements
 At that time Software was never delivered
 Non-optimal resource utilization.
 Difficult to alter, debug, and enhance.
 The software complexity is harder to change.

Solution of Software Crisis:


There is no single solution to the crisis. One possible solution to a
software crisis is Software Engineering because software
engineering is a systematic, disciplined, and quantifiable approach.
For preventing software crises, there are some guidelines:
 Reduction in software over budget.
 The quality of software must be high.
 Less time is needed for a software project.
 Experienced and skilled people working over the software
project.
 Software must be delivered.
 Software must meet user requirements.

8| Page
BSc CS (SY) Software Engineering

Software Myths:

Most, experienced experts have seen myths or superstitions (false beliefs or


interpretations) or misleading attitudes (naked users) which creates major
problems for management and technical people. The types of software-
related myths are listed below.

`Types of Software Myths

(i) Management Myths:


Myth 1:
We have all the standards and procedures available for software
development.
Fact:
 Software experts do not know all the requirements for the
software development.
 And all existing processes are incomplete as new software
development is based on new and different problem.
Myth 2:
The addition of the latest hardware programs will improve the
software development.
Fact:
 The role of the latest hardware is not very high on standard
software development; instead (CASE) Engineering tools help
the computer, they are more important than hardware to
produce quality and productivity.
 Hence, the hardware resources are misused.
Myth 3:
 With the addition of more people and program planners to
Software development can help meet project deadlines (If
lagging behind).

9| Page
BSc CS (SY) Software Engineering

Fact:
 If software is late, adding more people will merely make the
problem worse. This is because the people already working on
the project now need to spend time educating the newcomers,
and are thus taken away from their work. The newcomers are
also far less productive than the existing software engineers,
and so the work put into training them to work on the software
does not immediately meet with an appropriate reduction in
work.
(ii)Customer Myths:
The customer can be the direct users of the software, the technical
team, marketing / sales department, or other company. Customer
has myths leading to false expectations (customer) & that’s why
you create dissatisfaction with the developer.
Myth 1:
A general statement of intent is enough to start writing plans
(software development) and details of objectives can be done over
time.
Fact:
 Official and detailed description of the database function, ethical
performance, communication, structural issues and the
verification process are important.
 Unambiguous requirements (usually derived iteratively) are
developed only through effective and continuous
communication between customer and developer.
Myth 2:
Software requirements continually change, but change can be
easily accommodated because software is flexible
Fact:
 It is true that software requirements change, but the impact of
change varies with the time at which it is introduced. When
requirements changes are requested early (before design or
code has been started), the cost impact is relatively small..

10 | P a g e
BSc CS (SY) Software Engineering

(iii)Practitioner’s Myths:
Myths 1:
They believe that their work has been completed with the writing of
the plan.
Fact:
 It is true that every 60-80% effort goes into the maintenance
phase (as of the latter software release). Efforts are required,
where the product is available first delivered to customers.
Myths 2:
There is no other way to achieve system quality, until it is
“running”.
Fact:
 Systematic review of project technology is the quality of
effective software verification method. These updates are quality
filters and more accessible than test.
Myth 3:
An operating system is the only product that can be successfully
exported project.
Fact:
 A working system is not enough, the right document brochures
and booklets are also required to provide guidance & software
support.
Myth 4:
Engineering software will enable us to build powerful and
unnecessary document & always delay us.
Fact:
 Software engineering is not about creating documents. It is
about creating a quality product. Better quality leads to reduced
rework. And reduced rework results in faster delivery times

11 | P a g e
BSc CS (SY) Software Engineering

UNIT II: Process of Software

What is a software engineering?

Software Engineering is a subdomain of Engineering in which you


learn to develop, designing, testing, and maintenance of software
using a systematic and structured approach.

software process :
software process is the set of activities and associated outcome that
produce a software product. Software engineers mostly carry out
these activities. These are four key process activities, which are
common to all software processes. These activities are:

 Software specifications: The functionality of the software and


constraints on its operation must be defined.
 Software development: The software to meet the
requirement must be produced.
 Software validation: The software must be validated to
ensure that it does what the customer wants.
 Software evolution: The software must evolve to meet
changing client needs.

12 | P a g e
BSc CS (SY) Software Engineering

Waterfall Model
The Waterfall Model was the first Process Model to be introduced. It
is also referred to as a linear-sequential life cycle model. It is very
simple to understand and use. In a waterfall model, each phase must
be completed before the next phase can begin and there is no
overlapping in the phases.
The Waterfall model is the earliest SDLC approach that was used for
software development.

Waterfall Model - Design


Waterfall approach was first SDLC Model to be used widely in
Software Engineering to ensure success of the project. In "The
Waterfall" approach, the whole process of software development is
divided into separate phases. In this Waterfall model, typically, the
outcome of one phase acts as the input for the next phase
sequentially.
The following is a representation of the different phases of the
Waterfall Model.

The sequential phases in Waterfall model are −

13 | P a g e
BSc CS (SY) Software Engineering

1. Requirement Gathering and analysis − All possible


requirements of the system to be developed are captured in this
phase and documented in a requirement specification
document.
2. System Design − The requirement specifications from first
phase are studied in this phase and the system design is
prepared. This system design helps in specifying hardware and
system requirements and helps in defining the overall system
architecture.
3. Implementation − With inputs from the system design, the
system is first developed in small programs called units, which
are integrated in the next phase. Each unit is developed and
tested for its functionality, which is referred to as Unit Testing.
4. Integration and Testing − All the units developed in the
implementation phase are integrated into a system after testing
of each unit. Post integration the entire system is tested for any
faults and failures.
5. Deployment of system − Once the functional and non-
functional testing is done; the product is deployed in the
customer environment or released into the market.
6. Maintenance − There are some issues which come up in the
client environment. To fix those issues, patches are released.
Also to enhance the product some better versions are released.
Maintenance is done to deliver these changes in the customer
environment.

Waterfall Model - Advantages


Some of the major advantages of the Waterfall Model are as follows
 Simple and easy to understand and use
 Easy to manage due to the rigidity of the model. Each phase has
specific deliverables and a review process.
 Phases are processed and completed one at a time.
 Works well for smaller projects where requirements are very
well understood.
 Clearly defined stages.
 Easy to arrange tasks.

Waterfall Model - Disadvantages


The disadvantage of waterfall development is that it does not allow
much reflection or revision. Once an application is in the testing stage,
it is very difficult to go back and change something that was not well-
documented or thought upon in the concept stage.

14 | P a g e
BSc CS (SY) Software Engineering

The major disadvantages of the Waterfall Model are as follows −


 No working software is produced until late during the life cycle.
 High amounts of risk and uncertainty.
 Not a good model for complex and object-oriented projects.
 Poor model for long and ongoing projects.
 Not suitable for the projects where requirements are at a
moderate to high risk of changing. So, risk and uncertainty is
high with this process model.
 It is difficult to measure progress within stages.
 Cannot accommodate changing requirements.
 Adjusting scope during the life cycle can end a project.

15 | P a g e
BSc CS (SY) Software Engineering

Evolutionary Process Model

The evolutionary model is based on the concept of making an initial


product and then evolving the software product over time with
iterative and incremental approaches with proper feedback. In this
type of model, the product will go through several iterations and
come up when the final product is built through multiple iterations.

Types of Evolutionary Process Models

1. Incremental Model
2. Spiral Model

Incremental Model
Incremental Model is a process of software development where
requirements divided into multiple standalone modules of the software
development cycle. In this model, each module goes through the
requirements, design, implementation and testing phases. Every
subsequent release of the module adds function to the previous release.
The process continues until the complete system achieved.

16 | P a g e
BSc CS (SY) Software Engineering

The various phases of incremental model are as


follows:
1. Requirement analysis: In the first phase of the incremental model,
the product analysis expertise identifies the requirements. And the system
functional requirements are understood by the requirement analysis team.
To develop the software under the incremental model, this phase performs
a crucial role.

2. Design & Development: In this phase of the Incremental model of


SDLC, the design of the system functionality and the development method
are finished with success. When software develops new practicality, the
incremental model uses style and development phase.

3. Testing: In the incremental model, the testing phase checks the


performance of each existing function as well as additional functionality. In
the testing phase, the various methods are used to test the behavior of
each task.

4. Implementation: Implementation phase enables the coding phase of


the development system. It involves the final coding that design in the
designing and development phase and tests the functionality in the testing
phase. After completion of this phase, the number of the product working
is enhanced and upgraded up to the final system product

When we use the Incremental Model?

o When the requirements are superior.


o A project has a lengthy development schedule.
o When Software team are not very well skilled or trained.
o When the customer demands a quick release of the product.
o You can develop prioritized requirements first.

Advantage of Incremental Model


o Errors are easy to be recognized.
o Easier to test and debug
o More flexible.
o Simple to manage risk because it handled during its iteration.
o The Client gets important functionality early.

17 | P a g e
BSc CS (SY) Software Engineering

Disadvantage of Incremental Model


o Need for good planning
o Total Cost is high.
o Well defined module interfaces are needed.

18 | P a g e
BSc CS (SY) Software Engineering

Spiral Model

The spiral model is a systems development lifecycle (SDLC) method


used for risk management that combines the iterative
development process model with elements of the Waterfall model.
The spiral model is used by software engineers and is favoured for
large, expensive and complicated projects.

When viewed as a diagram, the spiral model looks like a coil with
many loops. The number of loops varies based on each project and is
often designated by the project manager. Each loop of the spiral is a
phase in the software development process.

The Spiral Model is shown in fig:

Each cycle in the spiral is divided into four parts:

Planning: The first phase of the Spiral Model is the planning


phase, where the scope of the project is determined and a plan is
created for the next iteration of the spiral.
Risk Analysis: In the risk analysis phase, the risks associated with
the project are identified and evaluated.
Engineering: In the engineering phase, the software is developed
based on the requirements gathered in the previous iteration.

19 | P a g e
BSc CS (SY) Software Engineering

Evaluation: In the evaluation phase, the software is evaluated to


determine if it meets the customer’s requirements and if it is of
high quality.
Planning: The next iteration of the spiral begins with a new
planning phase, based on the results of the evaluation.
The Spiral Model is often used for complex and large software
development projects, as it allows for a more flexible and
adaptable approach to software development. It is also well-suited
to projects with significant uncertainty or high levels of risk.

When to use Spiral Model?

o When deliverance is required to be frequent.


o When the project is large
o When requirements are unclear and complex
o When changes may require at any time
o Large and high budget projects

Advantages

o High amount of risk analysis


o Useful for large and mission-critical projects.

Disadvantages

o Can be a costly model to use.


o Risk analysis needed highly particular expertise
o Doesn't work well for smaller projects.

20 | P a g e

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy