Document 1
Document 1
SEI CMM classifies software development industries into five maturity levels.
Define them.
Pg 32 Figure 1.10
What elements are involves in SQA for a broad range of concerns and
activities?
Software quality assurance encompasses a broad range of concerns and
activities are -
1. Standards
2. Reviews and Audits
3. Testing
4. Error/detect collection and analysis
5. Change Management
6. Education
7. Vendor Management
8. Security Management
9. Safety
10. Risk Management
Discuss about the DMAIC method in the Six Sigma statistical software quality
assurance technique.
DMAIC means define, measure, analyze, improve and control.
(1) Define customer requirements and deliverables and project goals via well-
defined methods of customer communication.
(2) Measure the existing process and its output to determine current quality
performance (collect defect metrics).
(3) Analyze defect metrics and determine the vital few causes.
(4) Improve the process by eliminating the root causes of defects.
(5) Control the process to ensure that future work does not reintroduce the causes
of defects.
Discuss about the DMADV method in the Six Sigma statistical software quality
assurance technique.
DMADV means define, measure, analyze, design and verify.
(1) Define customer requirements and deliverables and project goals via well-
defined methods of customer communication.
(2) Measure the existing process and its output to determine current quality
performance (collect defect metrics).
(3) Analyze defect metrics and determine the vital few causes.
(4) Design the process to
avoid the root causes of defects and
to meet customer requirements.
(5) Verify that the process model will, in fact, avoid defects and meet customer
requirements.
What is the difference between process metrics and product metrics? Give
examples of each.
Product Metrics
Product metrics are predictor metrics used to quantify internal attributes of a
software system. Product metrics help measure the characteristics of a product or
software being developed. Product metrics measure complexity of a module, the
average length of identifiers in a program, and the number of attributes and
operations associated with object classes in a design.
Examples of product metrics are
LOC and function point to measure size,
PM (person- month) to measure the effort required to develop it.
Process Metrics
Process quality management and improvement can result in fewer defects in
the software being developed. Process metrics help measure how a process is
performing. Process metrics (or) control metrics are the average effort and the time
required to repair reported defects.
Examples of process metrics are
review effectiveness,
average defect correction time,
productivity.
Define the dependability of a computer system. What are the most important
dimensions of dependability?
The dependability of a computer system is the degree of confidence a user has
that the system will operate as they expect and that the system will not fail in normal
use. It is not meaningful to express dependability numerically. The dependability of
a computer system is a system property that reflects the user's degree of trust in the
system. The most important dimensions of dependability are availability, reliability,
safety, security, and resilience.
1. Availability
Informally, the availability of a system is the probability that it will be up and
running and able to deliver useful services to users at any given time.
2. Reliability
Informally, the reliability of a system is the probability, over a given period of time,
that the system will correctly deliver services as expected by the user.
3. Safety
Informally, the safety of a system is a judgment of how likely it is that the system
will cause damage to people or its environment.
4. Security
Informally, the security of a system is a judgment of how likely it is that the system
can resist accidental or deliberate intrusions.
5. Resilience
Informally, the resilience of a system is a judgment of how well that system can
maintain the continuity of its critical services in the presence of disruptive events
such as equipment failure and cyber-attacks).
Pg 54 Figure 2.7
Explain using one simple sentence each what you understand by the following
reliability measures:
A POFOD of 0.001
A ROCOF of 0.002
MTBF of 200 units
Availability of 0.998
A POFOD of 0.001
A ROCOF of 0.002
MTBF is the Mean Time Between Failure. MTBF of 200 units indicates that once a
failure occurs, the next failure is expected after 200 units.
Availability of 0.998
Availability of 0.998 means software is available for 998 out of 1000 time units.
To handle software design failures, a system has to use diverse software and
hardware. What are the three architectural patterns that have been used in
fault-tolerant systems? Discuss one of them in detail.
The three architectural patterns that have been used in fault-tolerant systems are -
2. Self-monitoring Architecture
Self-monitoring Architecture
Pg 62 Figure 2.10
To handle software design failures, a system has to use diverse software and
hardware. Illustrate the three architectural patterns that have been used in
fault-tolerant systems?
Pg 61 Figure 2.9
Self-monitoring Architecture
Pg 62 Figure 2.10
Pg 65 Figure 2.12
What are the set of accepted good programming practices that help reduce
faults in systems?
Black-box approach
In the black-box approach, test cases are designed using only the functional
specification of the software. That is, test cases are designed solely based on an
analysis of the input/out behavior (that is, functional behavior) and does not require
any knowledge of the internal structure of a program. For this reason, black-box
testing is also known as functional testing.
What do you understand by system testing? What are the different kinds of
system / testing that are usually performed on large software products?
System tests are designed to validate a fully developed system to assure that
it meets its requirements. The test cases are therefore designed solely based on the
SRS document.
There are essentially three main kinds of system testing depending on who
carries out testing:
1. Alpha Testing: Alpha testing refers to the system testing carried out by the test
team within the developing organization.
2. Beta Testing: Beta testing is the system testing performed by a select group of
friendly customers.
3. Acceptance Testing: Acceptance testing is the system testing performed by the
customer to determine whether to accept the delivery of the system.
Distinguish among a test case, a test suite, a test scenario, and a test script.
A test scenario is an abstract test case in the sense that it only identifies the aspects
of the program that are to be tested without identifying the input, state, or output. A
test case can be said to be an implementation of a test scenario.
A test script is an encoding of a test case as a short program. Test scripts are
developed for automated execution of the test cases.
Test cases are well maintained and well documented procedure designs that can be
used to test the functionality and features of any software product.
A test suite is the set of all tests that have been designed by a tester to test a given
program.