Software Quality Assurance: Time: 2 HRS.)
Software Quality Assurance: Time: 2 HRS.)
Software Quality Assurance: Time: 2 HRS.)
VI
Software Quality Assurance
Time : 2½ Hrs.] Prelim Question Paper Solution [Marks : 75
(ii) One must understand the interrelationships among the customers, suppliers and processes used
in development, testing etc. and establish quality management based on metrics program.
-1-
Vidyalankar : T.Y. B.Sc. (IT) CL
-2-
Prelim Question Paper Solution
(iv) Plan:
Planning includes answering all questions like who, when, what, why, where, how etc. about
various activities and setting expectations.
Expected results must be defined in quantitative terms an actions must be planned to
achieve answers to these questions.
Baseline studies (i.e. where one is standing and vision defines where one wishes to be) are
important for planning.
(v) Do:
An organization must work in the direction set by the plan devised in earlier phase for
improvement.
Actual execution of a plan can determine whether the results as expected are achieved or
not.
‘Do’ process need inputs like resources, hardware, software, training etc. for execution of a
plan.
(vi) Check:
An organization must compare the actual outcome of ‘Do’ stage with reference or expected
results which are planned outcomes.
Expected and actual results must be in numerical terms, and compared at some periodicity
as defined in the plan.
(vii) Act:
If any deviations are observed in actual outcome with respect to planned results, the
organization may need to decide actions to correct the situation.
One may have to initiate corrective or preventive actions as per the outcome of ‘Check’
stage.
When expected results and actual results match with given degree of variation, one can
consider that the plan is going in the right direction.
-3-
Vidyalankar : T.Y. B.Sc. (IT) CL
Following are the three main tiers of quality management system structure :
1st TIER – Quality Policy
Quality policy sets the wish, intent and direction by the management about how activities will
be conducted by the organization.
Since management is the strongest driving force in an organization, its intents are most important
It is a basic framework on which the quality temple rests.
-4-
Prelim Question Paper Solution
-5-
Vidyalankar : T.Y. B.Sc. (IT) CL
Formula:
Test Team efficiency(%) = Total defects found by testing team - Defects found by testing team
but not belonging to the defects deliberately introduced by development / No. of defects
deliberately introduced by development team
Solution:
Test Team efficiency(%) = (Y-Z)/X = 45-5/55=40/55
= 0.7272
0.7272 x 100
Test case efficiency(%) =72.72%
Q.2(d) Difference between black box testing and white box testing [5]
Ans.:
Sr.No. Black box testing White box testing
(i) Black box Testing involves testing White box testing is done on the basis
system/components considering inputs, of internal structures of software as
outputs and general functionalities as defined by designs, coding standards and
defined in requirement specifications. guidelines.
(ii) It is independent of platform, database It is a verification technique where one
and system to make sure that the can ensure that software is built
system works as per requirements correctly.
defined as well as implied ones.
It represents user scenario and actual
user interactions.
(iii) This is the only method to prove that It can ensure that defined processes,
software does what it is supposed to do procedures methods of development
and it does not do something which can have really been followed during
cause a problem to user software testing.
(iv) Some types of testing can be done only It can help in giving early warnings.
using black box methodology like
performance and security testing.
(v) Some logical errors in coding can be It does not ensure that user
missed in black box testing as black box requirements are met correctly.
testing efforts are driven by
requirements and not by design.
Q.2(e) What is a test strategy? List and explain different steps involved in developing a test [5]
strategy.
Ans.: Test strategy defines the action part of test policy. It defines the ways and means to achieve the
test policy.
Generally, there is a single test policy at organization level for product organizations while test
strategy may differ from product to product, customer to customer and time to time.
Following are some examples of test strategy may be as follows :
Definition of coverage like requirement coverage or functional coverage etc.
Level of testing from requirements gathering to acceptance phase.
How much manual testing and automated testing required?
Ratio of developers to testers.
The process of developing test strategy goes through the following stages :
1. Select and rank Test factors for the given application.
The test team must identify critical success factors/quality factors/ test factors for the
product under testing. These factors must be analyzed and prioritized/ ranked.
-6-
Prelim Question Paper Solution
4. Identify Phase in which risks of not meeting a test factor need to be addressed.
The risks may be tackled in different ways during development life cycle phases. As the phase
is over, one needs to assess the actual impact of the risks and effectiveness of devised counter
measures for the same.
Levels of testing : Testers are involved in each phase of software development right from
proposal and contract , followed by requirement till acceptance testing. Testers must ensure
that each phase is passed successfully.
Knowledge of testing standards : Testing standards are defined by software quality team ,or
also there are international standards which needs to be understood by tester and apply them
effectively.
Risk assessment and management : Test cases and test data must be defined by testers to
minimize risks to final users in production environment.
Developing Test plan : Test plan development is generally done by test managers or test leads
while implementation of these plans are done by testers.
Defining acceptance criteria: Testers need to define acceptance criteria for the phases and
iterations of testing.
Execution of Test Plan: Testers are given the responsibility of executing a test plan. It
includes defining test cases, test scenarios, and their execution. They must be able to perform
regression testing when planned.
-7-
Vidyalankar : T.Y. B.Sc. (IT) CL
-8-
Prelim Question Paper Solution
Q.3(b) Explain the concept of decision table based testing with the help of an example. [5]
Ans.: Decision table ideal for describing situations in which a number of combinations of actions are
taken under varying sets of conditions.
A decision table has four portions the condition stub, the condition entries, the action stub,
and the action entries.
A column in the entry portion is a rule. Rules indicate which actions, if any, are taken for the
circumstances indicated in the condition portion of the rule. In the decision table below, when
conditions c1, c2, and c3 are all true, actions a1 and a2 occur. When c1 and c2 are both true and
c3 is false, then actions a1 and a3 occur.
The entry for c3 in the rule where c1 is true and c2 is false is called a “don’t care” entry. The
don’t care entry has two major interpretations: the condition is irrelevant, or the condition
does not apply.
This structure guarantees that we consider every possible combination of condition values.
This completeness property of a decision table guarantees a form of complete testing.
Decision tables in which all the conditions are binary are called Limited Entry Decision Tables
(LETDs).
Q.3(d) Explain any two types of improved equivalence class testing. [5]
Ans.: Following two types of equivalence class testing are presented here :
(i) Weak Normal Equivalence Class Testing.
(ii) Strong Normal Equivalence Class Testing.
-9-
Vidyalankar : T.Y. B.Sc. (IT) CL
Each dot in above graph indicates a test data. From each class
we have one dot meaning that there is one representative
element of each test case. In fact, we will have, always, the
same number of weak equivalence class test cases as the classes
in the partition.
Q.3(f) Define du and dc path. Explain Define / Use testing in data flow testing. [5]
Ans.: Definition-use (du) paths: A path in the set of all paths in P(G) is a du-path for some variable v
(in the set V of all variables in the program) if and only if there exist DEF(v, m) and USE(v, n)
nodes such that m is the first node of the path, and n is the last node.
A du-path in PATHS(P)
where the initial node of the path is the only defining node of v (in the
DEF
USF
Fig. : An example of a DU-path that is also definition-
Definition-clear (dc) paths: A path in the set of all paths in P(G) is a dc-path for some variable
v (in the set V of all variables in the program) if and only if it is a du-path and the initial node
of the path is the only defining node of v in the path.
Define/Use testing uses paths of the program graph, linked to particular nodes of the graph that
relate to variables, to generate test cases. The term “Define/Use” refers to the two main aspects
of a variable: it is either defined (a value is assigned to it) or used (the value assigned to the
variable is used elsewhere – maybe when defining another variable). Define/use testing was first
formalised by Sandra Rapps and Elaine Weyuker in the early 1980s.
Define/use testing is meant for use with structured programs. The pro-gram is referred to as P,
and its graph as G(P). The program graph has single entry and exit nodes, and there are no edges
from a node to itself. The set of variables within the program is called V, and the set of all the
paths within the program graph P(G) is PATHS(P).
Within the context of define/use testing, with respect to variables there are two types of nodes:
defining nodes and usage nodes. The nodes are defined as follows:
Defining nodes, referred to as DEF(v, n): Node n in the program graph of P is a defining node
of a variable v in the set V if and only if at n, v is defined. For example, with respect to a
variable x, nodes containing statements such as “input x” and “x = 2” would both be defining
nodes.
Usage nodes, referred to as USE(v, n): Node n in the program graph of P is a usage node of a
variable v in the set V if and only if at n, v is used. For example, with respect to a variable x,
nodes containing statements such as “print x” and “a = 2 + x” would both be usage nodes.
Usage nodes can be split into a number of types, depending on how the variable is used. For
instance, a variable may be used when assigning a value to another variable, or it may be used when
making a decision that will affect the flow of control of the program.
- 11 -
Vidyalankar : T.Y. B.Sc. (IT) CL
There are also three other types of usage node, which are all, in
effect, subclasses of the C-use type:
O-use: output use – the value of the variable is output to
the external environment (for instance, the screen or a DEF DEF
printer).
L-use: location use – the value of the variable is used, for USF
instance, to determine which position of an array is used Fig. : An example of a DU-path.
(e.g. a[b]).
I-use: iteration use – the value of the variable is used to
control the number of iterations made by a loop (for
example: for (int i = 0; i <= 10; i++)).
Looking at the example above in figure 1, for the variable total Price table lists the defining and
usage nodes (the particular instance of the variable being referred to is highlighted in bold text).
Table 1 : The defining and usage nodes for the variable totalPrice.
Node Type Code
4 DEF totalPrice = 0
7 DEF totalPrice = totalPrice + price
7 USE totalPrice = totalPrice + price
10 USE print("Total price: " + totalPrice)
11 USE if(totalPrice > 15.00) then
12 USE discount = (staffDiscount * totalPrice) + 0.50
14 USE discount = staffDiscount * totalPrice
17 USE finalPrice = totalPrice - discount
With these nodes, some useful paths can be generated.
Beta Testing : Beta testing represents a business pilot where testing is actually conducted by
customer in production / semi production environment. Tester/ developers may be appointed
to help the customer in testing the application, and recording the problems, if any. Beta testing
is extensively used as parallel testing to give confidence to the users that the software really
works as per established existing system at customer’s place.
Gamma Testing : Gamma testing is used for limited liability testing at selected places. Gamma
testing is generally done by the product development organization that wishes to have limited
market demonstration and piloting of an application in the market. The application is given to
few people for using it in production, environment, and feedback is obtained from them about
the features incorporated as well as something missing or wrongly interpreted.
- 12 -
Prelim Question Paper Solution
- 13 -
Vidyalankar : T.Y. B.Sc. (IT) CL
System Interfac
design e testing
Program Integration
design testing
Testing
Coding
Design
Requirement
Time
Fig.: Phase end review
(ii) Periodic Review : When one phase ends in reality another phase may be half way through. In such
cases, we may have review on some periodic basis such as weekly, monthly, quarterly etc. Project
plan must define various periods when review of project related activities will be conducted.
Stakeholders may be required to review the progress and take actions on any impediments.
Month 1 Month 1 Month Month Month Month Month Month
7
Testing
Coding
Design
Requirement
Time
Fig.: Periodic review
- 14 -
Prelim Question Paper Solution
Q.4(f) Describe various verification methods based on the parties involved in the methods [5]
Ans.: Following different methods for verification of software work products :
Self-Review :
(i) Self review may not be referred as an official way of review in most of the software
verification descriptions, as it is assumed that everybody does a self-check before giving work
product for further verification.
(ii) It is basically a self-learning and retrospection process.
Peer Review : Peer review is the most informal type of review where an author and a peer are
involved. It is a review done by a peer and review records are maintained. A peer may be a
fellow developer or tester as the case may be. Following are types of peer review
Online Peer Review (Peerto Peer Review) : In such kind of review, the author and reviewer
meet together and review the work product jointly. Any explanation required by the reviewer
may be provided by the author.
Offline Peer Review (Peer Review) : In such kind of review, the author informs the reviewer
that the work product is ready for review. The reviewer may review the work product as per
his time availability. The review report is send to the author along with the defects, if any. The
author may decide to accept / reject the review comments or defects identified.
Superior -Review :
A superior such as team leader or module leader may have to review the artifacts made by his
subordinates to find its suitability to find its suitability with reference to expected outcome.
- 15 -
Vidyalankar : T.Y. B.Sc. (IT) CL
Advantage :
Big-Bang Testing is very fast and cheap.
No need of help of any middle components like stubs, driver on which testing is dependent.
In Big Bang Testing everything is finished before integration testing starts.
No need of intermediate builds and efforts is required for the system.
Disadvantage :
In Big Bang Testing, it is difficult to trace the cause of failures.
There is very high chances of missing any critical difficult which result in failures of
system in production.
Covering all the components for integration testing without missing any scenario is very
difficult.
If any defect is present at the interface of the component, then it is very difficult to find
it at the very initial stage.
(ii) Regression testing:
Regression testing determines whether the changed components have introduced any error
in unchanged components of the system.
The maintenance projects may consider it as special testing as regression testing of entire
application may be very costly.
It can be done at,
Unit level to identify that changes in the units have not affected its intended purpose,
and other parts of the unit are working properly even after the changes are made in
some parts.
Module level to identify that the module behaves in a correct way after the individual
units are changed.
System level to identify that the system is performing all the correct actions that it
was doing previously as well as actions intended by requirements after change is made in
some parts of the system.
Regression testing is performed where there is high risk that changes in one part of
software may affect unchanged components or system adversely. It is done by rerunning
previously conducted successful tests to ensure that unchanged components function
correctly after the change.
Following are the development methodologies where regression testing is important :
Any maintenance activity conducted in a system.
Iterative development methodology.
Agile development.
- 16 -
Prelim Question Paper Solution
Top – down
(i) In top-down integration testing approach, testing is conducted from main module to sub
module. If the sub module is not developed a temporary program called STUBis used to
simulate a sub-module.
(ii) Here the top level of the application is tested first and then it goes down ward till it
reaches final component of the system.
Advantages :
(i) It is useful when many major flaws occur towards the top level of the program
(ii) The feasibility of an entire program can be determined easily at very early stage as the top
most layer.
(iii) It does not need drives as the top layers are available first which can work as driver for
the layer below
Disadvantages:
(i) Individual units and modules are rarely tested alone and if tested are tested very rate.
(ii) Stubs needs to be written and tested before they can be used in the integration testing.
(iii) Stubs modules are often more complicated than they first appear to be
(iv) It can create a false belief that software can be coded and tested before design is
finished.
- 17 -
Vidyalankar : T.Y. B.Sc. (IT) CL
In this approach testing is conducted from sub module to main module, if the main module is
not developed a temporary program called DRIVERS is used to simulate the main module.
Here the bottom level of the application is tested first and then it goes upwards till it
reaches the main module of the program.
Advantages
(i) It is useful when major flaws occur towards bottom level of the program
(ii) Each component and unit is tested first for its correctness. It is found to be working
correctly, then only it goes for further integration.
(iii) It makes the system robust
Disadvantages
(i) Here, top-level components are the most important but tested last
(ii) Large no. of drivers may be required in this type of integration.
(iii) It is time consuming approach.
- 18 -
Prelim Question Paper Solution
Module
Testing
Subsystem
Testing
System
Testing
Acceptance
testing
The initial or first phase of testing is Unit testing, where inputs from unit testing are used to
identify and eliminate defects at unit level.
After Unit testing, once the units are ready for integration, then integration or module testing
is done. It can be done by either development team or test team depending upon the
requirements of stubs and drivers.
Once module testing is done, subsystem testing phase starts where the subsystem interaction
is tested with other subsystem.
Once the system completes all levels of integration, it goes for system testing, where complete
system is tested.
Finally system is taken for acceptance testing where it is tested to see whether it fulfills the
acceptance criteria of users or not.
- 19 -