SE Uquestion Bank 1 41
SE Uquestion Bank 1 41
SE Uquestion Bank 1 41
PATILINSTITUTEOFTECHNOLOGYPIMPRI,PUNU-18
DEPARTMENT OF COMPUTER ENGINEERING
QUESTION BANK
Class:S.E. (Comp.)
UNIT 1
Q.1 What are the various umbrella activities applied throughout a software project?
Umbrella Activities:
In addition to the framework activities, the process model defines a set of umbrella activities that
persist across the entire software process. These umbrella activities include:
When plan, tasks, models all have been done then a network of software engineering tasks that will
enable to get the job done on time will have to be created.
Formal technical reviews: This includes reviewing the techniques that has been used in the project.
Software quality assurance: This is very important to ensure the quality measurement of each part to
ensure them.
Software configuration management: Software configuration management (SCM) is a set of activities
designed to control change by identifying the work products that are likely to change, establishing
relationships among them, defining mechanisms for managing different versions of these work
products.
Document preparation and production: All the project planning and other activities should be hardly
copied and the production get started here.
Re-usability management: This includes the backing up of each part of the software project they can
be corrected or any kind of support can be given to them later to update or upgrade the software at
user/time demand.
Measurement & Metrics: This will include all the measurement of every aspects of the software
project.
Risk management: Risk management is a series of steps that help a software team to understand and
manage uncertainty. It’s a really good idea to identify it, assess its probability of occurrence, estimate
its impact, and establish a contingency plan that─ ‘should the problem actually occur’.
Each of these umbrella activities is defined by a set of tasks that are adapted to the project type and
degree of rigor with which software engineering is to be applied.
Q.2 What are the elements of waterfall process model? State its merit & demerits
The waterfall model is a sequential (non-iterative) design process, used in software development
processes, in which progress is seen as flowing steadily downwards (like a waterfall) through the
phases of conception, initiation, analysis, design, construction, testing, production/implementation and
maintenance.
The waterfall development model originates in the manufacturing and construction industries: highly
structured physical environments in which after-the-fact changes are prohibitively costly, if not
impossible. Because it was created in a time when no formal software development methodologies
existed, this hardware-oriented model was simply adapted for software development.
Evolutionary models are iterative. They are characterized in a manner that enables software engineers
to develop increasingly more complete versions of the software.
The Incremental Model
The incremental model combines elements of the linear sequential model (applied repetitively) with
the iterative philosophy of prototyping. , the incremental model applies linear sequences in a staggered
fashion as calendar time
progresses.
The Spiral Model
The spiral model, originally proposed by Boehm [BOE88], is an evolutionary software process model
that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear
sequential model. It provides the potential for rapid development of incremental versions of the
software. Using the spiral model, soft-ware is developed in a series of incremental releases. During
early iterations, the incremental release might be a paper model or prototype. During later iterations,
increasingly more complete versions of the engineered system are produced.
The word ‘agile’ means −
Able to move your body quickly and easily.
Able to think quickly and clearly.
In business, ‘agile’ is used for describing ways of planning and doing work wherein it is understood
that making changes as needed is an important part of the job. Business‘agililty’ means that a company
is always in a position to take account of the market changes.
characteristics of Agility
Following are the characteristics of Agility −
Agility in Agile Software Development focuses on the culture of the whole team with multi-
discipline, cross-functional teams that are empowered and selforganizing.
It fosters shared responsibility and accountability.
Facilitates effective communication and continuous collaboration.
The whole-team approach avoids delays and wait times.
Frequent and continuous deliveries ensure quick feedback that in in turn enable the team align
to the requirements.
Collaboration facilitates combining different perspectives timely in implementation, defect
fixes and accommodating changes.
Progress is constant, sustainable, and predictable emphasizing transparency.
Embrace Change
A key assumption of Extreme Programming is that the cost of changing a program can be held mostly
constant over time.
This can be achieved with −
Emphasis on continuous feedback from the customer
Short iterations
Design and redesign
Coding and testing frequently
Eliminating defects early, thus reducing costs
Keeping the customer involved throughout the development
Delivering working product to the customer
Software engineering tools provide automated or semiautomated support for the process and the
methods. When tools are integrated so that information created by one tool can be used by another, a
system for the support of software development, called computer-aided software engineering, is
established.
In reality, there is no fundamental difference between the classic life cycle and the V-model. The V-
model provides a way of visualizing how verification and validation actions are applied to earlier
engineering work.
Q7) Explain how incremental model of software works
There are many situations in which initial software requirements are reasonably well defined, but the
overall scope of the development effort precludes a purely linear process. In addition, there may be a
compelling need to provide a limited set of software functionality to users quickly and then refine and
expand on that functionality in
later software releases. In such cases, you can choose a process model that is designed to produce the
software in increments.
The incremental model combines elements of linear and parallel process flows discussed in Section
2.1. Referring to Figure , the incremental model applies linear sequences in a staggered fashion as
calendar time progresses. Each linear sequence produces deliverable “increments” of the software
[McD93] in a manner that is similar to the increments produced by an evolutionary process flow
(Section 2.3.3).
For example, word-processing software developed using the incremental paradigm might deliver basic
file management, editing, and document production functions in the first increment; more sophisticated
editing and document production
capabilities in the second increment; spelling and grammar checking in the third increment; and
advanced page layout capability in the fourth increment. It should be
noted that the process flow for any increment can incorporate the prototyping paradigm.
When an incremental model is used, the first increment is often a core product. That is, basic
requirements are addressed but many supplementary features (some
known, others unknown) remain undelivered. The core product is used by the customer (or undergoes
detailed evaluation). As a result of use and/or evaluation, a
plan is developed for the next increment. The plan addresses the modification of the core product to
better meet the needs of the customer and the delivery of additional features and functionality. This
process is repeated following the delivery of each incremental process model focuses on the delivery
of an operational product with each increment. Early increments are stripped-down versions of the
final product, but they do provide capability that serves the user and also provide a platform for
evaluation by the user.
The prototyping paradigm begins with communication. You meet with other stakeholders to define
the overall objectives for the software, identify whatever requirements are known, and outline areas
where further definition is mandatory. A prototyping iteration is planned quickly, and modeling (in the
form of a “quick design”) occurs. A quick design focuses on a representation of those aspects of the
software that will be visible to end users (e.g., human interface layout or output display
Both stakeholders and software engineers like the prototyping paradigm. Users get a feel for the actual
system, and developers get to build something immediately. et, prototyping can be problematic for the
following reasons:
Stakeholders see what appears to be a working version of the software, unaware that the prototype is
held together haphazardly, unaware that in the rush to get it working you haven’t considered overall
software quality or long-term maintainability. When informed that the product must be rebuilt so that
high levels of quality can be maintained, stakeholders cry foul and demand that “a few fixes” be applied
to make the prototype a working product. Too often, software development management relents. As a
software engineer, you often make implementation compromises in order to get a prototype working
quickly. An inappropriate operating system or programming language may be used simply because it
is available and known; an inefficient algorithm may be implemented simply to demonstrate capability.
After a time, you may become comfortable with these choices and forget all the reasons why they were
inappropriate. The less-than-ideal choice has now become an integral part of the system.
The spiral development model is a risk-driven process model generator that is used to guide multi-
stakeholder concurrent engineering of software intensive systems. It has two main distinguishing
features. One is a cyclic approach for incrementally growing a system’s degree of definition and
implementation while decreasing its degree of risk. The other is a set of anchor point milestones for
ensuring stakeholder commitment to feasible and mutually satisfactory system solutions.
Using the spiral model, software is developed in a series of evolutionary releases. During early
iterations, the release might be a model or prototype. During later iterations, increasingly more
complete versions of the engineered system are produced.
A spiral model is divided into a set of framework activities defined by the software engineering team.
For illustrative purposes, I use the generic framework activities
Each of the framework activities represent one segment of the spiral path illustrated in Figure 2.7. As
this evolutionary process begins, the software team performs activities that are implied by a circuit
around the spiral in a clockwise direction beginning at the center.
Risk is considered as each revolution is made. Anchor point milestones—a combination of work
products and conditions that are attained along the path of the spiral—are noted for each evolutionary
pass.
The first circuit around the spiral might result in the development of a product specification;
subsequent passes around the spiral might be used to develop a prototype and then progressively more
sophisticated versions of the software. Each pass through the planning region results in adjustments
to the project plan. Cost and schedule are adjusted based on feedback derived from the customer after
delivery. In addition, the project manager adjusts the planned number of iterations required To
complete the software.
The concurrent development model, sometimes called concurrent engineering, allows a software team
to represent iterative and concurrent elements of any of the process models described in this chapter.
For example, the modeling activity defined for the spiral model is accomplished by invoking one or
more of the following software engineering actions: prototyping, analysis, and design.
Figure provides a schematic representation of one software engineering activity within the modeling
activity using a concurrent modeling approach. The activity—modeling—may be in any one of the
states noted at any given time. Similarly,
customer indicates that changes in requirements must be made, the modeling activity moves from the
under development state into the awaiting changes state. Concurrent modeling defines a series of
events that will trigger transitions from state to state for each of the software engineering activities,
actions, or tasks. For example, during early stages of design (a major software engineering action that
occurs during the modeling activity), an inconsistency in the requirements model is uncovered. This
generates the event analysis model correction, which will trigger the requirements analysis action from
the done state into the awaiting changes state. Concurrent modeling is applicable to all types of
software development and provides an accurate picture of the current state of a project. Rather than
confining software engineering activities, actions, and tasks to a sequence of events, it defines a
process network. Each activity, action, or task on the network exists simultaneously with other
activities, actions, or tasks. Events generated at one point in the process network trigger transitions
among the states.
Software Engineering is the establishment and the use of sound engineering principle
OR
Software engineering is a discipline in which theories, methods and tools are applied
OR
∑ Tools
∑ Methods
∑ Process
∑ A Quality Focus
System software
Application software
Embedded software
Validation
Verification
1. Are we building the product right? 1. Are we building the right product?
with specification.
Software life cycle is the period of time beginning with a concept for a software
product and ending whenever the software is no longer available for use.
1. Prescriptive process model
1. Incremental Model
2. RAD Model
1. Prototyping model
2. Spiral Model
a. Business modeling
b. Data modeling
c. Process modeling
d. Application generation
e. Testing
∑Prototyping model is used when a customer defines a set of objectives for software
∑ If the prototype is built the developer attempts to use existing program fragments to
Q19) which type of application would suit RAD model? Suitability of RAD
The following criteria can be evaluated to determine whether the development would suit a RAD style:
Project Scope: If the scope is focused and the business objectives are well defined and narrow, then
the project is suitable for RAD. Conversely if the scope of the business objectives is obscure or broad
then the project is unsuitable for RAD. Project Data: Data for the project already exists (completely or
in part). The project largely comprises analysis or reporting of the data then the project is suitable for
RAD. However, if the Data is complex and voluminous and therefore must be analysed, designed and
created within the scope of the project, then the project is unsuitable for RAD. Project Decisions: If
project or development decisions can be made by a small
number of people who are available and, preferably co-located, then it is suitable for RAD. If many
people must be involved in the decisions on the project, the decision makers are not available on a
timely basis or they are geographically dispersed, then the project is unsuitable for RAD. Project Team:
If the project team is small (preferably six people or fewer) then it is suitable for RAD; but if the
project team is large or there are multiple teams whose work needs to be coordinated, then it is
unsuitable for RAD. Project Technical Architecture: When the technical architecture is defined and
clear and the key technology components are in place and tested, the architecture is suitable for RAD.
Therefore if the technical architecture is unclear and much of the technology will be used for the first
time within the project, then it is unsuitable for RAD.
Project Technical Requirements: If the project technical requirements (response times, throughput,
database sizes, etc) are reasonable and well within the capabilities of the technology being used, then
the project is suitable for RAD. In fact targeted performance should be less than 70% of the published
limits of the technologies. However if the project technical requirements are tight for the equipment to
be used, then the project is unsuitable for RAD
Q20) what is meant by rapid prototyping? Explain how do you incorporate such a scheme in the
software project management?
Rapid Prototyping (RP) can be defined as a group of techniques used to quickly fabricate a scale model
of a part or assembly using three-dimensional computer aided design (CAD) data. Rapid Prototyping
has also been referred to as solid free-form manufacturing, computer automated manufacturing, and
layered manufacturing. RP has obvious use as a vehicle for visualization. In addition, RP models can
be used for testing, such as when an airfoil shape is put into a wind tunnel. RP models can be used to
create male models for tooling, such as silicone rubber molds and investment casts. In some cases, the
RP part can be the final part, but typically the RP material is not strong or accurate enough. When the
RP material is suitable, highly convoluted shapes (including parts nested within parts) can be produced
because of the nature of RP.
UNIT 2 :
Q21) Explain different tasks are to be carried out in Software Requirement Engineering [3]
The process of collecting the software requirement from the client then understand, evaluate and
1. Inception
Inception is a task where the requirement engineering asks a set of questions to establish a
software process.
In this task, it understands the problem and evaluates with the proper solution.
It collaborates with the relationship between the customer and the developer.
The developer and customer decide the overall scope and the nature of the question.
2. Elicitation
Elicitation means to find the requirements from anybody.
The requirements are difficult because the following problems occur in elicitation.
Problem of scope: The customer give the unnecessary technical detail rather than clarity of the
overall system objective.
Problem of understanding: Poor understanding between the customer and the developer regarding
various aspect of the project like capability, limitation of the computing environment.
Problem of volatility: In this problem, the requirements change from time to time and it is difficult
while developing the project.
3. Elaboration
In this task, the information taken from user during inception and elaboration and are expanded
and refined in elaboration.
Its main task is developing pure model of software using functions, feature and constraints of
a software.
4. Negotiation
In negotiation task, a software engineer decides the how will the project be achieved with
limited business resources.
To create rough guesses of development and access the impact of the requirement on the project
cost and delivery time.
5. Specification
In this task, the requirement engineer constructs a final work product.
The work product is in the form of software requirement specification.
In this task, formalize the requirement of the proposed software such as informative, functional
and behavioral.
The requirement are formalize in both graphical and textual formats.
6. Validation
The work product is built as an output of the requirement engineering and that is accessed for
the quality through a validation step.
The formal technical reviews from the software engineer, customer and other stakeholders
helps for the primary requirements validation mechanism.
7. Requirement management
It is a set of activities that help the project team to identify, control and track the requirements
and changes can be made to the requirements at any time of the ongoing project.
These tasks start with the identification and assign a unique identifier to each of the
requirement.
After finalizing the requirement traceability table is developed.
The examples of traceability table are the features, sources, dependencies, subsystems and
interface of the requirement.
Functional requirements
Functional requirements specifies a function that a system or system component must be able
to perform. It can be documented in various ways. The most common ones are written
descriptions in documents, and use cases.
Use cases can be textual enumeration lists as well as diagrams, describing user actions. Each
use case illustrates behavioural scenarios through one or more functional requirements. Often,
though, an analyst will begin by eliciting a set of use cases, from which the analyst can derive
the functional requirements that must be implemented to allow a user to perform each use case.
Functional requirements is what a system is supposed to accomplish. It may be
Calculations
Technical details
Data manipulation
Data processing
Other specific functionality
A typical functional requirement will contain a unique name and number, a brief summary, and
a rationale. This information is used to help the reader understand why the requirement is
needed, and to track the requirement through the development of the system.
Non-functional requirements
Non-functional requirements are any other requirement than functional requirements. This are
the requirements that specifies criteria that can be used to judge the operation of a system,
rather than specific behaviours.
Non-functional requirements are in the form of "system shall be ", an overall property of the
system as a whole or of a particular aspect and not a specific function. The system's overall
properties commonly mark the difference between whether the development project has
succeeded or failed.
Non-functional requirements - can be divided into two main categories:
Execution qualities, such as security and usability, which are observable at run time.
Evolution qualities, such as testability, maintainability, extensibility and scalability,
which are embodied in the static structure of the software system.
Non-functional requirements place restrictions on the product being developed, the
development process, and specify external constraints that the product must meet.
The IEEE-Std 830 - 1993 lists 13 non-functional requirements to be included in a Software
Requirements Document.
1. Performance requirements
2. Interface requirements
3. Operational requirements
4. Resource requirements
5. Verification requirements
6. Acceptance requirements
7. Documentation requirements
8. Security requirements
9. Portability requirements
10. Quality requirements
11. Reliability requirements
12. Maintainability requirements
13. Safety requirements
Q.23) Explain four desirable characteristics of good software requirement specification document
Unambiguous
Testable (verifiable)
Clear (concise, terse, simple, precise)
Correct
Understandable
Feasible (realistic, possible)
Independent
Atomic
Necessary
Implementation-free (abstract)
Besides these criteria for individual requirements, three criteria apply to the set of requirements. The
set should be
Consistent
Nonredundant
Complete
[2]
Q.24) Distinguish requirement negotiation and validation? States its technique [3]
Techniques:
Commenting
Inspections
Walkthroughs
Supporting techniques
Perspective-based reading
Prototyping
Validation checklists
Requirement Engineering
Feasibility Study
Requirement Gathering
Feasibility study
When the client approaches the organization for getting the desired product developed, it comes up
with rough idea about what all functions the software must perform and which all features are expected
from the software. Referencing to this information, the analysts does a detailed study about
whether the desired system and its functionality are feasible to develop. This feasibility study is
focused towards goal of the organization. This study analyzes whether the software product can be
practically materialized in terms of implementation, contribution of project to organization, cost
constraints and as per values and objectives of the organization. It explores technical aspects of the
project and product such as usability, maintainability, productivity and integration ability. The output
of this phase should be a feasibility study report that should contain adequate comments and
recommendations for management about whether or not the project should be undertaken.
Requirement Gathering
If the feasibility report is positive towards undertaking the project, next phase starts with gathering
requirements from the user. Analysts and engineers communicate with the client and end-users to know
their ideas on what the software should provide and which features they want the software to include.
SRS is a document created by system analyst after the requirements are collected from various
stakeholders. SRS defines how the intended software will interact with hardware, externa linterfaces,
speed of operation, response time of system, portability of software across various platforms,
The requirements received from client are written in natural language. It is the responsibility of system
analyst to document the requirements in technical language so that they can be comprehended and
useful by the software development team. SRS should come up with following features:
Technical requirements are expressed in structured language, which is used inside the organization.
After requirement specifications are developed, the requirements mentioned in this document are
validated. User might ask for illegal, impractical solution or experts may interpret the requirements
incorrectly. This results in huge increase in cost if not nipped in the bud. Requirements can be checked
Requirements gathering - The developers discuss with the client and end users and know their
expectations from the software.
Organizing Requirements - The developers prioritize and arrange the requirements in order of
importance, urgency and convenience.
Negotiation & discussion - If requirements are ambiguous or there are some conflicts in
requirements of various stakeholders, if they are, it is then negotiated and discussed with
stakeholders. Requirements may then be prioritized and reasonably compromised.
The requirements come from various stakeholders. To remove the ambiguity and conflicts, they
are discussed for clarity and correctness. Unrealistic requirements are compromised
reasonably.
Documentation - All formal & informal, functional and non-functional requirements are
documented and made available for next phase processing.
Interviews
Interviews are strong medium to collect requirements. Organization may conduct several types of
interviews such as:
Structured (closed) interviews, where every single information to gather is decided in advance,
they follow pattern and matter of discussion firmly.
Non-structured (open) interviews, where information to gather is not decided in advance, more
flexible and less biased.
Oral interviews
Written interviews
One-to-one interviews which are held between two persons across the table.
Group interviews which are held between groups of participants. They help to uncover any
missing requirement as numerous people are involved.
Surveys
Organization may conduct surveys among various stakeholders by querying about their expectation
and requirements from the upcoming system.
Questionnaires
A document with pre-defined set of objective questions and respective options is handed over to all
stakeholders to answer, which are collected and compiled.
A shortcoming of this technique is, if an option for some issue is not mentioned in the questionnaire,
the issue might be left unattended.
Task analysis
Team of engineers and developers may analyze the operation for which the new system is required. If
the client already has some software to perform certain operation, it is studied and requirements of
proposed system are collected.
Domain Analysis
Every software falls into some domain category. The expert people in the domain can be a great help
to analyze general and specific requirements.
Brainstorming
An informal debate is held among various stakeholders and all their inputs are recorded for further
requirements analysis.
Prototyping
Prototyping is building user interface without adding detail functionality for user to interpret the
features of intended software product. It helps giving better idea of requirements. If there is no software
installed at client’s end for developer’s reference and the client is not aware of its own requirements,
the developer creates a prototype based on initially mentioned requirements. The prototype is shown
to the client and the feedback is noted. The client feedback serves as an input for requirement gathering.
Observation
Team of experts visit the client’s organization or workplace. They observe the actual working of the
existing installed systems. They observe the workflow at client’s end and how execution problems are
dealt. The team itself draws some conclusions which aid to form requirements expected from the
software.
system.
*Data design
*Architectural design
*Interface design
Q42) What are the quality parameters considered for effective modular design?
v. Layered architecture
attributes,Example
Attributes - name a data object, describe its characteristics, make reference to another object.
Relationships – Indicate the manner in which data objects are connected to one another. Example
diagram
o One-to-one cardinality.
o One-to-many cardinality.
o Many-to-Many cardinality.
∑ Entity/Relationship Diagrams
Components of ER Diagram
∑ Abstraction
ß Data abstraction
ß Control abstraction
∑ Refinement
∑ Modularity
ß Modular decomposability
ß Modular composability
ß Modular Understandability
ß Modular Continuity
ß Modular protection
∑ Software Architecture
∑ Control Hierarchy
∑ Structural Partitioning
ß Horizontal partitioning
ß Vertical partitioning
∑ Data Structure
∑ Software Procedure
∑ Information Hiding
i. Data object – The data objects are identified and relationship among various data objects
can be represented using ERD or data dictionaries.
ii. Databases – Using software design model, the data models are translated into data
structures and data bases at the application level.
Iii. Data warehouses – At the business level useful information I s identified from various
databases and the data warehouses are created.
∑ The design should minimize the intellectual distance between the software and problem as it exists
∑ The design should be structured to degrade gently, even when aberrant data, events or operating
∑ The design should be assessed for quality as it is being created, not after the fact.
∑ Diagram
3.Interface construction
4.Interface validation
Design process is a sequence of steps carried through which the requirement are translated into a
system or software model
UNIT 4:
Indirect metrics –It refers to the aspects that are not immediately quantifiable or measurable.
Example –functionality of a program.
Parkinson‟s Law –
The cost is determined by available resources rather than by objective assessment. Pricing to win –
The project costs whatever the customer ready to spend it.
Q62). What is COCOMO model?
COnstructive COst MOdel is a cost model, which gives the estimate of number of man-months it
will take to develop the software product.
The tester must understand the software and how it might fail
Tests that have the highest likelihood of uncovering a whole class of errors should be used
Each test should be executed separately; combining a series of tests could cause side effects and mask
certain errors
Black-box testing
Knowing the specified function that a product has been designed to perform, test to see if that
function is fully operational and error free
White-box testing
Knowing the internal workings of a product, test that all internal operations are performed according
to specifications and all internal components have been exercised
There are three main reasons behind performing the white box testing.
Programmers may have some incorrect assumptions while designing or implementing some
functions. Due to this there are chances of having logical errors in the program. To detect and correct
such logical errors procedural details need to be examined.
Certain assumptions on flow of control and data may lead programmer to make design errors. To
uncover the errors on logical path, white box testing is must.
There may be certain typographical errors that remain undetected even after syntax and type
checking mechanisms. Such errors can be uncovered during white box testing.
Cyclomatic complexity is a software metric that gives the quantitative measure of logical complexity
of the program. The Cyclomatic complexity defines the number of independent paths in the basis set
of the program that provides the upper bound for the number of tests that must be conducted to
ensure that all the statements have been executed at least once.
The number of regions of the flow graph correspond to the cyclomatic complexity.
V(G) = E - N + 2 ,
In structural testing derivation of test cases is according to program structure. Hence knowledge of
the program is used to identify additional test cases.
Condition Testing
To test the logical conditions in the program module the condition testing is used. This condition can
be a Boolean condition or a relational expression. The condition is incorrect in following situat ions.
The branch testing is a condition testing strategy in which for a compound condition each and every
true or false branches are tested.
The domain testing is a testing strategy in which relational expression can be tested using three or
four tests.
Enables the test case designer to derive a logical complexity measure of a procedural design
Uses this measure as a guide for defining a basis set of execution paths
Test cases derived to exercise the basis set are guaranteed to execute every statement in the program
at least one time during testing
A circle in a graph represents a node, which stands for a sequence of one or more procedural
statements
Each compound condition in a conditional expression containing one or more Boolean operators
(e.g., and, or) is represented by a separate predicate node
A predicate node has two edges leading out from it (True and False)
When counting regions, include the area outside the graph as a region, too
Defined as a path through the program from the start node until the end node that introduces at least
one new set of processing statements or a new condition (i.e., new nodes)
Must move along at least one edge that has not been traversed before by a previous path
Path 1: 0-1-11
Path 2: 0-1-2-3-4-5-10-1-11
Path 3: 0-1-2-3-6-8-9-10-1-11
Path 4: 0-1-2-3-6-7-9-10-1-11
The number of paths in the basis set is determined by the cyclomatic complexity
4) Prepare test cases that will force execution of each path in the basis set
There are four different classes of loops: simple, concatenated, nested, and unstructured.
Examples:
Create a set of tests that force the following situations:
Simple Loops, where n is the maximum number of allowable passes through the loop.
Nested Loops
Start with inner loop. Set all other loops to minimum values.
Work outwards
Concatenated Loops
Unstructured loops
A boundary value analysis is a testing technique in which the elements at the edge of the domain are
selected and tested.
Instead of focusing on input conditions only, the test cases from output domain are also derived.
Boundary value analysis is a test case design technique that complements equivalence partitioning
technique.
If the input condition specified the range bounded by values x and y, then test cases should be
designed with values x and y. Also test cases should be with the values above and below x and y.
If input condition specifies the number of values then the test cases should be designed with
minimum and maximum values as well as wit~ the values that are just above and below the
maximum and minimum should be tested.
If the output condition specified the range bounded by values x and y, then test cases should be
designed with values x and y. Also test cases should be with the values above and below x and y.
If output condition specifies the number of values then the test cases should be designed with
minimum and maximum values as well as with the values that are just above and below the
maximum and minimum should be tested.
If the internal program data structures specify such boundaries then the test cases must be designed
such that the values at the boundaries of data structure can be tested.
The selective retesting of a software system that has been modified to ensure that any bugs have been
fixed and that no other previously working functions have failed as a result of the reparations and that
newly added features have not created problems with previous versions of the software. Also referred
to as verification testing, regression testing is initiated after a programmer has attempted to fix a
recognized problem or has added source code to a program that may have inadvertently introduced
errors. It is a quality control measure to ensure that the newly modified code still complies with its
specified requirements and that unmodified code has not been affected by the maintenance activity.
Q82) What are the testing principles the software engineer must apply while performing the
software
testing?
i. All tests should be traceable to customer requirements.
ii. Tests should be planned long before testing begins.
iii. The pareto principle can be applied to software testing
80% of all errors uncovered during testing will likely be traceable to 20% of all program modules.
iv. Testing should begin “in the small” and progress toward testing “in the large”.
v. Exhaustive testing is not possible.
vi. To be most effective, an independent third party should conduct testing
From this data test cases can be derived. Equivalence class represents a set of valid or invalid states
Q 88) . What are the reasons behind to perform white box testing?
There are three main reasons behind performing the white box testing.
1. Programmers may have some incorrect assumptions while designing or implementing some
functions.
2. Certain assumptions on flow of control and data may lead programmer to make design errors. To
uncover the errors on logical path, white box testing is must.
3. There may be certain typographical errors that remain undetected even after syntax
and type checking mechanisms. Such errors can be uncovered during white box testing.
Q92). What are the various testing strategies for conventional software?
i. Unit testing
ii. Integration testing.
iii. Validation testing.
iv. System testing.
2. Incremental testing.
Q95) What are the benefits of smoke testing?
Q96) . What are the conditions exists after performing validation testing?
* The function or performance characteristics are according to the specifications and are
accepted.
* The requirement specifications are derived and the deficiency list is created.