0% found this document useful (0 votes)
8 views19 pages

Waterfall Model & Requirements Engineering Guide

Uploaded by

gosag32019
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)
8 views19 pages

Waterfall Model & Requirements Engineering Guide

Uploaded by

gosag32019
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

SOFTWARE ENGINEERING

2023-24

UNIT -1
2.
a) Explain waterfall model with a neat diagram.

1. Requirements analysis and definition: The system’s services, constraints and goals are
established by consultation with system users. They are then defined in detail and serve as a
system specification.
2. System and software design :The systems design process partitions the requirements to
either hardware or software systems. It establishes an overall system architecture. Software
design involves identifying and describing the fundamental software system abstractions and
their relationships.
3. Implementation and unit testing :During this stage, the software design isrealised as a
set of programs or program units. Unit testing involves verifying that each unit meets its
specification.
4. Integration and system testing :The individual program units or programs are integrated
and tested as a complete system to ensure that the software requirements have been met. After
testing, the software system is delivered to the customer.
5. Operation and maintenance this is the longest life-cycle phase. :The system is installed
and put into practical use. Maintenance involves correcting errors which were not discovered
in earlier stages of the life cycle, improving the implementation of system units and
enhancing the system’s services as new requirements are discovered.

b) Explain four phases of requirement Engineering Process.


Software specification or requirements engineering is the process of understanding and
defining what services are required from the system and identifying the constraints on the
system’s operation and development.
1. Feasibility study :A feasibility study is an initial assessment of the practicality of a
proposed project or system. It evaluates whether the project can be successfully completed
within the constraints of available resources, budget, and time. The study also considers the
potential benefits and drawbacks of the project, as well as the risks involved. The results of
the feasibility study inform the decision of whether to proceed with further development.
2. Requirements elicitation and analysis Requirements elicitation and analysis: is the
process of gathering and understanding the needs of stakeholders for a new or existing
system. This involves a variety of techniques, such as interviews, surveys, and observation.
The goal is to identify and document all of the requirements for the system, so that the
developers can build a system that meets the needs of the users
3. Requirements specification two types are:User requirements are high-level statements
that describe what the user wants or needs from the system. System requirements are more
detailed specifications that describe how the system should meet those user needs. For
example, a user requirement might be "The system should allow me to create and manage my
calendar." A system requirement for this might be "The system shall provide a calendar
interface that allows users to create, edit, and delete events."
4. Requirements validation :Requirements validation is a critical step in the software
development process, ensuring that the specified requirements accurately reflect the needs
and expectations of stakeholders. It involves checking the requirements for realism,
consistency, and completeness. During this process, errors in the requirements document are
inevitably discovered. These errors must be identified, analyzed, and corrected to ensure that
the final product meets the intended purpose.

3.
a) Write a note on professional and ethical responsibilities of Software Engineer.
Software engineers should always aim to produce high-quality work and continuously
improve their skills and knowledge. Maintain confidentiality: Engineers should respect the
privacy of their clients and users, and protect any
1. Confidentiality: whether or not you've signed a formal agreement, it's just good practice
to keep things confidential. You should normally respect the confidentiality of your
employers or clients.
2. Competence: it's important not to pretend to be an expert in something you're not. Taking
on tasks you're not competent in can lead to problems down the road.
3. Intellectual property rights :You should be aware of local laws governing the use of
intellectual property such as patents and copyright. You should be careful to ensure that the
intellectual property of employers and clients is protected
4. Computer misuse: You should not use your technical skills to misuse other people’s
computers. Computer misuse ranges from relatively trivial (game playing on an employer’s
machine, say) to extremely serious (dissemination of viruses).
b) Explain different attributes of good software.
Maintainability : Software should be written in such a way that it may evolve to meet the
changing needs of customers. This is a critical attribute because software change is an
inevitable consequence of a changing business environment.
Dependability: Dependability is the most important facet of a computer system. It is a
measure of a system's ability to provide services that can be trusted within a time-period.
including reliability, security and safety.
Efficiency: It also refers to the ability of the software to use system resources in the most
effective and efficient manner. Efficient software is like a smart worker that doesn't waste
time or resources. It operates smoothly, using just the right amount of memory and processing
power needed to get the job done. Imagine a well-organized office where tasks are completed
without unnecessary delays.
Usability:it should be easy to use without unnecessary struggle. Just like a well-designed
road map, usable software comes with an appropriate user interface, guiding users smoothly
through its features.

UNIT-II
4.
a).Explain the general process model of the elicitation and analysis process with the diagram.

Requirement discovery: This is the process of interacting with stakeholders in the system to
collect their requirements. It is important step in system development life cycle to ensure that
system will meet the need of user and other stakeholders.
Requirements classification and organization is a crucial step in the requirements
engineering process, as it helps to transform the unstructured collection of requirements into a
well-structured and organized form and grouping related requirement together this helps to
make requirement easier to understand manage and prioritize.
Requirement prioritization and negotiation: When multiples stakeholder involved
requirement will conflict. it is a process of ranking requirement in order of importance and
resolving conflict through negotiation have it ensure system will meet the important need of
stakeholder and requirement are feasible to implement within the projects.
Requirement documentation: The requirements are documented and input into the next
round of the spiral. Formal or informal requirements documents may be produced. This is
important in development process as it ensures that requirement are well defined and
understand by all stakeholders.

b) explain the data-flow diagram of order-processing .

5.
a) Write a note on:
i) State-machine model
A state machine model describes how a system responds to internal or external events. The
state machine model shows system states and events that cause transitions from one state to
another.
It does not show the flow of data within the system. This type of model is often used for
modelling real time systems because these systems are often driven by stimuli from the
system’s environment.
Advantage:
• Clarity: They provide a clear and concise way to represent the system's behavior.
• Formalism: They can be represented formally using mathematical notation, which makes
them amenable to analysis and verification.
• Modularity: They can be decomposed into smaller, more manageable components, which
makes them easier to understand and maintain.
• Reusability: They can be reused for modeling different systems with similar behavior

ii) Object model.


An object model defines the classes, attributes, methods, and their relationships in a system.
It is a blueprint for creating and using objects in a software application.
The Unified Modeling Language (UML) used in this unified method has become a standard
for object modelling. The three main components of an object model are: • Classes: Classes
are blueprints that define the attributes and methods of objects.
• Objects: Objects are instances of classes. They have state, which is represented by their
attributes, and behavior, which is represented by their methods.
• Relationships: Relationships define how objects are connected to each other. There are
three main types of relationships: aggregation, composition, and inheritance.
An object class in UML, represented as a vertically oriented rectangle with three sections:
I. The name of the object class is in the top section.
2. The class attributes are in the middle section.
3. The operations associated with the object class are in the lower section of the rectangle.
Benefit:
• Improved understanding of complex systems: Object models provide a way to break
down complex systems into smaller, more manageable pieces. This can make it easier to
understand how the system works and how to change it.
• Increased code reusability: Object models can be used to create reusable classes and
objects. This can save time and effort when developing new software systems.
• Improved maintainability of code: Object models can make code easier to maintain by
making it easier to understand how the code works and how to change it.

b) Explain the components of a CASE tool for structured method support with a
diagram.

Analysis and design CASE tools support the creation, editing and analysis of the graphical
notations used in structured methods.
1. Diagram editors used to create object models, data models, behavioural models, and so on.
These editors are not just drawing tools but are aware of the types of entities in the diagram.
They capture information about these entities and save this information in the central
repository.
2. Design analysis and checking tools : Tools for design analysis and checking find errors
and issues in the design. They can be part of the editing system, catching user mistakes early
in the process.
3. Repository query languages: help designers locate designs and related information in the
repository.
4. A data dictionary :that maintains information about the entities used in a system design.
[Link] definition and generation tools that take information from the central store and
automatically generate system documentation.
6. Forms definition tools:Tools for defining forms let you specify how screens and
documents should look.
7. Import/export facilities that allow the interchange of information from the central
repository with other development tools.
[Link] generators that generate code or code skeletons automatically from the design
captured in the central store.

UNIT-III
6.

a) What is shared repository model? Write the advantages and disadvantages.

A shared repository model, also known as a monorepo, is a software development


approach that involves storing all of the source code for a project in a single
repository. This can be contrasted with a multi-repo approach, where the source code
is divided into multiple repositories.
Advantages of a Shared Repository Model
• Improved code reuse: Developers can easily access and reuse code from other
parts of the project.
• Enhanced code consistency: All of the code is in a single location, which can help
to ensure that it is consistent and well-documented.
• Simplified dependency management: There are fewer dependencies to manage,
which can make it easier to build and deploy the project.
• Stronger collaboration: Developers can more easily collaborate on code, as they
are all working from a single source of truth. Disadvantages of a Shared Repository
Model
• Increased complexity: Large repositories can become complex and difficult to
manage.
• Performance issues: Large repositories can impact build times and performance.
• Difficulties with branching and merging: Branching and merging can be more
complex with a single repository.
• Limited scalability: Monorepos can become difficult to scale as the project grows.
b) Explain architectural design with an example.
. Architectural design is the process of defining the overall structure and components of a
system. It involves making decisions about the high-level design of the system, such as the
components that will be included, the interfaces between those components, and the overall
organization of the system.
To illustrate this concept, consider an e-commerce platform as an example. The architectural
design of such a platform would encompass the following aspects: Components:
1. Product Catalog:
Manages product information, including descriptions, images, and prices.
2. Shopping Cart: Stores items selected by users for purchase.
3. User Management: Handles user registration, authentication, and profile management.
4. Payment Processing: Integrates with payment gateways to process transactions securely.
5. Order Management: Tracks orders, manages inventory, and handles order fulfillment.
Interactions:
1. Users browse the product catalog and add items to their shopping cart.
2. Users proceed to checkout, providing shipping and payment information.
3. The system validates payment information and processes the transaction.
4. The system confirms the order, updates inventory, and initiates order fulfillment.
5. Users receive order status updates and track their shipments. The architectural design of an
e-commerce platform defines the overall structure and interactions between these components
to ensure seamless user experience, secure transactions, and efficient order processing.

7.
a) Explain client-server model with an example diagram.

The client-server model is a distributed application architecture that partitions tasks or


workloads between the providers of a resource or service, called servers, and service
requesters, called clients. In this model, the client initiates a request for a specific service or
resource from the server, and the server processes the request and delivers the requested data
or service back to the client. Clients: The clients represent the user's computers or devices
that access the website. In this case, there are four clients, labeled Client 1, Client 2, Client 3,
and Client 4.
Internet: The internet serves as the communication channel between the clients and the
servers. It provides the network infrastructure for the clients to send requests to the servers
and receive responses.

Catalogue, Video, Picture, Web Servers: These are the servers that provide specific
services to the clients. Catalogue Server: Stores information about library books, including
titles, authors, genres, and availability.
Video Server: This server stores and delivers video content, such as movie trailers or
instructional videos.
Picture Server: This server stores and delivers picture content, such as still images or digital
artwork.
Web Server: This server handles web requests and delivers web pages to the clients. It is
responsible for presenting the website's content to the users.
b) List and explain four essential elements of design patterns.
.
as a design patterns are reusable solutions to commonly recurring problems in software
design. They serve as blueprints for addressing frequently encountered challenges and
provide a standardized approach to creating robust, flexible, and maintainable software
systems.
1. Reusability: Design patterns promote code reuse, reducing development time and effort.
2. Maintainability: Well-structured patterns enhance code readability and maintainability,
simplifying modifications and updates.
3. Flexibility: Design patterns provide adaptability to changing requirements, making
software more resilient and adaptable.
4. Communication: Design patterns serve common language among developers, fostering
better understanding and collaboration.

UNIT-IV
8.
a) Explain V model (planning Verification and Validation) with diagram.
The V-model is a type of SDLC model where the process executes in a sequential manner in a
V-shape. It is also known as the Verification and Validation model. It is based on the
association of a testing phase for each corresponding development stage. The development of
each step is directly associated with the testing phase. The next phase starts only after
completion of the previous phase i.e., for each development activity, there is a testing activity
corresponding to it.

• Requirements specification: This document defines the requirements that the system must
meet.
• System specification: This document describes the architecture, components, and interfaces
of the system.
• System design: This document describes the detailed design of the system, including its
modules, classes, and functions.
• Detailed design: This document describes the detailed design of each module of the
system.
• Acceptance test plan: This document outlines the tests that will be performed to verify that
the system meets the requirements of the users and stakeholders.
• System integration test plan: This document outlines the tests that will be performed to
verify that the different modules of the system interact correctly.
• Sub-system integration test plan: This document outlines the tests that will be performed to
verify that the different sub-systems of the system interact correctly.
• Module and unit code and test plan: This document outlines the tests that will be performed
to verify the functionality and correctness of the individual modules and units of code in the
system.
• Service acceptance test: This test verifies that the system meets the requirements of the
users and stakeholders.
• System integration test: This test verifies that the different modules of the system interact
correctly
• Sub-system integration test: This test verifies that the different sub-systems of the system
interact correctly.

b) Explain the various approaches involved in test case design.


.
Test case design is a part of system and component testing where you design the test cases
(inputs and predicted outputs) that test the system. The goal of the test case design process is
to create a set of test cases that are effective in discovering program defects and showing that
the system meets its requirements.
Requirements-based testing (RBT) is a testing method that evaluates if a system meets the
functional and non-functional requirements of the customer. The goal of RBT is to determine
if the software product meets its intended objectives
Partition testing which input data is divided into partitions of valid and invalid values, and it
is mandatory that all partitions must exhibit the same behavior. If a condition of one partition
is true, then the condition of another equal partition must also be true, and if a condition of
one partition is false, then the condition of another equal partition must also be false. The
principle of equivalence partitioning is, test cases should be designed to cover each partition
at least once. Each value of every equal partition must exhibit the same behavior as other.

Structural testing where you use knowledge of the program’s structure to design tests that
exercise all parts of the program. Essentially, when testing a program, you should try to
execute each statement at least once. Structural testing helps identify test cases that can make
this possible.

9.
a) What are the different components that are tested in unit testing?

Component testing (sometimes called unit testing) is the process of testing individual
components in the system. This is a defect testing process so its goal is to expose faults in
these components.
There are different types of components that may be tested at this stage:
o Individual functions or methods within an object.
o Object classes that have several attributes and method.
o Composite components made up of several different objects or functions. These composite
components have a defined interface that is used to access their functionality.
• WeatherStation: The WeatherStation class is the main class in the system. It is responsible
for collecting weather data from the instruments and reporting it to the user.
• Instruments: The Instruments class represents the different instruments that are used to
collect weather data, such as a thermometer, barometer, and anemometer.
• Calibration: The Calibration class is used to calibrate the instruments so that they provide
accurate readings.
• Startup: The Startup class is responsible for initializing the WeatherStation and its
instruments.
• Shutdown: The Shutdown class is responsible for shutting down the WeatherStation and its
instruments.

b) Explain steps involved in bottom-up integration testing.


.
1. Low-level components are combined into clusters (sometimes called builds) that perform a
specific software subfunction.
2. A driver (a control program for testing) is written to coordinate test case input and output.
3. The cluster is tested.
4. Drivers are removed and clusters are combined moving upward in the program structure.

Integration follows the pattern illustrated above. Components are combined to form clusters
1, 2, and 3. Each of the clusters is tested using a driver (shown as a dashed block).
Components in clusters 1 and 2 are subordinate to Ma. Drivers D1 and D2 are removed, and
the clusters are interfaced directly to Ma. Similarly, driver D3 for cluster 3 is removed prior
to integration with module Mb. Both Ma and Mb will ultimately be integrated with
component Mc, and so forth.

c) Explain structural testing.


.
Structural testing where you use knowledge of the program’s structure to design tests that
exercise all parts of the program. Essentially, when testing a program, you should try to
execute each statement at least once. Structural testing helps identify test cases that can make
this possible. Structural testing is an approach to test case design where the tests are derived
from knowledge of the software’s structure and implementation. This approach is sometimes
called ‘white-box’, ‘glass-box’ testing, or ‘’clear-box’ testing .
2024-25

UNIT-1
2.
a) what is software ? explain two types of software products.

Computer programs and associated documentation. Software products may be developed for
a particular customer or may be developed for a general market is called software.

Generic products :in software engineering are stand-alone systems that are produced by a
development organization and sold on the open market to any customer who is able to buy
them. Large number of users may be using this kind of software. They are developed for
general use and can be used by multiple customers or industries. example are databases, word
processors, drawing packages and project management tools.
Customised products: a customized product is a software solution created specifically for a
particular organization or individual. This type of software is used by limited number of
users. Examples of this type of software include control systems for electronic devices and air
traffic control systems.

b) Explain waterfall model with a neat diagram.

3.
a) Explain key challenges facing software engineering.

Heterogeneity challenge: is a composition of a software system which is made up of different


languages and running on different systems by using different standard for communication

delivery challenge :businesses today must be responsive and change very rapidly. Their
supporting software must change equally rapidly. The delivery challenge is the challenge of
shortening delivery times for large and complex systems without compromising system
quality.
trust challenge :in software engineering is the challenge of developing a technique that
demonstrates that software can be trusted by its user. It's important that we trust the software
we are using, especially for those software systems which are accessed through a web page or
web service.

b) Write a note on professional and ethical responsibilities.

UNIT -2

4.
a) Briefly explain the concept of requirement review.
A requirement review is a formal process of evaluating and verifying the completeness,
accuracy, and clarity of software requirements. It is an essential part of the software
development lifecycle (SDLC) and helps to ensure that the final product meets the needs of
the users and stakeholders.
Verifiability Ability to determine whether or not a requirement has been met requirement is
verifiable if there is a clear and objective way to test it?
Comprehensibility: ensure their system will meet the need for stakeholder if the stakeholder
don’t know understand the requirement they cannot provide feedback.
Traceability: Is the origin of the requirement clearly stated? .Ability to track the origin of
requirement and to see how it is used in the system because it allows stakeholder to
understand the impact of change to recruitment on the rest of the system.
Adaptability: Is the requirement adaptable? It is ability of recruitment to be changed without
causing problems to a system because they allow the system to be easily modified to meet the
changing needs.

b) Briefly explain the components of a CASE tool for structured method support with a
diagram.
.
5.
a) List and explain requirement validation techniques.
.
Requirements reviews are an essential part of the software development lifecycle (SDLC).
They help to ensure that the software meets the needs of the users and stakeholders, and that
it is developed in a way that is consistent with the project's goals and objectives.

Prototyping is an iterative process of developing a working model of a software system to


gather user feedback and refine the requirements before committing to a full-scale
development effort. It is a valuable tool in the software requirements specification (SRS)
process, as it allows stakeholders to visualize and interact with the system early on, leading to
better understanding, improved requirements, and reduced risk of project failure.

Test-case generation Test case generation is the process of creating test cases, which are
inputs to a software system that are designed to test its behavior and ensure that it meets its
requirements. Test cases are typically written in a structured format, such as a table or a list,
and they should include a description of the test, the expected outcome, and the actual
outcome.

b) Explain the context of an ATM system with the diagram.


A context model defines how context data are structured and maintained. It aims to produce a
formal description of the context information that is present in a context-aware system.
1. Security System: This component safeguards the bank's assets and data from unauthorized
access, ensuring the integrity of customer information and financial transactions.
2. Branch Accounting System: This system handles transactions initiated at the bank's
branches, including deposits, withdrawals, account maintenance, and balance inquiries. It
maintains records of customer accounts and transaction details.
3. Auto-Teller System (ATM System): This system facilitates self-service transactions
through ATMs, allowing customers to access their accounts, withdraw cash, and make
deposits without interacting with bank staff. It communicates with the branch accounting
system to process transactions and update account balances.
4. Branch Usage Counter System: This system tracks customer usage of the branch,
providing insights into transaction volumes, peak usage times, and customer preferences.
This data can be used to optimize staffing and resource allocation.
5. Maintenance System: This system manages the maintenance of hardware and software
components in the banking system, ensuring the system's uptime and performance. It
schedules regular maintenance tasks, logs system events, and tracks the resolution of any
issues.

UNIT-3
6.
a) Write the advantages and disadvantages of a shared repository model.
.
A shared repository model, also known as a monorepo, is a software development approach
that involves storing all of the source code for a project in a single repository. This can be
contrasted with a multi-repo approach,
where the source code is divided into multiple repositories. Advantages of a Shared
Repository Model

• Improved code reuse: Developers can easily access and reuse code from other parts of the
project.
• Enhanced code consistency: All of the code is in a single location, which can help to ensure
that it is consistent and well-documented.
• Simplified dependency management: There are fewer dependencies to manage, which can
make it easier to build and deploy the project.
• Stronger collaboration: Developers can more easily collaborate on code, as they are all
working from a single source of truth.
Disadvantages of a Shared Repository Model
• Increased complexity: Large repositories can become complex and difficult to manage.
• Performance issues: Large repositories can impact build times and performance.
• Difficulties with branching and merging: Branching and merging can be more complex with
a single repository.
• Limited scalability: Monorepos can become difficult to scale as the project grows.

b) Explain layered model with a diagram.


.
The Layered Architecture is a model that organizes a system into layers, each of which
provides a set of services. The model is also known as an abstract machine model. Each layer
can be thought of as an abstract machine whose machine language is defined by the services
provided by the layer.
The configuration management system (CMS) layer is like the control center in a software
setup. It's crucial for keeping everything organized and reliable. Imagine it as a central hub
that stores and keeps track of all the important settings and changes in the software. This
ensures that everything in the system stays consistent and works smoothly together.

The object management system (OMS) layer is like the manager of a software team. Its main
job is to handle the creation, changes, and removal of different pieces of information, called
objects. Think of it as the organized system that makes sure everything works smoothly and
efficiently in the software. This layer helps the software perform well and handle a lot of
information without slowing down.

The database system layer is a crucial component of a layered software architecture,


responsible for managing and storing data persistently. It provides a structured and efficient
way to organize, access, and manipulate data, ensuring data integrity, security, and
availability.
The operating system (OS) layer is like the boss of a computer, handling all the important
tasks and making everything run smoothly. It's the foundation that supports the computer's
hardware and allows user applications to work. Think of it as the manager that organizes the
computer's memory, decides which tasks to do first, and controls devices like printers and
keyboards.

7.
a) Write a note on object interface specification.

An object interface specification defines the behavior of an object and the interactions that
other objects can have with it. The purpose of an object interface specification is to ensure
that different objects can communicate and interact with each other in a consistent and
predictable way. Key Components of an Object Interface Specification
• Methods: Define the actions that an object can perform. • Properties: Define the attributes
or characteristics of an object.
• Events: Define the notifications that an object can send to other objects.
• Preconditions and Postconditions: Define the conditions that must be met before and after
calling a method. Benefits of Object Interface Specifications
• Encapsulation: Enforces data hiding and prevents unauthorized access to an object's internal
state.
• Reusability: Allows objects to be reused in different parts of an application without
modifying their internal implementation.
• Maintainability: Makes it easier to understand and modify the behavior of objects.
• Testability: Facilitates the testing of objects and their interaction.

c) Write a note on design patterns.

UNIT-IV
8.
a) write the guidelines of interface testing.
A further problem may arise because of interactions between faults in different modules or
objects. Faults in one object may only be detected when some other object behaves in an
unexpected way.
Some general guidelines for interface testing are:
1. Examine the code to be tested and explicitly list each call to an external component.
Design a set of tests where the values of the parameters to the external components are at the
extreme ends of their ranges. These extreme values are most likely to reveal interface
inconsistencies.
2. Where pointers are passed across an interface, always test the interface with null pointer
parameters.
3. Where a component is called through a procedural interface, design tests that should cause
the component to fail. Differing failure assumptions are one of the most common
specification misunderstandings.
4. Use stress testing, as discussed in the previous section, in message-passing system. Design
tests that generate many more messages than are likely to occur in practice. Timing problems
may be revealed in this way.
5. Where several components interact through shared memory, design tests that Vary the
order in which these components: are activated. These tests may reveal implicit assumptions
made by the programmer about the order in which the shared data is produced and consumed.

3) What is system Testing? Explain two distinct phases of System Testing.


.
System testing is a crucial stage in the software development process, especially in an
iterative development environment. It involves integrating two or more components that
implement specific system functions or features and then testing this integrated system as a
whole. the focus is on testing the integrated system increment that is ready to be delivered to
the customer.
Integration testing: where the test team have access to the source code of the system. When
a problem is discovered, the integration team tries to find the source of the problem and
identify the components that must be debugged. Integration testing is mostly concerned with
finding defects in the system.
Release testing: Release testing is usually 'black-box' testing where the test team is simply
concerned with demonstrating that the system does or does not work properly. Problems are
reported to the development team whose job is to debug the program. Where customers
already involved in release testing, this is sometimes called acceptance testing. If the release
is good enough, the customer may then accept it for use.
9.
a) Explain the top-down and bottom-up integration testing?

b)explain equivalence partitioning?

Equivalence partitioning is a technique of software testing in which input data is divided into
partitions of valid and invalid values, and it is mandatory that all partitions must exhibit the
same behavior. If a condition of one partition is true, then the condition of another equal
partition must also be true, and if a condition of one partition is false, then the condition of
another equal partition must also be false. The principle of equivalence partitioning is, test
cases should be designed to cover each partition at least once. Each value of every equal
partition must exhibit the same behavior as other.
1. Inputs where the key element is a member of the sequence (Found = true)
2. Inputs where the key element is not a sequence member (Found = false)

Assume that there is a function of a software application that accepts a particular number of
digits, not greater and less than that particular number. For example, an OTP number which
contains only six digits, less or more than six digits will not be accepted, and the application
will redirect the user to the error page.

You might also like