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

Software Quality Management (SQM)

Software Quality Management is a process that ensures the required level of software quality is
achieved when it reaches the users, so that they are satisfied by its performance. The process
involves quality assurance, quality planning, and quality control.
Software Quality Management ensures that the required level of quality is achieved by submitting
improvements to the product development process. It aims to develop a culture within the team
and it is seen as everyone's responsibility.
Software Quality management should be independent of project management to ensure
independence of cost and schedule adherences. It directly affects the process quality and indirectly
affects the product quality.

Software Quality Management (SQM) is the management aspects of developing quality


software. SQM starts with an idea for a product and then continues on through the design,
testing, and launch phases.

Software quality management activities are generally divided up into three core components:
quality assurance, quality planning, and quality control.

Quality Assurance

Set up an organized and logical set of organizational processes deciding on software


development standards paired with regulatory processes; a better chance to produce high-quality
software. The quality assurance phase of SQM involves the actual building of the software
program. With good SQM in place, product performance will be checked along the way to
ensure that all standards are being followed. Testers will audit and collect data throughout the
entire process.

This stage can include -

 Identifying standards if any used in software development processes.


 To conduct conventional processes, such as quality reviews.
 Perform in-process test data recording procedures.
 Encouraging documentation process standards.

Quality Planning

Before software development begins, quality planning must take place. During quality planning,
testers create goals and objectives for your software, as well as a strategic plan that will help you
to successfully meet those objectives. Quality planning is considered the most important aspect
of SQM, as it develops a strong blueprint for the rest of the process to follow.

Quality planning defining the quality attributes associated with the output of the project. How
those attributes assessed? Characteristics such as "robustness," "accessibility," and "modularity"
attached to the software development project. The quality plan may also address the intended
market, critical release dates, quality goals, expected risks, and risk management policy.

Quality Control

The quality control team test and review software to ensure quality assurance processes and
standards at both the organizational and project level. In software development firms implement
the agile quality approach, a switch to agile methods from a more formal quality management
structure create problems if control procedures aren't appropriately adapted.

Activities include -

 A follow-up review of software to ensure any required changes detailed in the previous testing
addressed.
 Release testing of software with proper documentation of the testing process
 Apply software measurement and metrics for assessment.
 Examine software and associated documentation for non-conformance with standards.

What are the benefits of Software Quality?

Some of the benefits of Software quality are -

 Increased productivity of the development team.


 Improved Product Quality - Test statistics and defect tracking are more precise and up to date.
 Decreased re-work costs as the detection of defects are found earlier in software project
development life cycle in every stage.
 Increased confidence levels in existing product management and future product development.
 Increased credibility as the software produced will be highly qualitative.
 Saves Money.
 Inspires Client Confidence.
 Maintains Great User Experience.
 Brings In More Profit.
 Boosts Customer Satisfaction.

Why Software Quality Management is important?

For a successful business that develops software, software quality must be the requirement-
cannot be an exception. Consider the ways it can impact business.

Predictability

Software quality drives predictability. Predictability decreases as re-work grows, and lower
quality product increases. Do it once and right, and there will be less variation in productivity,
less re-work, and better performance overall. Products get delivered on time. Poor quality is
hugely more difficult to manage.
Reputation

A significant, solid reputation is hard to establish and easy to lose, but when the company has it,
it’s a powerful business driver. A few mistakes and fame can be gone, creating significant
obstacles to sales, and consequently, your bottom line.

Employee Morale

The happiest and productive employees have pride in the work. Enabling employees to build
software will drive a higher level of productivity and morale. Inferior products, lots of re-work,
unhappy customers and difficulty making deadlines have the opposite effect, leading to a less
productive workforce and high turnover.

Customer Satisfaction

A quality product satisfies the customer. A satisfied customer comes back for provides positive
referrals. Customer loyalty heavily drives by the quality of the software produced and the service
offer. With social media channels such as Facebook and Twitter, positive references can spread
quickly. Poor quality and dissatisfaction can also rapidly communicate, if not even quicker than
the good ones.

Bottom Line

Predictable and productive performance, happy employees, a stellar reputation, and satisfied
customers are the formula for a successful software business. It all drives the bottom line.
Quality impact various areas of software development projects.

How to adopt Software Quality Management?

It’s essential to lower the cost of testing and improve the quality of software. These four points
will help to enhance the quality of software and improve testing efficiency.

Test at the right time

By testing earlier, will be able to detect and solve defects rather than having to resolve them at
the end of the process. The software bugs identified, the longer and more expensive they are to
fix. Involved testers during the requirements and design so they can help formulate a more useful
framework. More than 70 percent of issues in a live environment traced back to poor conditions.
Improve testing organization

Implement specific policies to direct a consistent approach like using repeatable industry
standard testing processes and training testers within this framework.

Innovation leads to improvement

Do not get stuck in the same old routine – embrace new approaches.

Keep reviewing

Just because specific methods have worked in the past doesn’t mean they always will. Processes
of evaluation and refactoring allow the testing team to maximize efficiency by reviewing what
worked well. Implement a Cause analysis process which distinguishes whether issues were a
‘testing miss,’ a ‘development miss’ or a ‘requirements or design miss.’ Identify areas for
improvement throughout the whole software development process.

What are the best practices of it?

The best practices for Software Quality are -

Measure the Importance of Quality and Plan QA Process

An initial step to prevent future programming errors. Plan for the development approach, high-
quality design and code need the involvement of the QA team. To avoid the failure of the quality
of the end product, the input and output of the QA process need to be well defined, planned and
documented as well.

Analyze Quality Benchmarks

Requirements gathering is an essential part of the development cycle as well as quality


assurance. Everything includes the application features, design, functionalities, scalability,
reliability, efficiency, usability, etc. to check whether the application will meet the quality
benchmarks or not.

Adopt ‘Test Early Test Often’ Principle

Nowadays, we are adopting an agile development approach for faster quality application
releases. Hence, it becomes highly essential for the QA teams to ensure the development efforts
not dumped. The principle of “Test Early Test Often” will help the QA teams to find the bugs
early and often to confirm continuous delivery.
Merge QA & Development Efforts with DevOps

It is highly recommended to merge operations, development, and testing processes with DevOps,
to ensure continuous improvement in the end application.

Engage in Continuous Testing

It is a process of performing testing continuously on each (even minor) to check whether each
build is successful. If not, we can quickly identify them on time and make necessary changes and
again take them into the testing process. A process which each QA teams across the globe need
to adopt for continuous delivery of the end product. Continuous testing can be automated.

Utilize Ready-Made Test Frameworks

It is better to utilize ready-made testing frameworks. It helps the QA teams with appropriately
managing end-to-end testing cycles and ensuring continuous integrations and deliveries.

Some of more best practices are -

 Deploy Automated Testing.


 Choose the Right Test Automation Tool.
 Report Bugs Effectively.
 Become a QA Detective.
 Check for the Available Resources.
 Allocate Time Appropriately.
 Ensure Management Transparency.
 Update Yourself with Market Trends.
 Share Knowledge Extensively.
 Always Offer Feedback.
 Get Prepared for the Challenges.
 Hire Dedicated QA teams.

Key Software Quality Tools

New and updated tools continue to proliferate across the software quality spectrum with
expanding options in Testing Automation, Performance Testing, Mobile testing, Niche testing,
bug tracking and more. Here are some favorite software quality tools -

 Selenium (Web Application Testing)


 Robot Framework (Acceptance Testing)
 Appium (Mobile Testing)
 JMeter (Load Testing)
 Jenkins (Continuous Testing)
 Postman/Robot framework (API Testing)
 Firebug / Firepath (Online Debugging)
 GitLab (Project & Source Code Hosting)
 Trello, Wekan board (Defect Tracking & Collaboration)
 UIAutomator (Galen Framework)
 Pycharm, Eclipse (Source code Editor), etc.

What is Total Quality Management (TQM)?

Total quality management (TQM) is a management technique that emphasizes continuous


improvement over all the mechanisms of the organization to make quality products and services
to maintain long-term customer satisfaction as well as employees. TQM is designed to bring
awareness of quality in all organizational processes. It is generally applied in manufacturing,
education, government, and service organizations.

Total quality management gives an umbrella below which everyone in the company can
endeavor and build customer happiness. It consists of three qualities, quality of return to satisfy
the needs of shareholders, quality of products and services to satisfy some specific needs of
customers, and quality of life at work and outside job to meet the requirements of the employees
in the company.

Some important definitions of TQM are:

International Organization For Standardization (ISO) – TQM is a management approach for an


organization, 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 organization
and society.

Ricky W. Griffin – A strategy commitment by top management to change its whole approach to
business to make quality a guiding factor in everything it does.

Robert Kreitner – Total quality management (TQM) is defined as creating an organizational


culture committed to the continuous improvement of skills, teamwork, processes, and product
and service quality, and customer satisfaction.

Robbins and Coulter – Total quality management is a philosophy of management that is driven
by customer’s needs and expectations and focuses on continual improvement in the work
process.
TQM ensures that things are done right the first time, and defects and waste are eliminated from
operations. A business that adopts TQM must realize changes in all spheres of administration. It
requires reviewing its strategies, plans, policies, and practices as per the necessities of the
market.
TQM has four objectives:

 Better quality of product or service.


 The quicker response to customer needs.
 Greater flexibility in adjusting to customers shifting requirements.
 Lower cost through quality improvement and elimination of non-value-adding work.

Principles of Total Quality Management

Following are the major principles of TQM:

 Customer First: In total quality management customers are the focus point. For the
satisfaction of them, the quality of products and service is implemented.
 Continuous Improvement: TQM ensures until unless the organization runs its activities,
all the activities should be reviewed continuously from time to time.
 Participative Management: Employees should participate in the decision-making and
planning process. This makes feel them valuable at work.
 Fact-Based Decision Making: TQM ensures real data rather than guesswork.
 Effective Communication: Two-way communication system ensures effectiveness in
communication.
 Integrated System: All the activities of the organization should be integrated to achieve
one specific goal.
 Strategic: TQM must have a vision and the ability to make it real.
 Process-Based: TQM activities are process-based.
 Teamwork: An effective team helps to develop team spirit among the members.

Tools and Techniques To Achieve TQM

Organizations can apply several tools and techniques to improve total quality management. The
famous with them are benchmarking outsourcing, speed, ISO 9000, and statistical quality control
techniques.

#1 Benchmarking
Benchmarking is the process of searching for the most trustworthy practice amongst opponents
that drives to their greater performance. It is an evaluation and comparison of an organization’s
own products and processes against the very best in the market. It is a highly specialized form
of environmental scanning.

Benchmarking involves looking at similar firms to examine how they have achieved the best
performance levels and to understand the process they use. It helps to examine the essence
behind the excellent performance. This allows organizations to develop the best practice which
helps to improve performance.

Application of benchmarking involves four steps:


 Understanding in detail the existing business practice.
 Analyzing the business process of others.
 Compare own business performance with that of others analyzed.
 Implementing the steps necessary to close the performance gap.

#2 Outsourcing
Outsourcing is the process of subcontracting some of the jobs to other organizations to bring
quality and get the benefit of specialization. It is an important means of reducing costs and
improving quality.

If an organization performs every activity by itself, it may not be able to perform it efficiently
and the quality of product and service also be inferior. Thus, the organization needs to identify
certain areas that can be outsourced to minimize the cost of operation and to produce higher
quality.

#3 Speed
Speed is the time required to perform a specific activity for an organization. It is needed in all
areas including development, production, and distribution of products or services. Many
organizations are using speed for competitive advantage today.

Increasing speed will give organizations a strategic advantage and helps them to complete the
task more effectively. Speed has become an important competitive advantage today. It involves
not only doing the same things faster but also rethinking, and redesigning the whole business
cycle.

#4 ISO 9000
The international organization for standardization (ISO) is an international standard-setting body
composed of representatives from various national standard bodies. It was found on 23, February
1947.
There are five sets of standards covering areas such as product testing, employee training, record
keeping, supplier relations, and repair policies and procedures starting from 9000 to 9004. Firms
that meet these standards apply for certification and are audited by a firm’s domestic affiliation
organization. It develops quality standards over a wide range of quality systems, which add value
to the business operations.

#5 Statistical Quality Control (SQC)


Statistical quality control is a set of specific statistical techniques which is applied to monitor the
quality of goods or services. It measures the degree of conformance of the various factors
involved in processing the products based on specifications. It is based on statistical and
probability theories. It seeks to control quality through incoming materials, processing, and the
output produced.
Total quality management benefits and advantages:

 Strengthened competitive position


 Adaptability to changing or emerging market conditions and to environmental and other
government regulations
 Higher productivity
 Enhanced market image
 Elimination of defects and waste
 Reduced costs and better cost management
 Higher profitability
 Improved customer focus and satisfaction
 Increased customer loyalty and retention
 Increased job security
 Improved employee morale
 Enhanced shareholder and stakeholder value
 Improved and innovative processes

Six Sigma - Introduction


Six Sigma is a highly disciplined process that helps us focus on developing and delivering near-
perfect products and services.

Features of Six Sigma

 Six Sigma's aim is to eliminate waste and inefficiency, thereby increasing customer
satisfaction by delivering what the customer is expecting.
 Six Sigma follows a structured methodology, and has defined roles for the participants.
 Six Sigma is a data driven methodology, and requires accurate data collection for the
processes being analyzed.
 Six Sigma is about putting results on Financial Statements.
 Six Sigma is a business-driven, multi-dimensional structured approach for −
o Improving Processes
o Lowering Defects
o Reducing process variability
o Reducing costs
o Increasing customer satisfaction
o Increased profits
The word Sigma is a statistical term that measures how far a given process deviates from
perfection.
The central idea behind Six Sigma: If you can measure how many "defects" you have in a process,
you can systematically figure out how to eliminate them and get as close to "zero defects" as
possible and specifically it means a failure rate of 3.4 parts per million or 99.9997% perfect.
Key Concepts of Six Sigma

At its core, Six Sigma revolves around a few key concepts.


 Critical to Quality − Attributes most important to the customer.
 Defect − Failing to deliver what the customer wants.
 Process Capability − What your process can deliver.
 Variation − What the customer sees and feels.
 Stable Operations − Ensuring consistent, predictable processes to improve what the
customer sees and feels.
 Design for Six Sigma − Designing to meet customer needs and process capability.
Our Customers Feel the Variance, Not the Mean. So Six Sigma focuses first on reducing process
variation and then on improving the process capability.

Benefits of Six Sigma

Six Sigma offers six major benefits that attract companies −

 Generates sustained success


 Sets a performance goal for everyone
 Enhances value to customers
 Accelerates the rate of improvement
 Promotes learning and cross-pollination
 Executes strategic change
There are three key elements of Six Sigma Process Improvement −

 Customers
 Processes
 Employees

The Customers

Customers define quality. They expect performance, reliability, competitive prices, on-time
delivery, service, clear and correct transaction processing and more. This means it is important to
provide what the customers need to gain customer delight.

The Processes

Defining processes as well as defining their metrics and measures is the central aspect of Six
Sigma.
In a business, the quality should be looked from the customer's perspective and so we must look
at a defined process from the outside-in.
By understanding the transaction lifecycle from the customer's needs and processes, we can
discover what they are seeing and feeling. This gives a chance to identify weak areas with in a
process and then we can improve them.

The Employees

A company must involve all its employees in the Six Sigma program. Company must provide
opportunities and incentives for employees to focus their talents and ability to satisfy customers.
It is important to Six Sigma that all the team members should have a well-defined role with
measurable objectives.
Six Sigma - Organization
Under a Six Sigma program, the members of an organization are assigned specific roles to play,
each with a title. This highly structured format is necessary in order to implement Six Sigma
throughout the organization.
There are seven specific responsibilities or "role areas" in a Six Sigma program, which are as
follows.

Leadership

A leadership team or council defines the goals and objectives in the Six Sigma process. Just as a
corporate leader sets a tone and course to achieve an objective, the Six Sigma council sets the goals
to be met by the team. Here is the list of leadership Council Responsibilities −

 Defines the purpose of the Six Sigma program


 Explains how the result is going to benefit the customer
 Sets a schedule for work and interim deadlines
 Develops a mean for review and oversight
 Support team members and defend established positions

Sponsor

Six Sigma sponsors are high-level individuals who understand Six Sigma and are committed to its
success. The individual in the sponsor role acts as a problem solver for the ongoing Six Sigma
project. Six Sigma is generally led by a full-time, high-level champion, such as an Executive Vice
President.
Sponsors are the owners of processes and systems, who help initiate and coordinate Six Sigma
improvement activities in their areas of responsibilities.

Implementation Leader

The person responsible for supervising the Six Sigma team effort, who supports the leadership
council by ensuring that the work of the team is completed in the desired manner, is the
implementation Leader.
Ensuring success of the implementation plan and solving problems as they arise, training as
needed, and assisting sponsors in motivating the team are some of the key responsibilities of an
implementation leader.

Coach

Coach is a Six Sigma expert or consultant who sets a schedule, defines result of a project, and who
mediates conflict, or deals with resistance to the program.
Duties include working as a go-between for sponsor and leadership, scheduling the work of the
team, identifying and defining the desired results of the project, mediating disagreements,
conflicts, and resistance to the program and identifying success as it occurs.

Team Leader

It is an individual responsible for overseeing the work of the team and for acting as a go-between
with the sponsor and the team members.
Responsibilities include communication with the sponsor in defining project goals and rationale,
picking and assisting team members and other resources, keeping the project on schedule, and
keeping track of steps in the process as they are completed.

Team Member

An employee who works on a Six Sigma project, given specific duties within a project, and has
deadlines to meet in reaching specific project goals.
Team members execute specific Six Sigma assignments and work with other members of the team
within a defined project schedule, to reach specifically identified goals.

Process Owner
A process owner in six sigma is a senior business executive, who is in charge of the business
process that a Six Sigma project is trying to improve

Six Sigma - Methodology


The individual who takes on responsibility for a process after a Six Sigma team has completed its
work.
Six Sigma has two key methodologies −
 DMAIC (Define --> Measure --> Analyze --> Improve -->Control) − It refers to a data-
driven quality strategy for improving processes. This methodology is used to improve an
existing business process.
 DMADV (Define --> Measure --> Analyze --> Design -->Verify) − It refers to a data-
driven quality strategy for designing products & processes. This methodology is used to
create new product designs or process designs in such a way that it results in a more
predictable, mature and defect free performance.
ISO 9126

ISO/IEC 9126 is an international standard proposed to make sure ‘quality of all software-
intensive products’ which includes a system like safety-critical where in case of failure of
software lives will be in jeopardy. ISO i.e. International Organization for standardization and
IEC i.e. International Electro-technical Commission have developed ISO/IEC 9126 standards
for software engineering –> Product Quality to provide an all-inclusive specification
and evaluation model for the quality of the software product.
The standard is divided into 4 parts as depicted in the following figure:

Part-1 “Quality model”:


It describes quality model framework which explains relationships between different
approaches to quality as well as identifying quality characteristics and sub-characteristics of
software products.
Part-2 “External Metrices”:
It’s use is to describes external metrices that are used to measure characteristics and sub-
characteristics which are identifies in part 1.
Part-3 “Internal Metrices”:
It’s use is to describes internal metrices that are used to measure characteristics and sub-
characteristics which are identifies in part 1.
Part-4 “Quality in use metrices”:
It’s use is to identify metrices which are used to measure effects of combined quality
characteristics for user.

It is concluded that first three parts are concerned with describing and measuring quality of
software product and fourth part concerned about quality of software product from user point
of view.
Furthermore, first part i.e. Quality model is concerned classified into two categories as
depicted in the following figure:
Internal External Quality Part: It determines the quality of a software product through six
characteristics which are Functionality, Reliability, Usability, Efficiency, Maintainability and
Portability. Each characteristics is subdivided into related sub-characteristics which are also
depicted in the above example.

1. Functionality: The functions are those that will satisfy implied needs.
 Suitability
 Accuracy
 Interoperability
 Security
 Functionality Compliance
2. Reliability: A set of attributes that will bear on the capability of software to maintain the
level of performance.
 Maturity
 Fault Tolerance
 Recoverability
 Reliability Compliance
3. Usability: A set of attributes that bear on the effort needed for use by a implied set of
users.
 Understandability
 Learn ability
 Operability
 Attractiveness
 Usability Compliance
4. Efficiency: A set of attributes that bear on the relationship between the level of
performance of the software under stated conditions.
 Time Behavior
 Resource Utilization
 Efficiency Compliance
5. Maintainability: A set of attributes that bear on the effort needed to make specified
modifications.
 Analyzability
 Changeability
 Stability
 Testability
 Maintainability Compliance
6. Portability: A set of attributes that bear on the ability of software to be transferred from
one environment to another.
 Adaptability
 Installability
 Co-existence
 Replace ability
 Portability Compliance

Quality in use Model: It identifies the four quality characteristics i.e. Effectiveness,
Productivity, Safety, Satisfaction.

The place of software quality in project planning


While quality is generally agreed to be ‘ a good thing’ , in practice what people really mean by
the ‘quality’ of a system can be vague .We therefore need to define precisely what qualities we
require of a system. However this is not enough- we need to judge objectively whether a system
meets our quality requirements and this need measurement.
Quality will be of concern at all stages of project planning and execution, but will be particular
interest at stepwise framework.
Identifying project scope and objectives: Some objective could relate to the quality of the
application to be delivered
Identifying project infrastructure: Within this step activity identifies installation standards and
procedures. Some of these will almost certainly be about quality requirements.
Analyze project characteristics: In this activity the application to be implemented will be
examined to see if it has any special quality requirements.
Identify the product and activities of the project: It is at that point the entry, exit and process
requirement are identified for each activity.
Review and publicize plan: At this stage the overall quality aspects of the project plan are
reviewed.

You might also like