0% found this document useful (0 votes)
2 views

Software Engineering

The document provides an overview of software engineering, including definitions, models, and methodologies. It discusses the differences between generic and custom software, outlines various software development models like Waterfall, RAD, and Spiral, and explains concepts such as Quality Function Deployment and Software Requirements Specification. Additionally, it highlights the importance of system design and architecture design in creating effective software systems.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Software Engineering

The document provides an overview of software engineering, including definitions, models, and methodologies. It discusses the differences between generic and custom software, outlines various software development models like Waterfall, RAD, and Spiral, and explains concepts such as Quality Function Deployment and Software Requirements Specification. Additionally, it highlights the importance of system design and architecture design in creating effective software systems.
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 22

Software Engineering

1.Explain Software and explain software


engineering?
Ans - Software is a set of instructions, data or programs that you can use
to operate a computer and perform the particular tasks that they are
looking for. The software actually is the opposite of hardware. In software,
there is a set of data, programs, and information that you need inside
your computer in order to operate your computer efficiently and perform
the specific tasks that you are looking for.
Software is a program or set of programs containing instructions that
provide desired functionality. And Engineering is the process of designing
and building something that serves a particular purpose and finds a cost-
effective solution to problems. Software engineering is the process of
designing, developing, testing, and maintaining software. It is a
systematic and disciplined approach to software development that aims to
create high-quality, reliable, and maintainable software. Software
engineering includes a variety of techniques, tools, and methodologies,
including requirements analysis, design, testing, and maintenance.

2.Difference between Generic Software and


Custom Software?
Ans -

Generic software product


development Custom software development

The generic software Customer software development is


development is done for done to develop a software product
developing a general-purpose as per the needs of particular
software. customer.

In this development process,


In this development process, the end-
the software developers have
user requirements can be aggregated
to depict the end-users’
by communicating by them.
specifications.

From designing and marketing This development does not require


perspective, this type of marketing, because it is developed
Generic software product
development Custom software development

development is very difficult. for appropriate group of users.

Large number of users may be This type of software is used by


using this kind of software. limited number of users.

Quality is the main criterion in


Quality of the product is not a
customer software product. Best
preference for generic
quality of the product is focused for
software.
customer or company.

Development team controls the Customer determines the process of


process of generic software software development in this type of
development. product.

Example of generic software Inventory control and management


product development is Word- system are examples of customer
editing software. software development.

3.Define Software Engineering and explain its


objective?
Ans - Software is a program or set of programs containing instructions
that provide desired functionality. And Engineering is the process of
designing and building something that serves a particular purpose and
finds a cost-effective solution to problems. Software engineering is the
process of designing, developing, testing, and maintaining software. It is a
systematic and disciplined approach to software development that aims to
create high-quality, reliable, and maintainable software. Software
engineering includes a variety of techniques, tools, and methodologies,
including requirements analysis, design, testing, and maintenance.
The main objectives of software engineering are:
 To produce software that is of high quality, reliable, and meets the
needs and requirements of its users.
 To develop software in a systematic and disciplined manner, using
well-defined processes, methods, and tools.
 To improve the productivity of software development, by reducing
the time and effort required to build software.
 To ensure that software is maintainable, adaptable, and scalable, so
that it can evolve and adapt to changing requirements over time.
 To promote collaboration and communication among software
developers, stakeholders, and users.
 To ensure the software is secure and meets relevant standards and
regulations.
 To minimize the risk of software failure and ensure that software
systems are reliable and can be trusted by user

4.Explain Waterfall Model?


Ans - Winston Royce introduced the Waterfall Model in 1970. The Waterfall
model is a linear, sequential approach to software development that is
based on the principle of "getting it right the first time." It is one of the
earliest and most widely-used software development models. The
Waterfall model consists of a series of sequential phases, each of which
must be completed before the next phase can begin. The phases are
typically:
 Requirements gathering and analysis: In this phase, the
requirements of the software system are gathered, analysed, and
documented. The goal of this phase is to fully understand what the
software system needs to do and to develop a detailed specification
of its functionality.
 Design: In this phase, the software design is created based on the
requirements gathered in the previous phase. This design is a
blueprint that describes how the software system will be
constructed, including the architecture, data structures, algorithms,
and user interface.
 Implementation: In this phase, the software design is translated
into code and the software system is built. This phase is often
broken down into several sub-phases, such as coding, debugging,
and testing.
 Testing: In this phase, the software system is tested to ensure that
it meets the requirements specified in the previous phases. This
phase includes both unit testing, which tests individual components
of the software, and system testing, which tests the entire software
system.
 Deployment: In this phase, the software system is deployed into a
production environment and made available for use.
 Maintenance: In this phase, the software system is maintained,
including fixing any bugs or problems that are found, and making
updates or changes as necessary.

5.Explain RAD Model?


Ans - RAD (Rapid Application Development) is a software development
model that emphasizes fast and flexible development of applications. RAD
is a model that prioritizes rapid prototyping and quick iteration over
extensive planning and design. It was first introduced in the 1990s as a
response to the increasing demand for faster and more efficient software
development.
The RAD model consists of several phases:
 Requirements Planning: In this phase, the project requirements
are defined and a high-level project plan is created. The focus is on
understanding the needs of the end-users and stakeholders and
defining the goals of the project.
 User Design: In this phase, the application's user interface and
functionality are defined in detail. This phase also includes the
creation of prototypes and mock-ups to help stakeholders visualize
the end product.
 Construction: In this phase, the actual development of the
application takes place. This phase is divided into several iterations,
with each iteration delivering a functional subset of the overall
application.
 Cutover: In this phase, the developed application is transitioned
into production and made available to end-users.
 Maintenance: In this phase, the application is maintained and
updated to address any issues or changing needs of the end-users.

6.Explain Spiral Model?


Ans - The Spiral model is a software development process model that
combines elements of both the Waterfall model and the Iterative model.
The Spiral model is an iterative process that consists of four phases that
are repeated multiple times: Planning, Risk Analysis, Engineering, and
Evaluation.
 Planning: In this phase, the objectives, constraints, and
alternatives for the software system are identified, and a plan for
the development process is created. This includes defining the
software requirements, determining the development approach, and
identifying the resources that will be required.
 Risk Analysis: In this phase, the potential risks associated with the
software system are identified, and strategies for mitigating these
risks are developed. This phase helps to minimize the risk of failure
and to ensure that the software system is delivered on time and
within budget.
 Engineering: In this phase, the software system is developed and
tested. This phase is similar to the implementation phase in the
Waterfall model, but the focus is on developing a working prototype
of the software system that can be tested and evaluated.
 Evaluation: In this phase, the software system is evaluated against
the objectives and requirements defined in the planning phase.
Based on this evaluation, the software system can be refined and
improved.

7.Explain Quality Function Deployment with its


type?
Ans - Quality Function Deployment (QFD) is process or set of tools
used to define the customer requirements for product and convert those
requirements into engineering specifications and plans such that the
customer requirements for that product are satisfied.
QFD was developed in late 1960s by Japanese Planning Specialist named
Yoji Akao.
QFD aims at translating Voice of Customer into measurable and detailed
design targets and then drives them from the assembly level down
through sub-assembly level, component level, and production process
levels.
QFD helps to achieve structured planning of product by enabling
development team to clearly specify customer needs and expectations of
product and then evaluate each part of product systematically.
Types of QFD in software engineering:
 Traditional QFD: This is the original form of QFD and involves a
matrix that links customer needs to technical requirements. It is
useful for identifying the technical features required for a product or
service.
 Service QFD: This type of QFD is used to identify the requirements
for service-oriented products such as software applications. It
involves identifying the different stages of the service and the
customer needs at each stage.
 Software QFD: This type of QFD is specifically used for software
development. It involves identifying the software features required
to meet customer needs and mapping those features to software
requirements. This helps to ensure that the software meets the
needs of the customer.

8.List the Umbrella Activities followed in generic


model?
Ans - The Umbrella Activities in the Generic Software Process Model are a
set of essential activities that are applied throughout the software
development process. These activities are critical for ensuring that
software products are delivered on time, within budget, and to the
satisfaction of stakeholders.
The Umbrella Activities in the Generic Software Process Model
include:
 Software Project Tracking and Control - Tracking and
monitoring the progress of the software development project to
ensure it stays on schedule and within budget.
 Risk Management - Identifying potential risks that could impact
the success of the software development project and developing
strategies to mitigate those risks.
 Quality Assurance - Testing the software product to ensure it
meets functional and non-functional requirements, is free from
defects and bugs, and meets quality standards.
 Configuration Management - Managing the software product and
its associated documentation throughout the development process,
including version control, change management, and release
management.
 Reusability Management - Identifying opportunities for reusing
existing software components, code, and documentation to reduce
development time and costs and improve the quality of the software
product.
 Measurement and Metrics - Collecting and analyzing data to
track the progress of the software development project and identify
opportunities for improvement, including data on project schedule,
budget, and quality metrics.
 Process Improvement - Identifying opportunities to improve the
software development process and implementing changes to
improve efficiency, quality, and productivity.

9.Write a Short Note on Software Requirements


Specification?
Ans - Software Requirements Specification (SRS) is a document that
outlines the functional and non-functional requirements of a software
system. It describes what the system should do, how it should behave,
and what features it should have.
The purpose of the SRS is to provide a clear and concise description of the
requirements for the software system. It serves as a communication tool
between the stakeholders, including the developers, customers, and end-
users, to ensure that everyone has a shared understanding of what the
software should do.
The SRS typically includes the following information:
 Introduction - a brief overview of the software system and its
purpose.
 Functional Requirements - a detailed description of what the
system should do and how it should behave.
 Non-Functional Requirements - a description of the
performance, reliability, security, and other quality attributes of the
system.
 Constraints - any technical, schedule, or budgetary constraints
that may impact the development of the software.
 Assumptions and Dependencies - any assumptions or
dependencies that the developers should be aware of during
development.
 Acceptance Criteria - the criteria that the software must meet to
be considered acceptable by the stakeholders.

10.Difference between Functional and Non-


Functional Requirements?
Ans -

Functional Requirements Non Functional Requirements

A functional requirement defines a system or A non-functional requirement defines the


its component. quality attribute of a software system.

It places constraints on “How should the


It specifies “What should the software software system fulfil the functional
system do?” requirements?”

Non-functional requirement is specified by


technical peoples e.g., Architect, Technical
Functional requirement is specified by User. leaders and software developers.
Functional Requirements Non Functional Requirements

It is mandatory. It is not mandatory.

It is captured in use case. It is captured as a quality attribute.

Defined at a component level. Applied to a system as a whole.

Helps you verify the functionality of the Helps you to verify the performance of the
software. software.

Functional Testing like System, Integration, Non-Functional Testing like Performance, Stress,
End to End, API testing, etc are done. Usability, Security testing, etc are done.

Usually easy to define. Usually more difficult to define.

11.Explain Use Case Diagram in Brief.


Ans - In software engineering, a use case diagram is a graphical
representation of the functional requirements of a system, showing the
interactions between the system and its users or other external systems.
It is one of the most commonly used diagrams in the Unified Modelling
Language (UML).
Use case diagrams are used to capture the behaviour of a system from
the user's perspective. They are helpful in identifying the different actors
(i.e., users, external systems) that interact with the system and the
various use cases (i.e., tasks, activities) that the system can perform to
fulfil the users' requirements.
The main components of a use case diagram are:
 Actors: These are the users or external systems that interact with
the system to perform various tasks or activities. They are
represented by stick figures.
 Use Cases: These are the tasks or activities that the system can
perform to fulfil the requirements of the users or external systems.
They are represented by ovals.
 Relationships: These are the associations between the actors and
use cases, showing how they interact with each other. The
relationships are represented by lines connecting the actors and use
cases.

Unit II
1.Explain what is need of System Design?
Ans - System design is an essential phase in software development that
involves creating a detailed specification of the system's architecture,
components, modules, and interfaces. The main purpose of system design
is to convert the requirements specified in the earlier phases of software
development into a blueprint for constructing the software system.
The following are some of the reasons why system design is needed in
software development:
To Ensure the Feasibility of the System: System design ensures the
technical feasibility of the system by examining the requirements and
proposing a solution that meets those requirements. The design should be
feasible from the perspective of technology, resources, and timelines.
To Achieve a Complete and Consistent System: System design helps
in identifying all the components, interfaces, and processes required to
build a software system. It ensures that the system is complete and
consistent, with no conflicting or redundant components.
To Optimize the System's Performance: System design helps in
optimizing the performance of the software system. It ensures that the
system has a well-defined architecture, appropriate modules, and efficient
algorithms to achieve the desired performance.

2.Write a Short note on architecture design.


Ans - Architecture design in software engineering is the process of
creating a high-level structure and framework of a software system that
defines its components, interfaces, and interactions. It involves identifying
the key design decisions and trade-offs that will affect the system's
quality attributes, such as performance, reliability, maintainability, and
security. The main objective of architecture design is to ensure that the
software system meets the functional and non-functional requirements of
the stakeholders and is aligned with the overall business goals.
The following are the key activities involved in architecture
design:
Requirements Analysis: The first step in architecture design is to
analyse the requirements of the software system. This includes identifying
the functional and non-functional requirements of the system, the
stakeholders, and their needs.
Design Conceptualization: Based on the requirements analysis, the
architecture design process involves conceptualizing the high-level design
of the system. This includes identifying the key components, interfaces,
and interactions of the system.
Architecture Modelling: Once the high-level design is conceptualized,
the architecture modelling process involves creating detailed models of
the system's architecture. This includes using modelling tools and
techniques to create diagrams, such as component diagrams, deployment
diagrams, and sequence diagrams.
Architecture Evaluation: The final step in architecture design is to
evaluate the architecture's quality attributes, such as performance,
reliability, and security, to ensure that the design meets the requirements
of the stakeholders.

3.What is Abstraction and its types.


Ans - Abstraction is a fundamental concept in software engineering that
involves focusing on essential features of an entity while ignoring its
irrelevant details. It is the process of generalizing complex systems into
simpler models that are easier to understand and manage.
There are two types of abstraction in software engineering:
Data Abstraction: Data abstraction is a technique that focuses on the
essential properties of data while ignoring its implementation details. It
provides a simplified view of data to the users and hides the complex
implementation details of the data structures. For example, in object-
oriented programming, encapsulation is a form of data abstraction that
hides the internal state of an object from the outside world and only
exposes the necessary methods to interact with it.
Control Abstraction: Control abstraction is a technique that focuses on
the essential control structures of a program while ignoring the details of
their implementation. It provides a simplified view of control structures to
the users and hides the complexities of the underlying code. For example,
functions and methods are forms of control abstraction that hide the
details of the code inside them and only expose a simplified interface to
the users.

4.Explain COCOCO Model.


Ans - The COCOMO model, which stands for Constructive Cost Model, is a
software cost estimation model developed by Barry Boehm in the late
1970s. The model is based on the assumption that the effort required to
develop a software system is proportional to the size and complexity of
the system.
The COCOMO model is based on three different levels of software
development projects:
Basic COCOMO: This level is used for estimating the cost of small
projects that have less than 2,000 lines of code. The model estimates the
cost based on the number of lines of code and the complexity of the
software system.
Intermediate COCOMO: This level is used for estimating the cost of
medium-sized projects that have between 2,000 and 100,000 lines of
code. The model estimates the cost based on the number of lines of code,
the complexity of the software system, and the development
environment.
Advanced COCOMO: This level is used for estimating the cost of large
projects that have more than 100,000 lines of code. The model estimates
the cost based on the number of lines of code, the complexity of the
software system, and various factors such as hardware constraints,
software reliability, and development team experience.
The COCOMO model uses mathematical formulas to estimate the effort
required to develop a software system. The model takes into account
various factors such as the development team's experience, the
complexity of the software system, the development environment, and
the software's reliability requirements.

5.Difference between Object Oriented Model and


Function Oriented Model.
Ans -

6.Write a short note on Cost Estimation


Techniques.
Ans - Cost estimation is an important aspect of software project
management that involves predicting the resources required to complete
a software project within a defined scope and timeline. There are various
cost estimation techniques that are used in software engineering,
including:
1. Expert judgment: This technique involves seeking input from
experts who have experience with similar projects. Experts can
provide insights on the potential costs involved in different stages of
the project and can provide estimates based on their past
experiences.
2. Analogous estimation: This technique involves using historical
data from previous projects to estimate the cost of a new project.
This is based on the assumption that similar projects will have
similar costs, and can be useful when historical data is available and
the new project has similar requirements.
3. Bottom-up estimation: This technique involves breaking down the
project into smaller components and estimating the cost of each
component. The estimates are then aggregated to provide an
overall project cost estimate. This approach is useful for projects
with a well-defined scope and requirements.
4. Three-point estimation: This technique involves estimating the
most likely, best-case, and worst-case scenarios for each task in the
project. The estimates are then combined using a weighted average
to provide an overall cost estimate. This approach takes into
account the uncertainty and risk associated with the project.

7.What is Cyclomatic Complexity.


Ans - Cyclomatic complexity is a software engineering metric used to
measure the complexity of a software program. It is calculated by
analysing the number of possible independent paths through the
program's control flow graph.
In other words, cyclomatic complexity is a measure of the number of
unique paths through the program's code. The higher the cyclomatic
complexity, the more complex the program is likely to be, and the more
difficult it may be to understand, test, and maintain.
Cyclomatic complexity is often used to identify areas of code that are
particularly complex and may be more prone to errors or defects. It can
also help to identify potential performance issues and can be used to help
optimize code.
There are various tools and techniques available to calculate the
cyclomatic complexity of a software program, including manual analysis
and automated tools. Most programming languages have tools or libraries
that can help to calculate the cyclomatic complexity of the code.

8.What type of Metric use for Software Quality.


Ans - A software metric is a measure of software characteristics which are
measurable or countable. Software metrics are valuable for many reasons,
including measuring software performance, planning work items,
measuring productivity, and many other uses.
Within the software development process, many metrics are that are all
connected. Software metrics are similar to the four functions of
management: Planning, Organization, Control, or Improvement.
Types of Metrics
Internal metrics: Internal metrics are the metrics used for measuring
properties that are viewed to be of greater importance to a software
developer. For example, Lines of Code (LOC) measure.
External metrics: External metrics are the metrics used for measuring
properties that are viewed to be of greater importance to the user, e.g.,
portability, reliability, functionality, usability, etc.
Hybrid metrics: Hybrid metrics are the metrics that combine product,
process, and resource metrics. For example, cost per FP where FP stands
for Function Point Metric.
Project metrics: Project metrics are the metrics used by the project
manager to check the project's progress. Data from the past projects are
used to collect various metrics, like time and cost; these estimates are
used as a base of new software.

9.List the Basic Principle of Project Scheduling.


Ans - The basic principles of project scheduling include:
 Defining project scope: Clearly define the project objectives,
requirements, and constraints to ensure that the project stays on
track and meets its goals.
 Creating a work breakdown structure (WBS): Break down the
project into smaller, more manageable tasks and subtasks to ensure
that each component is properly planned and executed.
 Sequencing tasks: Determine the order in which tasks must be
completed, taking into account any dependencies or constraints.
 Estimating task duration: Estimate the amount of time required
to complete each task, taking into account any factors that may
impact the duration, such as resources, skills, and risks.
 Assigning resources: Assign resources to each task, taking into
account their availability, skills, and workload.
 Developing a project schedule: Use the information gathered
from the previous steps to develop a detailed project schedule,
including start and end dates for each task, and overall project
duration.
 Monitoring and controlling the project: Continuously monitor
progress against the project schedule, making adjustments as
necessary to ensure that the project stays on track.
 Managing project risks: Identify and assess potential risks that
may impact the project schedule, and develop contingency plans to
mitigate these risks.
 Communicating with stakeholders: Keep stakeholders informed
about project progress and any changes to the project schedule, to
ensure that everyone is on the same page and any issues can be
addressed in a timely manner.

Unit III
1.Explain Software Risk. Explain different
categories of risk.
Ans - Software Risk refers to the probability of failing to achieve the
desired software objectives within defined project constraints. Software
Risk involves uncertain events or conditions that could adversely affect
software quality, project timing, or the overall success of a project. Risk in
software projects is an uncertain event or condition that, if it occurs, has a
positive or negative effect on at least one project objective, such as time,
cost, scope, or quality.
There are several categories of software risk, including:
Technical Risk: This category of risk is related to the technical aspects of
software development, such as programming languages, software
architecture, hardware, and database management. Technical risks can
arise due to insufficient technical expertise, untested software modules,
or complex system integrations.
Project Management Risk: These risks arise due to inadequate
planning, poor resource allocation, lack of communication, and
management issues. Project management risks can lead to delays, cost
overruns, and failure to meet project objectives.
Operational Risk: This category of risk is related to the operation and
maintenance of software systems. Operational risks can arise from issues
such as inadequate system monitoring, lack of disaster recovery planning,
and insufficient training for system administrators.
Security Risk: These risks arise due to vulnerabilities in software
systems that can be exploited by attackers. Security risks can lead to data
breaches, unauthorized access to systems, and other security threats.
Market Risk: These risks arise from changes in market conditions, such
as changes in customer demand, technological advances, or competition.
Market risks can lead to reduced demand for software products or
services, resulting in lower revenue and profitability.

2.What is Quality. Why Software Quality is


important.
Ans - Quality refers to the degree of excellence or superiority of a product
or service. In software engineering, quality refers to the characteristics
and features of a software product that determine its ability to meet user
needs and expectations.
Software quality is important because it determines the success of a
software product. High-quality software is efficient, reliable, easy to use,
and meets user requirements. It is also less prone to errors and
vulnerabilities that could affect the performance or security of the
software.
The importance of software quality can be summarized as follows:
Customer satisfaction: High-quality software meets user needs and
expectations, which leads to greater customer satisfaction.
Reduced development costs: By building quality into software from the
outset, software development teams can reduce the need for costly
rework and maintenance.
Improved efficiency and productivity: Quality software is more
efficient and reliable, which improves user productivity and reduces
downtime.
Enhanced reputation: High-quality software earns a positive reputation
among users and stakeholders, which can lead to greater adoption and
revenue.
Compliance: Quality software meets industry standards and regulatory
requirements, which ensures compliance with legal and ethical standards.

3.What is Risk Identification. Explain Method


involved in it.
Ans - Risk Identification is the process of identifying potential risks or
threats that may arise during the development, deployment, or use of a
software product. Risk identification is a crucial part of risk management
in software engineering as it helps to identify potential risks early on in
the software development process before they become serious issues.
There are several methods involved in risk identification:
Brainstorming: This is a group discussion technique that involves
brainstorming potential risks and threats. Team members can identify and
list all potential risks and threats in a structured manner, and then
evaluate and prioritize them based on their likelihood and impact.
Checklists: Risk checklists are lists of common risks and threats that
have been identified in previous software projects. These checklists can
be used as a starting point for identifying potential risks and threats.
SWOT Analysis: SWOT analysis involves identifying the Strengths,
Weaknesses, Opportunities, and Threats associated with a software
project. By analyzing these factors, software development teams can
identify potential risks and threats that could affect the success of the
project.
Expert Judgment: Expert judgment involves consulting with subject
matter experts, such as software engineers, security professionals, and
business analysts, to identify potential risks and threats. These experts
can provide valuable insights based on their experience and knowledge.

4. Write Short note on Six Sigma.


Ans - Six-Sigma is a set of methods and tools for process improvement. It
was introduced by Engineer Sir Bill Smith while working at Motorola in
1986. In the 1980s, Motorola was developing Quasar televisions which
were famous, but the time there was lots of defects which came up on
that due to picture quality and sound variations.
The term "six sigma" refers to a statistical measure of how far a process
deviates from perfection. A process with six sigma quality has a defect
rate of 3.4 defects per million opportunities (DPMO), which is considered a
high level of quality.
The Six Sigma methodology involves five phases: Define, Measure,
Analyse, Improve, and Control (DMAIC). In the Define phase, the project
goals and customer requirements are identified. In the Measure phase,
the current process performance is measured and baseline data is
collected. In the Analyse phase, the data is analysed to identify the root
causes of defects and variability. In the Improve phase, solutions are
developed and implemented to address the root causes. In the Control
phase, the solutions are monitored and controlled to ensure that the
process remains stable and within the target performance range.

5.Difference between black box testing and white


box testing.
Ans –

Black Box Testing White Box Testing

It is a way of software testing in It is a way of testing the software


which the internal structure or in which the tester has knowledge
the program or the code is about the internal structure or the
hidden and nothing is known code or the program of the
about it. software.

Implementation of code is not Code implementation is necessary


needed for black box testing. for white box testing.

It is mostly done by software It is mostly done by software


testers. developers.

No knowledge of Knowledge of implementation is


implementation is needed. required.
Black Box Testing White Box Testing

It can be referred to as outer or It is the inner or the internal


external software testing. software testing.

It is a functional test of the It is a structural test of the


software. software.

This testing can be initiated This type of testing of software is


based on the requirement started after a detail design
specifications document. document.

No knowledge of programming It is mandatory to have knowledge


is required. of programming.

It is the behaviour testing of the It is the logic testing of the


software. software.

6.Explain bug life Cycle in Detail.


Ans – Defect life cycle, also known as Bug Life cycle is the journey of a
defect cycle, which a defect goes through during its lifetime. It varies from
organization to organization and also from project to project as it is
governed by the software testing process and also depends upon the tools
used. The following are the typical stages of the bug life cycle:
New - Potential defect that is raised and yet to be validated.
Assigned - Assigned against a development team to address it but not
yet resolved.
Active - The Defect is being addressed by the developer and
investigation is under progress. At this stage there are two possible
outcomes; viz - Deferred or Rejected.
Test - The Defect is fixed and ready for testing.
Verified - The Defect that is retested and the test has been verified by
QA.
Closed - The final state of the defect that can be closed after the QA
retesting or can be closed if the defect is duplicate or considered as NOT a
defect.
Reopened - When the defect is NOT fixed, QA reopens/reactivates the
defect.
Deferred - When a defect cannot be addressed in that particular cycle it
is deferred to future release.
Rejected - A defect can be rejected for any of the 3 reasons; viz -
duplicate defect, NOT a Defect, Non-Reproducible.

7.Write Short note on CMM Model.


Ans - CMM was developed by the Software Engineering Institute (SEI) at
Carnegie Mellon University in 1987.
It is not a software process model. It is a framework that is used to
analyse the approach and techniques followed by any organization to
develop software products.
It also provides guidelines to further enhance the maturity of the process
used to develop those software products.
It is based on profound feedback and development practices adopted by
the most successful organizations worldwide.
This model describes a strategy for software process improvement that
should be followed by moving through 5 different levels.
Each level of maturity shows a process capability level.

8. Difference between verification and validation


Ans -

Verification Validation

It includes checking documents, It includes testing and validating


design, codes and programs. the actual product.

Verification is the static testing. Validation is the dynamic testing.

It does not include the execution It includes the execution of the


of the code. code.
Verification Validation

Methods used in verification are Methods used in validation are


reviews, walkthroughs, Black Box Testing, White Box
inspections and desk-checking. Testing and non-functional testing.

It checks whether the software


It checks whether the software
meets the requirements and
conforms to specifications or not.
expectations of a customer or not.

It can only find the bugs that could


It can find the bugs in the early
not be found by the verification
stage of the development.
process.

Alpha testing is a type of software testing performed to identify bugs


before releasing the product to real users or to the public. Alpha Testing is
one of the user acceptance testing’s
Beta Testing is performed by real users of the software application in a
real environment. Beta testing is one of the types of User Acceptance
Testing.
Stress Testing is a software testing technique that determines the
robustness of software by testing beyond the limits of normal operation

You might also like