0% found this document useful (0 votes)
41 views11 pages

SQE Unit 2 New Topics

Uploaded by

Rahil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views11 pages

SQE Unit 2 New Topics

Uploaded by

Rahil
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Quality Planning in Software

Engineering

What is quality planning?


The role of quality planning is to design a process that will be able to
meet established goals under operating conditions.

Quality planning is a methodology which can be used when a situation


exhibits one or more of the following characteristics:
 A service has never existed before.
 Customer requirements are not known
 The existing service/process performance is not capable of meeting
customer requirements
 The service/process is ad hoc; extremely variable; never been well
defined or worked on before as a whole
 The environment is unstable, characterized by major market,
technology or organizational change
 Performance data does not exist or it would require excessive
time/expense to collect data

Quality Planning and Control:


Introduction
 The process or plan with the help of which certain quality objectives
can be achieved is known as quality planning. Often, quality planning
is done by the organization before starting the project.
 Quality plan describes the quality objectives of the software product
an specifies the quality assurance and other operations.
 For each software or system, individual quality plan can be prepared
and generated.
Quality Planning and Control : Quality Improvement Process

 The quality improvement is a process which ensure that the quality of


software is improved every then and now. There are four steps to
achieve quality improvement process. These are:
1. Test at right time: It means by testing the software product to
detect and remove defects as earlier as possible rather than
having to resolve them at the end of the process.
2. Improve testing organisation
3. Innovation.
4. Repeated Reviewing.

Quality Planning and Control : Zero Defect Software

 Zero defect software does not means the development of “Bug Free”
software.
 Zero defect software development is a practice of developing a
software product that is maintained in the highest quality state
throughout the entire development process.
 So, Zero a defect software contains much less defects as compared to
a normal software product.
 The process/rules for developing a zero defect software are:
1. The defects must be fixed on everyday basis.
2. Regularly review the code.
3. Quality modules must be re written.
4. Debugging of code effectively.
5. Learning from previous bugs.
Software Quality Assurance (SQA) :
Introduction
 The set of activities responsible for ensuring quality in software
engineering process that ultimately result in software quality in a
software product is known as software quality assurance.
 It is an umbrella activity that ensures the conformance to standards
for the software product throughout the phases of SDLC.

Software Quality Assurance : Activities

 There are eight major SQA activities which includes:


1. Management plan.
2. Applying software engineering techniques.
3. Conducting formal technical reviews.
4. Applying a multitier testing criteria.
5. Controlling change.
6. Measuring impact of change.
7. Performing SQA audits.
8. Keeping records and reports.

Software Quality Assurance : Major Issues

 Software quality assurance being an umbrella activity, does consists of


some issues too. These are:
1. SQA Cost
 SQA cost is the main reason why small scale companies
hesitate to use SQA as a part of their development plan.
 It increases the cost as it is a different team that works
separately from the development team. A new team
means, they need to be paid too which ultimately results
in higher costs.
2. SQA Complexity
 For a simple application to build, SQA can be
implemented easily. But, for an application that is
complex in nature, it might take more time to be build
which will result in more complexity while implementing
SQA.
 So, higher the complexity of software, more difficult is to
implement SQA.
3. SQA Integration
 The major concern while implementing SQA is its
integration with applications.
 Due to rapid advancement in the application
development , SQA integrated currently will no longer be
the best fit after five years. Hence, it needs up gradation
too.
4. Demand For Faster Development
 The software that has to be integrated with SQA must be
developed more faster than any other applications.
5. Defective Software
 With a perfect software SQA implementation and working
will be a cakewalk. But it is not the case with defective
software. Defective software will not be compatible with
SQA and will not generate desired results.
 Hence, to implement SQA a perfect software with
minimum defects is required and it is the main reason
why small scale companies steps down to opt for SQA.

Software Quality Assurance : Techniques

 Audit is the major SQA technique that is used while handling


operations related to SQA.
 Audits are used to review management processes, technical processes
and assurance processes to provide an indication of quality and status
of the software product.
 The purpose of using an audit is to assure that proper control
procedures are being followed and required documentation is being
maintained accordingly.
 The other SQA techniques which are used in SQA implementation are:
o Reviews.
o Meetings.

Total Quality Management(TQM) :


Introduction
 Total Quality Management : International Organization for
Standardization standard ISO 8402:1994
"A management approach of an organisation centered on quality, based on
the participation of all its members and aiming at long term success through
customer satisfaction and benefits to all members of the organisation and
society”.

 The Chartered Quality Institute

"TQM is a philosophy for managing an organisation in a way which enables


it to meet stakeholder needs and expectations efficiently and effectively,
without compromising ethical values”.

 Thus, from the standard definition given above by ISO and CQI we can
say that, TQM is a management approach to long term success
through customer satisfaction.
 The goal of TQM is to improve the products, culture and services and
is also known as Total Productive Maintenance.

Total Quality Management : Elements

 TQM comprises of eight major elements. These are:


1. Customer Focused.
2. Systematic Approach.
3. Strategic Approach.
4. Fact Based Decision Making.
5. Communications.
6. Integrated Systems.
7. Process-Centered.
8. Total involvement of employee.

Total Quality Management : The Concept

 The quality of software product is defied by customer’s requirements


and the responsibility for improvement in quality is of top
management.
 Systematic analysis and improvement of work processes results in
improved and increase in quality.
 Quality improvement is a continuous effort and is conducted
throughout the organisation.

Total Quality Managment : Tools

1. Cause and Effect diagram. Flow Chart.


2. Control Chart. Scatter Diagrams.
3. Check Sheet.
4. Pareto chart.
5. Histograms
6. Flow Chart.
7. Scatter Diagrams.

Unit 5
Software Verification and Validation :
Introduction
 Software verification and validation are the two hands around which a
software product is built.
 Software verification is a process which ensures that the product has
been built according to the requirement and design specifications.
 It means, “Are we building the System/Product rightly?”.
 Software validation is a process which ensures that the product meets
the user’s requirement and fulfills the need of user.
 It means, “Are we building the Right System/Product?”.

Software Verification and Validation : The Comparison

Software Verification and Validation


Software Verification and Validation : The V-Model

 The V-Model is a systematic approach with the help of which


verification and validation process can be carried out simultaneously,
where the left arm of the model describes the software verification
process and right arm describes the software validation process.
 Since, we want to carry out the development(software verification)
and testing(software validation) process in parallel, this model helps
us to do the same in order to save time and reduce the cost.

Verification Methods

1. Walk-through: Walk-through is and informal way of verification which


is initiated by the author of software product to their colleagues in
order to locate defect or any suggestion for improvements. Walk-
through is an unplanned process .
2. Review: Reviews are more formal than walk-through but less formal
than inspection process. It is done to check the change in data and to
determine whether the changes are correct or not.
3. Inspection: Inspection is a most formal verification process. It is done
in a software product in which every individual line of code is checked
in order to:
o Locate the defects in software programs.
o Confirmation of standardization.
o Check for relevant requirement.
Impracticality of Testing All Data

 For almost every program, it is impossible to make an attempt to test


the program with all sets of inputs.
 The correctness of the output for a particular test input is determined
using a testing oracle.
 A testing oracle is a mechanism that can be used for determining
whether a test has pass or failed.

Impracticality of Testing All Paths

 For almost every program, it is impossible to attempt to test all


executable paths through the project because of the number of
combination i.e. combination explosion.
 Developing an algorithm for this purpose is also not possible.

Software Quality Testing : Introduction


 Testing is a process to detect and remove errors from the software
product.
 The purpose of testing is to show that the program performs its
internal functionalities correctly.
 It is the process to meet specifications of a software in order to
improve quality and reduce risk in the software.
 It is the procedure used to execute a program with intent of finding
errors.

Software Quality Vs. Software Quality Testing

 Software quality is the ability of the software product to perform as


per the requirement with highest level of satisfaction to the users.
 Software quality testing is the process of evaluating the system or its
components in order to draw out defects.
 Quality of a software product directly depends upon software testing
process. If testing process is able to minimize as many defects as
possible then, the software product obtained will be of highest
quality.
 The two major types of testing typically used to obtain quality
software are:
1. Functional-Testing.
2. Structural-Testing.
Software Quality Testing : Functional-Testing

 It is a type of testing that can be used to assess the features and


functionality of the system or software product.
 Functional-Testing has a special feature with the help of which each
and every function of a software product so that it can be verified
with requirement specifications.

Software Quality Testing : Functional-Testing Need

 Checking a software product for its functionalities is the prime


objective of functional-testing. It mainly focuses on:
1. Basic Usability: It deals with basic usability testing of software
product which involves basic functionalities of user interface
and navigation through pages.
2. Mainline Functions: Main functions and features are tested of
the software product.
3. Accessibility: To check, how much the software product is
accessible to users.
4. Error Conditions: Error conditions either generate warnings or
displays error messages, if any.

Software Quality Testing : Structural-Testing

 The structure of a software product is responsible for designing test


cases in order to test a software product.
 Since, the whole structure is known, it is also known as white box
testing.
 Structural-Testing is more technical than functional-testing as it
attempts to design test cases from the source code and not from the
specifications
 The major structural testing approaches are:
1. Statement Coverage: In this, the aim is to achieve 100%
statement coverage i.e. each and every statement of program is
executed.
2. Branch Coverage: In this, the aim is to achieve 100% branch
coverage i.e. every branch either containing “true” or “false”
conditions needs to be executed.
3. Path Coverage: This technique corresponds to test all possible
paths i.e. it is a combination of branch and statement coverage
techniques.
Software Quality Testing : Structural Testing Types

 Structural-Testing can broadly be classified into four types. These are:

Types of Structural Testing

1. Control Flow
o In this, various paths of programs and various test cases are
designed to execute those paths which ultimately results in
finding out the cyclomatic complexity of the programs.
2. Data Flow
o It is a technique used for determining improper use of data
inside a software programs.
o Incorrect variable declaration, Multiple times declaration and
assigning values to variables can be some of the examples.
3. Slice Based
o Slicing a software program and testing those slices individually
for defects and errors.
4. Mutation-Testing
o When small changes are made in some certain statements of
source code to check whether the test cases are able to find the
errors or not.
o These changes are known as mutants.
o The changes are very small such that they does not affect the
overall objective of the program.
o The goal of mutation testing is to assess the quality of test cases
which should be powerful enough to fail the mutants in the
code.
Software Quality Testing : Testing Tools

 Testing tools are the software tools which can be used in software for
error detection and corrections. Static Testing tools and Dynamic
testing tools are their types.
1. Static-Testing Tools
 These tools does not involves in actual input and output
i.e. they do not test the actual execution of the software .
These tools are:
 Flow Analyzers.
 Coverage Analyzer.
 Interface Analyzer.
2. Dynamic-Testing Tools
 These tools are used to test the software system with live
data. Dynamic test tools includes the following:
 Test Drivers.
 Test Beds.
 Emulators.
 Mutation Analyzers.

You might also like