Unit-05
Unit-05
Unit V
Chapter-13:Quality Concepts
Whatissoftware qualty? Explain software
a.1 qualitydimensions/parameters. SPPU: May 15, Dec. 15, May 19,61Marks
Ans.
Software Quality
The most software developers will agree that high-quality software is
important goal. In the most general
an
sense, software quality is conformance to explicitly stated, functional and performance requirements, explicitdy
documented development standards, and implicit characteristies that are expected of all professionally
developed software.
The definition emphasizes three important points:
1. Software requirements are the basis for software quality measurement. If requirements are not satisfied then
obviously it will yield low quality software
2. For the development processes, some standards are specified that define the development criteria These
development criteria will guide software engineering process. If the criteria are not followed property then
the quality of the product will be quite low.
3. There are two types
ofrequirements:
Implicit requirements and
Explicit requirements
Even if the explicit requirements are considered, the quality may be degraded if it fails to meet impit
requirements.
Software quality is a complex mix of factors that will vary across different applications and the customers who
request them.
a.2 Explain different McCall's quality factors.
SPPU: Dec.15,May 16, 4 Markss
Ans.:
o Factors that can be directly measured (eg. defects uncovered during testing) and
Cescasy-soTutions
Software Engineering (SPPU IT) Quick Read
Maintainablity Portabsiy
edbility Reusabliy
Testabiy
PRODUCT PRODUCTN
EVISION TRANSITON
PRODUCT OPERATION
resources are memory devices, processing devices and input output devices etc.
the problems in functioning of a
Maintainability: It is defined as the effort needed to
uncover the errors and
program and resolve these errors.
6. Integrity: The integrity of a system is defined as the efforts taken to manage access authorization. The integrity
to it
of a system can be ensured by controlling all the accesses
7. Flexibility : The ease with which a program can be modified and extended in future.
8. Testability : Amount of time and the efforts taken to test a program
environment to another.
Portability: Shifting a program from
one
9.
a.3 Explain ISO 9126 Quality Factors. SPPU : May 12. Dec. 16, 5Marks
Ans.: ISO 9126 Quality Factors attributes for computer software. The
The ISO 9126 standard developed in an attempt
was to identify quality
attributes:
standard identifies six key quality
be available for the use and should satisty following key attributes
1 Reliability: The software should
Maturity
failures
o Fault tolerance i.e. ability to withstand against
its original state once the failure occurs. It should also ensure
o Recoverability iLe. the system should regain
and consistency while recovering from failure states.
the data integrity
the system should be able to work in different hardware and software
2. Portability: Portability means
to the following attributes:
environments according
o Installability
Adaptability
Ces casysolations
Software Engineering (SPPU_IT) 0 Qulck Rend
o Conformance
oReplaceability
3. Eicdency: Eiticiency means making the optimal use of the system resources like memory devlces, processing
devices and input output devices etc. It should take into conslderation following attributes:
o Changeability
o Testability
o Stability and
o. Analyzability
5. Functionality: The degree to which the application software satisfies the customer's needs and requirements
according to the following attributes
a.4 What are different metrics are availlable for software quality control7 How they control qualty of software ? (6 Marks)
Ans.: Quality Metrics
Quality metrics are a key component of an effective quality management plan and are the measurements used in
ensuring customers receive acceptable products or deliverables. Quality metries are used to directly translate
customer needs into acceptable performance measures in both products and processes.
Project managers must be able to assess the progress, efficlency, and performance of their projects and metrics
are the means which allow project managers to do this. However, it is important to note that metrics must be
established in an effort to directly Improve the product or processes Involved in the project.
The Software Qualty metrics are classifñed into three broad categories
1. Product metrics
2. Process metrics
Ces0asy-SOlutlons
Qulck Read
Software Engineering(SPPU_IT) 51
3. Project metrics
Sofware quality metrics are a subset software metrics that focus on the quality aspects of the prouu process,
and project. These are more closely associated with process and product metrics than with project metre
Product Metrics
Describes the characteristics of the product such as size, complexity, design features, performance, and ty
level.
The terms measure, measurement, and metrics are often used interchangeably.
within tne software engineering context, a measure provides a quantitative indication of the extent, amoun
reviews and unit tests are investigated to collect measures of the number of errors for each).
Software metric relates the individual measures in some way, e.g, the average number of errors tound per
Measurement Principles
series of product metrics, it is important to understand basic measurement principles.
Before we introduce a
CeseasyS0lutions
Software Engineering (SPPU IT) 52 Quick Read
A metric should have deslrable mathematical properties. That is, the metric's value should be in a meaningful
range. Also, a metric that purports to be on a rational scale should not be composed of components that are only
measured on an ordinal scale.
wnen a menic represents a software characteristic that increases when positive traits occur or decreases when
undesirable
traltsencountered, the value of the metric should increase or decrease in the same manner
are
Each metric shauld be validated empirically in a wide variety of contexts before being published or used to make
decisions.
Process Metrics
This metrics describe the project characteristics and execution. Examples include the number of software
developers, the staffing pattern over the life cycle of the software, cost, schedule, and productivity.
Process metrics or measurements are acquired across all projects and over long intervals of time. Their intent is
to provide a set of process indicators that lead to
long-term software process improvement.
Project metrics permit a software project manager to perform the following:
o Assess the status of an ongoing project,
o Track potential risks,
o Uncover problem areas before they go "critical,"
o Adjust work flow or tasks, and
Customer Business
charactenstics conditions
Process
People Technology
Development
environment
Ceseasy-solutions
Software Engineering(SPPU_IT) 53 Quick Read
Project Metrics
S o f t w a r e project metrics are tactical. i e , project metrlcs and the indicators derived from them are uSed oy a
project manager and a software team to adapt project workflow and technical activities
The first application of project metrics on most software projects occurs during estimation.
As a project proceeds, measures of effort and calendar time expended are compared to original estimates and the
project schedule.
escasy-solutions
Software Engineering (SPPU_IT) 54
Quick Read
es Casy:solutionsS
Software Engineering (SPPU_IT) 55 Quick Read
Testing should begin "in the small" and progress toward testing "in the large.": The first tests planned and
executed generally focus on individual components. As testing progresses, focus shifts in an attempt to nna
exceptionally large. Therefore it is impossible to execute every combination of paths during testing
6. To be most effective, testing should be conducted by an independent third party: The software engineer
who created the system is not the best person to conduct all tests for the software. Therefore, to make the testng
effective, it is advisable to conduct the testing from the third person who is not involved in the development
process.
node 2 3 4 5
Node 1
1
Q.4 Differentiate between condition and loop testing. SPPU: May 16, 4Marks
Ans.: Control Structure Testing
for control structure testing.
Basis path testing is one of the techniques
is not sufficient, other variations on control structure testing are discussed in the
Since basis path testing
of control structure testing are:
following sections. The examples
1. Condition Testing
2. Data Flow Testing
3. Loop Testing
CesCasy-solutions
Software Engineering (SPPU_IT) 56 Quick Read
1. Condition Testing
The condition testing is one of the test case design method. In condition testing, all the logical conditons in
Less than
<less than or equal to
Non-equality
Greater than
2Greaterthan or equal to
A condition may also be a compound condition and it consists of two or more simple conditions, Boolean
operators and parentheses.
2. Data Flow Testing
In dataflow testing approach, a test paths of a program is selected based on the locations of definitions and
uses of variables in the program.
To explain the data flow testing method, consider that each of statement in a program is assigned a unique
number. Also the functions and globalvariables do not modify their
parameters.
statement S (its
unique statement number) as follows:
Consider a
DEFX(S)={X| statement S contains a definition of X}
USEX(S) = X| statement S contains a use of X}
If statement S is an "if or "loop" statement, then its DEFX set is empty and its USEX set depends on the
condition of statement s.
The variable X at statement S is the live at statement S', if there is a path from statement S to statement S.
Also it should not contain any other definition of X.
loop:
o Skip the whole loop.
es 0asy-solutions
Qulck Read
Software Engineering(SPPU_IT) 57
levels will be increased automatically. This might result in number of tests which may not be practically possibe
Following are some approaches that are suggested to reduce the number of tests :
o Start with the inner most loops and set all the other loops at minimum levels.
minimum interaction
o Now conduct the simple loop approach to innermost loop while hold other with their
value.
o Move outward to conduct simple test to the next loop and keeping its out loop value at minimum.
constructs.
Nested loops
Simple loops
Concatenated
loops
Unstructured
l0ops
Q.6 Explain boundary value analysis testing SPPU : Dec. 16, 3 Marks
Ans.: Boundary Value Analysis
occurs at the
boundarles of the input domain and not at the "center" of it
Generally large number of
errors
Boundary Value Analysis (BVA). It has been developed and used as a testin
This is the reason why we require ditterent test cases to test
value anaiysis selecis and conaucts the
technique by the developers. Boundary
domain.
boundary values of input
es Casy-s0lutions
Software Engineering (SPPU JT)
BVA ISa test case design method in which the equtralence yartitinásg tskes plan. in sitr td vedeing v r e
of an equvalence dass,the boundary value analysis acuaiy sedects the R a s a t e ' d a dta t s
Here in boundary value analysis apprcach, the focus is not anly on tnst cnditans tost aln k o m e 510
conducts the test cases from the output values.
Following are some guidelines for boundary value analysis approach
o Ifan input condition selea a range between a and b then test ases shsd4 te desizpes tgrb the viss
and b. It means the input values may be just beln and just atme the vatues da and b
fan input condition selects the minimum and mazámum snumbers,then values just aiurne asd juz teln te
minimum and maximum values are also tested.
esasy-1oletios
Quick Readd
Software Engineering (SPPU_IT)
Refer the ig. 14.3, in that one Input value at a time is changing in accordance with the input a
is conducted.
An L9 orthogonal array of test cases is created whenever an orthogonal array testing noe
test cases.
the software developer
The black-box testing helps
t guarantees the traversal of all independent paths conditions. These input
2. derive the sets of input
in module at least once. It refers the concept of to the functional requirements
a
must conditions exercise all
in tree
traversal of tree i.e. each of the nodes a
for a program.
be traversed at least once.
behavioural
errors or the
It evaluates performance
decisions and finds whether defined
It evaluates all logical errors. It evaluates missing
or incorrectly
the loops to
false. It evaluates all incorrect data structures
and
they are true or It functions. It evaluates
check their boundaries
and operational bounds. | database errors. It evaluates errors
to confirm external
and termination and
structures
evaluates all internal data initialization
occurred during
their validity. interface errors also.
The black box testing is applied in the final stages
in the testing
The white box testing begins early
t. of testing
methods are:
process.
methods Different black-box testing
testing
Differentt
white-boxx
Graph-Based Testing Method, Equivalence
are Partitioning, Boundary
Value Analysis,
Basis Path Testing,
Orthogonal Array Testing
Control Structure Testing
SPPU: May 14, 3 Marks
a.0 Explain validation testing
and Validation fulfilled by the
Ans.: Verification that ensures that all customer's requirements
are
Ces easy-solutionS
Software Engineering (SPPU_IT) 60 Quick Read
The V&V consists of different activities that are also the
part of sQA (Software Quality Assurance).
The software quallty assurance conslsts of
following important activities:
FTR
o
(Formal Technical Reviews): Frequent meetings between developer and customer to ensure effectivé
communication on technical part of the software.
o Performance monitoring
o
Quality and configuration audits
o Algorithm analysis
Development testing
Feasibility study
o Database review
o Simulation
o
Qualification testing and installation testing
o Documentation review
oUsability testing
Q.10 Differentiate between verification and
validation. SPPU: May 12, Dec. 13, 4Marks, Dec. 15, May 16, 4 Marks
Ans.: Difference between
Verification and Validation
Sr.
Verification Validation
No.
es 0asy-solutions
Quick Read
Software Engineering(SPPU IT) 61
a. 11 Explain unit testing. SPPU: May 12, 4 Marks
Ans.: Unit Testing
o
like component
In unit testing the main focus is on assessment of smallest unit of the product design
and data
The unit has limited scope and it emphasizes on internal processing logic
software or
module. testing
structures. Multiple modules and components can be tested in paralle.
Unit test considerations
14.4
The unit testing is illustrated diagrammatically as follow in Fig.
Module Interface
Local data siructure8
Boundary condrions
Independent pains
Error handling paihsS
Test
Cescasy-solutionsS
sida 3eed
Exsrairg pts
Mense
sts
Fi 145:Uittet evheonmer
Laly bsth the drver ad sus sre the svtwae t a ae wren bt sn sienied to tte catomer aad t s
are unsitzed s te metesd. t is smays resnerded o keeg tse vehesd j e w rebrce te cm ez
wesnd can un e mate smge in all he caes ad terce tte vnt tesag can be potyred to tte i e g e i
Ces casy-solutions
Quick Read
Software Engineering (SPPU_IT) 63
M
M2 MA
Ms M M
program.
illustrated in Fig. 14.7.
Integration follows the pattern
Ma
*******
D D2 D
Cluster 3
Cluster 1
Cluster 2
in such a fashion that they can form clusters 1, 2 and 3. These clusters are
The components are integrated
tested by using a driver (marked by a dashed block).
The components in clusters 1 and 2 are subordinate to module M,. The drivers D, and D, are then removed
and the clusters arc connected directly to M,
the driver D, for the cluster 3 is removed and then cluster 3 is directly connected
to
In the same way,
Here both the modules, M, and M, are finally integrated with the component M, and so on.
module M
CesCasy-solutions
Software Engineering (SPPU_IT) 54
Quick Read
Problems associated with Top down approach of testing
In incremental integration testing approach, a set of errors are encountered and correction seems to be very
difñicult due to isolation of causes and the complications by program since program is expanded over several
modules. After correction of these errors, some new may appear and the process continues. It looks like an
infinite loop.
Top-down integration testing is one of the incremental testing strategies for construction of the software
architecture.
The main problem with top down approach is that the test conditions are nearly impossible or they are
extremely dificult to create.
Stub modules are complicated.
Comments on Integration Testing
The selection ofany integration strategy is based on the software characteristics or the project schedule.
Generally a combined approach ie. both the top-down and bottom-up are used. It is called as sandwich testing
The top-down tests can be implemented for upper levels and bottom-up tests are implemented for subordinate
levels of the program. Actually the sandwich testing is the best compromise.
Integration Test Documentation
The complete test plan for integration testing is documented in a test specification.
This document encompasses a test plan and a test procedure that is actually a work product of the software
process, and it becomes the part of the software configuration.
Q.13 Ditferentiate between alpha and beta testing. SPPU: May 19, Dec. 19, 6 Marks
Ans.: Alpha and Beta Testing
It is very diffcult for a software developer to visualize how the end user will actually use his program. The
instructions for use may be read but not understood properly or some wrong meaning can be drawn. Also some
combinations of input may be regularly used and the output that is correct for tester but it is not satisfied by the
user in actual practice.
When customized software is developed for one customer, then a series of acceptance tests are necessary to
validate all the requirements by the customer
The acceptance test is conducted by the end-user rather than software developer. The need is to find the range of
Thus the acceptance test is well planned and is executed systematically. The series
input values by the customer.
of acceptance test are usually conducted to validate the requirements.
The acceptance testing is conducted over a period of weeks or months and thereby detecting the cumulative
If the software is built as a product that is to be used by different customers, then it is practically not possible to
In such a scenario, most of the software developers use alpha and beta testing to find those errors that can be
es casy-solutions
Software Engineering (SPPU IT) 65 Quick Read
The beta test is conducted at end-user place. Here the developer is generally not present. Hence the beta testis
supposed to be the "live" application of the software.
This environment is not controlled by the developer in contrast to the alpha testing that is done at developers
end.
In beta testing, the end-user will record all the problems (may be a real one or imaginary) that are encountered
2. The end users work on thesoftware and developer| This environment is not controlled by the developer in
has a keen observation on all interactions of user contrast to the alpha testing that is done at developer's
the and In beta testing, the end-user will record all the
The developer keep on recording all errors
Alpha tests are generally problems (may be a real one or imaginary) that are
problems encountered. encountered and ill report to the developer at regular
conducted in a controlled environment.
basis.
?
SPPU: Dec. 13, 3 Marks
a. 14 What do you mean by recovery testing
Ans.: Recovery Testing9
from faults that are occurring and can resume back the normal
recover
The computer-based systems may
time. But in some cases, the system should be fault tolerant ie. it should continue
processing within a stipulated
to functioning despite failure.
must recovered back from the failure and corrected within a stipulated period of
In some other cases, the system
time.
then some drastic economic damage will take place. For example online shopping sites, banking
If not done so,
test that the system is recovering properly from the failure state.
from those states. The motive is to
Ces casy-solutions
Software Englneering (SPPU_IT) 66
Qulck Read
If it is an automatic recovery, then re-Inltlalization, data
recovery, restart and check-polnting mechanisms are
evaluated for correcting the errors, If the recovery requlres human
Interventlon, then the Mean-Time-To-Repair
(l.e. MTTR) Is calculated to flnd whether It is In acceptable limlts or not.
a. 18 Write a ohort note on deloct management
SPPU: May 19, 4 Marks
Ans.: Defect Management
Ces0asy-$0lutions
Software Bngineering (SPPU_IT) 57 Quick Read
DRE is defined in the following manner
DRE E/(E+D)
the end-user, and D the number o
Where, E is the number of errors found before delivery of the software to is
defects found after delivery.
D will be greater than 0,
The ideal value for DRE is 1. That is, no defects are found in the software. Realistically,
but the value of DRE can stll approach 1.
team individual software engineer) is to achieve DRE that approaches 1.
A quality objective fora software (or an
That is, errors should be filtered out before they are passed on to the next activity.
?
a. 16 Describe Defect lite Cycle
Ans.: Defect Life Cycle
which a defect goes through during8
D e f e c t life cycle, also known Bug Life cycle is the journey of a defect cycle,
as
New
Assigned
Duplicate
rejected
detfered
not A Bug
Pending9
retest
ReOpened Retest
Verfled
Closed
Ceseasy-solutionS
68
Software Engineering(SPPU_IT) Qulck Read
Open: The developer starts analyzing and works on the defect fix
Fixed :When developer makes necessary code change and verifles the change, he or she can make bug status as
"Fixed."
Pending retest : Once the defect is fixed the developer gives particular code for retesting the code to the tester.
Since the testing remalns pending from the testers end, the status asslgned is "pending request."
Retest: Tester does the retesting of the code at this stage to check whether the defect is fixed by the developer
or not and change the status to "Re-test."
Verified: The tester re-tests the bug after it got fixed by the developer. If there is no bug detected in the
software, then the bug is fixed and the status assigned is "verified."
Reopen : If the bug persists even after the developer has fixed the bug, the tester changes the status to
"reopened".Once again the bug goes through the life cycle.
Closed: Ifthe bug is no longer exists then tester assigns the status "Closed."
Duplicate : If the defect is repeated twice or the defect corresponds the same concept of the bug the status is
changed to "duplícate."
Rejected : Ifthe developer feels the defect is not a genulne defect then it changes the defect to "rejected."
Deferred: Ifthe present bug is not ofa prime priority and if it is expected to get fixed in the next release, then
status
"Deferred" is assigned to such bugs.
N o t a bug : ifit does not afect the functionality of the application then the status assigned to a bug is "Not a bug.
a.17 Explain the debugging process. SPPU: May 13,8Marks, Dec.13, 6 Marks
Ans.: Debug9ging
Debugging is not a testing process but it is the consequence of testing. The debugging process starts with
conduction of a test case.
The results are evaluated anda diference between expected and actual performance is encountered.
The debugging process has one of two outcomes as follows
(1) The reason for causing error are found and çorrected, or
(2) The reason for causing the error will not be found.
In the case 2, the person performing debugging will be suspicious about a cause. Conducting the test cases will
help to validate that suspicion, and the person can work to correct the errors in iterative fashion.
It is observed that the debugging is a difficult process. Sometimes human psychology is required in addition to
software technology. Following are some characteristics of bugs that will provide some clues to clear the doubts
about debugging process :
Ces Casy-solutons
Software Engineering(SPPUIT) 69 Quick Read
o The symptom can also be intermittent ie. not continuous. This scenario is very common in embedded
systems.
O The symptom can also be caused by number of tasks running on different processors in a distributed system
Scenario.
In the debugging process, numerous error are encountered that may be mild annoying or catastrophic.
o Physical damage
Economical losses
finding the, that errors itself. The
in debugging process, finding the cause of the errors is more important
more errors are introduces.
software developer sometimes eliminates an error and at the same time, two
Paychological Considerations
are not
are good in debugging and some
Debugging is considered to be the natural process and some people
It is evident from the various reports
good in debugging. Thus there is large variance in the debugging process.
that the developers with the same education and same experiences have different debugging capabilities.
solving
Debugging Approaches
Regardless of the approach that is chosen, debugging has one simple objective i.e. to detect and correct the cause
by partitioning it.
oIn debugging, the basic idea is to locate the problem's
source
es 0asy-solutions
Software Engineering(SPPUIT) 70
Quick Read
Following are three important categories for debugging approaches
(1) Brute force
(2) Backtracking
3) Cause elimination
(1) Brute force
oThe Brute force is the most common and least efficient method for finding
the cause of a software errór.
o This category of
debugging i.e. Brute force
debugging methods is applicable generally when all the other
methods failed. In this method, computer find the errors
are
itself since memory dumps are used and thus
run-timé traces are invoked. In this, the
program is loaded with the WRITE statements.
oIn the complicated and
confused pool of
cause of errors.
the information,
is able to developer reach to the clue to find the
T h e mass information
produced will lead to suçcess finally. Sometimes it may lead to wasted
effort. Therefore first, the
thought should be expended. of time and
(2) Backtracking
o In this category, the task is increased as compared to previous approaches. The number of source code
areincreased and sometimes the lines
large number of backward paths are
unmanageable.
(3) Cause elimination
o The third category of
debugging use the concept of binary partitioning. The
achieved by induction or deduction.
cause elimination approach is
Ces easy-SOlutions
Software Engineering (SPPU_IT) 71 Qulck Read
1. Check whether the cause of error is reproduced in some another part of the program?
A) In most of the cases, the program errors caused by erring logic and this erroneous logic may
are
should be taken for
also be reproduced in another part of the program. The explicit consideratdon
all the logical pattern. This consideration may discover the errors.
that interrelated
is taken in correction so
1ogic in another part of the same program. A utmost care
logic or coupling should not cause any new errors.
prevent the error at the first place only?
3. What precaution should be taken to
Cescasy-s0lutionsS