Nothing Special   »   [go: up one dir, main page]

Software Quality Assurance

Download as pdf or txt
Download as pdf or txt
You are on page 1of 16

Software Quality Assurance

Software quality product is defined in term of its fitness of purpose. That is, a
quality product does precisely what the users want it to do. For software
products, the fitness of use is generally explained in terms of satisfaction of
the requirements laid down in the SRS document. Although "fitness of
purpose" is a satisfactory interpretation of quality for many devices such as a
car, a table fan, a grinding machine, etc.for software products, "fitness of
purpose" is not a wholly satisfactory definition of quality.
Example: Consider a functionally correct software product. That is, it
performs all tasks as specified in the SRS document. But, has an almost
unusable user interface. Even though it may be functionally right, we cannot
consider it to be a quality product.
What is Quality Management?

• Quality Management – ensuring that required level of


product quality is achieved
• Defining procedures and standards
• Applying procedures and standards to the product
and process
• Checking that procedures are followed
• Collecting and analyzing various quality data

Problems:
• Intangible aspects of software quality can’t be standardized
• (i.e elegance and readability)
What are SQA, SQP, SQC, and SQM?

SQA includes all 4 elements…


1. Software Quality Assurance – establishment of network of organizational
procedures and standards leading to high-quality software
2. Software Quality Planning – selection of appropriate procedures and standards
from this framework and adaptation of these to specific software project
3. Software Quality Control – definition and enactment of processes that ensure
that project quality procedures and standards are being followed by the software
development team
4. Software Quality Metrics – collecting and analyzing quality data to predict and
control quality of the software product being developed
Software Quality Assurance (SQA) is simply a way to assure quality in the
software.
It is the set of activities which ensure processes, procedures as well as
standards suitable for the project and implemented correctly.
Software Quality Assurance is a process which works parallel to development
of a software.
It focuses on improving the process of development of software so that
problems can be prevented before they become a major issue.
Software Quality Assurance is a kind of an Umbrella activity that is applied
throughout the software process.
Software Quality Assurance have:
A quality management approach
Formal technical reviews
Multi testing strategy
Effective software engineering technology
Measurement and reporting mechanism
SQA Management Plan:
Make a plan how you will carry out the sqa through out the project. Think which set of software engineering
activities are the best for project.check level of sqa team skills.
Set The Check Points:
SQA team should set checkpoints. Evaluate the performance of the project on the basis of collected data on
different check points.
Multi testing Strategy:
Do not depend on single testing approach. When you have lot of testing approaches available use them.
Measure Change Impact:
The changes for making the correction of an error sometimes re introduces more errors keep the measure of
impact of change on project. Reset the new change to change check the compatibility of this fix with whole
project.
Manage Good Relations:
In the working environment managing the good relation with other teams involved in the project development
is mandatory. Bad relation of sqa team with programmers team will impact directly and badly on project. Don’t
play politics.
Benefits of Software Quality Assurance (SQA):
SQA produce high quality software.
High quality application saves time and cost.
SQA is beneficial for better reliability.
SQA is beneficial in the condition of no maintenance for long time.
High quality commercial software increase market share of company.
Improving the process of creating software.
Improves the quality of the software.
Disadvantage of SQA:
There are a number of disadvantages of quality assurance.
Some of them include adding more resources, employing more workers to help maintain quality and so much
more.
Why organization ignore SQA:
They think it is time consuming process
they think it increase the cost of project
Capability maturity model (CMM)

• CMM was developed by the Software Engineering Institute (SEI) at Carnegie


Mellon University in 1987.

• It is not a software process model. It is a framework which is used to analyse the


approach and techniques followed by any organization to develop software
products.
• It also provides guidelines to further enhance the maturity of the process used to
develop those software products.
• It is based on profound feedback and development practices adopted by the most
successful organizations worldwide.
• This model describes a strategy for software process improvement that should be
followed by moving through 5 different levels.
• It is use to judge the maturity of s/w process an org and to identify the key
practices that are required to increase the maturity of these process
• Each level of maturity shows a process capability level. All the levels except level-1
are further described by Key Process Areas (KPA’s)
• Capability Maturity Model is used as a benchmark to measure the maturity of an
organization's software process..
Methods of SEICMM
There are two methods of SEICMM:

Capability Evaluation: Capability evaluation provides a way to assess the software


process capability of an organization. The results of capability evaluation indicate the
likely contractor performance if the contractor is awarded a work. Therefore, the
results of the software process capability assessment can be used to select a
contractor.
Software Process Assessment: Software process assessment is used by an
organization to improve its process capability. Thus, this type of evaluation is for
purely internal use.
SEI CMM categorized software development industries into the following five maturity
levels. The various levels of SEI CMM have been designed so that it is easy for an
organization to build its quality system starting from scratch slowly.
Level 1: Initial
Ad hoc activities characterize a software development organization at this
level.
Very few or no processes are described and followed. Since software
production processes are not limited, different engineers follow their process
and as a result, development efforts become chaotic.
Therefore, it is also called a chaotic level.
Processes followed are ad hoc and immature and are not well defined.
Unstable environment for software devlopment.
No basis for predicting product quality, time for completion, etc.

Level-2: Repeatable –

Focuses on establishing basic project management policies.


Experience with earlier projects is used for managing new similar natured
projects.
At this level, the fundamental project management practices like tracking cost
and schedule are established. Size and cost estimation methods, like function
point analysis, COCOMO, etc. are used.
Key Process Areas (KPA’s):
project Planning- It includes defining resources required, goals, constraints,
etc. for the project. It presents a detailed plan to be followed systematically
for successful completion of a good quality software.
Configuration Management- The focus is on maintaining the performance of
the software product, including all its components, for the entire lifecycle.
Requirements Management- It includes the management of customer
reviews and feedback which result in some changes in the requirement set. It
also consists of accommodation of those modified requirements.
Subcontract Management- It focuses on the effective management of
qualified software contractors i.e. it manages the parts of the software which
are developed by third parties.
Software Quality Assurance- It guarantees a good quality software product
by following certain rules and quality standard guidelines while development.
Level 3: Defined
At this level, the methods for both management and development activities are
defined and documented.
There is a common organization-wide understanding of operations, roles, and
responsibilities.
The ways through defined, the process and product qualities are not measured. ISO
9000 goals at achieving this level.
At this level, documentation of the standard guidelines and procedures takes place.
It is a well defined integrated set of project specific software engineering and
management processes.
Key Process Areas (KPA’s):
Peer Reviews- In this method, defects are removed by using a number of review
methods like walkthroughs, inspections, buddy checks, etc.
Intergroup Coordination- It consists of planned interactions between different
development teams to ensure efficient and proper fulfilment of customer needs.
Organization Process Definition- It’s key focus is on the development and
maintenance of the standard development processes.
Organization Process Focus- It includes activities and practices that should be followed
to improve the process capabilities of an organization.
Training Programs- It focuses on the enhancement of knowledge and skills of the team
members including the developers and ensuring an increase in work efficiency.
Level-4: Managed –
At this stage, quantitative quality goals are set for the organization for software
products as well as software processes.
The measurements made help the organization to predict the product and process
quality within some limits defined quantitatively.
Key Process Areas (KPA’s):
Software Quality Management- It includes the establishment of plans and strategies
to develop a quantitative analysis and understanding of the product’s quality.
Quantitative Management- It focuses on controlling the project performance in a
quantitative manner.
Level-5: Optimizing –
This is the highest level of process maturity in CMM and focuses on continuous
process improvement in the organization using quantitative feedback.
Use of new tools, techniques and evaluation of software processes is done to prevent
recurrence of known defects
Key Process Areas (KPA’s): .
Process Change Management- Its focus is on the continuous improvement of
organization’s software processes to improve productivity, quality and cycle time for
the software product.
Technology Change Management- It consists of identification and use of new
technologies to improve product quality and decrease the product development time.
Defect Prevention- It focuses on identification of causes of defects and to prevent
them from recurring in future projects by improving project defined process.

You might also like