SW Quality
SW Quality
SW Quality
Software Quality
• Customers may want an efficient and reliable software with less concern for
portability.
• If on the other hand you spend infinite time, extremely large effort, and huge
sums of money to build the absolutely perfect piece of software, then it's
going to take so long to complete and it will be so expensive to produce that
you'll be out of business anyway.
• Either you missed the market window, or you simply exhausted all your
resources. So people in industry try to get to that magical middle ground
where the product is good enough not to be rejected right away, such as
during evaluation, but also not the object of so much perfectionism and so
much work that it would take too long or cost too much to complete. [Ven03]
McCall software quality model
• Software quality models were proposed to measure the quality of any software model.
• There are three widely accepted models when it comes to measuring software quality
• Reliability: It is difficult to construct large software systems which are correct. A few
functions may not work in all execution scenarios, and, therefore, the software is
considered to be incorrect. However, the software may still be acceptable to
customers because the execution scenarios causing the system to fail may not
frequently occur when the system is deployed. Moreover, customers may accept
software failures once in a while. Customers may still consider an incorrect system to
be reliable if the failure rate is very small and it does not adversely affect their mission
objectives. Reliability is a customer perception, and an incorrect software can still be
considered to be reliable.
McCall software quality model
• Efficiency: Efficiency concerns to what extent a software system utilizes
resources, such as computing power, memory, disk space, communication
bandwidth, and energy. A software system must utilize as little resources as
possible to perform its functionalities. For example, by utilizing less
communication bandwidth a base station in a cellular telephone network can
support more users.
• Integrity: A system’s integrity refers to its ability to withstand attacks to its
security. In other words, integrity refers to the extent to which access to
software or data by unauthorized persons or programs can be controlled.
Integrity has assumed a prominent role in today’s network-based
applications. Integrity is also an issue in multiuser systems.
McCall software quality model
• The QA group monitors and guides throughout the software development life
cycle. This is a defect prevention technique and concentrates on the process
of the software development.
• Performance Quality-
Will the software system deliver all content, functions, and options that are
such as a part of the necessities model during a method that gives worth to
the tip user?
• Reliability:
Will the software system deliver all options and capability while not failure?
Is it obtainable once it’s needed?
Will it deliver practicality that’s error-free?
• Durability:
Will the software system be maintained (changed) or corrected (debugged) while not the
accidental generation of unintentional facet effects? can changes cause the error rate or
responsibility to degrade with time?
• Lifespan before replacement
• Serviceability:
Will the software system be maintained (changed) or corrected (debugged) in a tolerably
short time period?
Will support employees acquire all data they have to create changes or correct
defects?Stephen A. Douglas Adams makes a wry comment that appears acceptable here:
“The distinction between one thing that may get it wrong and something that can’t
probably go wrong is that once something that can’t possibly go wrong goes wrong it
always seems to be not possible to urge at or repair.”
• Ease of getting repaired, speed and competence of rapairs
Garvin’s Dimensions Of Quality
• Aesthetics:
There’s no doubt that every folk includes a totally different and really
subjective vision of what’s aesthetic.
And yet, most folks would agree that an aesthetic entity includes a sure class,
a novel flow, and a clear “presence” that are arduous to quantify however are
evident still. The aesthetic software system has these characteristics.
• Perception:
In some things, you’ve got a collection of prejudices which will influence your
perception of quality. as an example, if you’re introduced to a software
product that was engineered by a seller United Nations agency has created
poor quality within the past, your guard is raised and your perception of the
present software product quality may be influenced negatively.Similarly, if a
seller has a wonderful name, you will understand quality, even once it doesn’t
very exist.
What is Software Quality Assurance?
• Later, based on the information gathered, the software designer can prepare
the project estimation using techniques like WBS (work breakdown structure),
SLOC (source line of codes), and FP(functional point) estimation.
SQA Activities
• #6) Enforcing Process Adherence: This activity insists the need for process adherence during the
software development process. The development process should also stick to the defined
procedures.
• This activity is a blend of two sub-activities which are explained below in detail:
• (i) Product Evaluation:
• This activity confirms that the software product is meeting the requirements that were discovered in
the project management plan. It ensures that the set standards for the project are followed correctly.
• By validating the change requests, evaluating the nature of change and controlling the change effect, it is
ensured that the software quality is maintained during the development and maintenance phases.
• For this purpose, we use software quality metrics which allows managers and developers to observe the
activities and proposed changes from the beginning till the end of SDLC and initiate corrective action
wherever required.
SQA Activities
• #9) Performing SQA Audits:
• The SQA audit inspects the entire actual SDLC process followed by comparing it against the
established process.
• It also checks whatever reported by the team in the status reports were actually performed or not.
This activity also exposes any non-compliance issues.
•
Software Quality Assurance Standards
• Test Maturity Model integration (TMMi): Based on CMMi, this model
focuses on maturity levels in software quality management and testing.
• Software quality metrics are a subset of software metrics that focus on the
quality aspects of the product, process, and project. These are more closely
associated with process and product metrics than with project metrics.
• Customer Satisfaction
• Customer satisfaction is often measured by customer survey data through
the five-point scale −
• Very satisfied
• Satisfied
• Neutral
• Dissatisfied
• Very dissatisfied
Software quality metrics
Product Quality Metrics
• Satisfaction with the overall quality of the product and its specific dimensions
is usually obtained through various methods of customer surveys. Based on
the five-point-scale data, several metrics with slight variations can be
constructed and used, depending on the purpose of analysis. For example −
• Percent of completely satisfied customers
• Percent of satisfied customers
• Percent of dis-satisfied customers
• Percent of non-satisfied customers
Usually, this percent satisfaction is used.
Software quality metrics
In-process Quality Metrics
This metric can be calculated for the entire development process, for the front-
end before code integration and for each phase. It is called early defect
removal when used for the front-end and phase effectiveness for specific
phases. The higher the value of the metric, the more effective the development
process and the fewer the defects passed to the next phase or to the field. This
metric is a key concept of the defect removal model for software development.
Software quality metrics
Maintenance Quality Metrics
• Fix Quality
• Fix quality or the number of defective fixes is another important quality metric for
the maintenance phase. A fix is defective if it did not fix the reported problem, or if
it fixed the original problem but injected a new defect. For mission-critical
software, defective fixes are detrimental to customer satisfaction. The metric of
percent defective fixes is the percentage of all fixes in a time interval that is
defective.
• A defective fix can be recorded in two ways: Record it in the month it was
discovered or record it in the month the fix was delivered. The first is a customer
measure; the second is a process measure. The difference between the two dates
is the latent period of the defective fix.
•
What is Software Quality Management?
• Quality Control - Ensure that best practices and standards are followed by
the software development team to produce quality products.
• What is Quality Assurance?
• Quality Assurance is defined as the auditing and reporting procedures used to
provide the stakeholders with data needed to make well-informed decisions.
• 7 QC Tools are basic Quality Control Tools which helps in solving quality
issues through data collection, Analysis of data, identification of cause and
measuring results.
Quality Tools
• Cause-and-effect diagram (also called
Ishikawa or fishbone diagrams):
Identifies many possible causes for an
effect or problem and sorts ideas into
useful categories.
• A fishbone diagram’s causes and
subcauses are usually grouped into six
main groups, including measurements,
materials, personnel, environment,
methods, and machines. These
categories can help you identify the
probable source of your problem while
keeping your diagram structured and
orderly.
Quality Tools
• Pareto chart: A bar graph that shows which factors are more significant.
• As a quality control tool, the Pareto chart operates according to the 80-20
rule. This rule assumes that in any process, 80% of a process’s or system’s
problems are caused by 20% of major factors, often referred to as the “vital
few.” The remaining 20% of problems are caused by 80% of minor factors.
• The goal of the Pareto chart is to highlight the relative importance of a variety
of parameters, allowing you to identify and focus your efforts on the factors
with the biggest impact on a specific part of a process or system.
Quality Tool
Pareto chart:
Quality Tools
• Scatter diagram: Graphs pairs of numerical data, one variable on each axis, to look
for a relationship.
• Out of the seven quality tools, the scatter diagram is most useful in depicting the
relationship between two variables, which is ideal for quality assurance professionals
trying to identify cause and effect relationships.
• With dependent values on the diagram’s Y-axis and independent values on the X-
axis, each dot represents a common intersection point. When joined, these dots can
highlight the relationship between the two variables. The stronger the correlation in
your diagram, the stronger the relationship between variables.
• Scatter diagrams can prove useful as a quality control tool when used to define
relationships between quality defects and possible causes such as environment,
activity, personnel, and other variables. Once the relationship between a particular
defect and its cause has been established, you can implement focused solutions
with (hopefully) better outcomes.
Quality Tools
• Control chart: Graph used to study how a process changes over time.
Comparing current data to historical control limits leads to conclusions about
whether the process variation is consistent (in control) or is unpredictable (out
of control, affected by special causes of variation).
• Using a control chart can save your organization time and money by
predicting process performance, particularly in terms of what your customer
or organization expects in your final product.
Quality Tools
• Mapping out your current process can help you to more effectively pinpoint
which activities are completed when and by whom, how processes flow from
one department or task to another, and which steps can be eliminated to
streamline your process.
•
Quality Tools
• Quality professionals are often tasked with analyzing and interpreting the
behavior of different groups of data in an effort to manage quality. This is
where quality control tools like the histogram come into play.
Quality Tools
• Check sheet: A structured, prepared form for collecting and analyzing data; a
generic tool that can be adapted for a wide variety of purposes.
• A check sheet collects data in the form of check or tally marks that indicate
how many times a particular value has occurred, allowing you to quickly zero
in on defects or errors within your process or product, defect patterns, and
even causes of specific defects.
Quality Tools
• With its simple setup and easy-to-read graphics, check sheets make it easy
to record preliminary frequency distribution data when measuring out
processes. This particular graphic can be used as a preliminary data
collection tool when creating histograms, bar graphs, and other quality tools.
Total Quality Management
• Customer first. TQM’s first and foremost pillar of success is an unwavering focus on
the customer’s experience in all interactions with the organization. From first contact
through purchase and continued support, the customer should always be the main
priority.
• The first step for implementing any new system is an honest assessment of
the organization as it is today.
• Plan: The planning phase is the most important. That’s where management, along
with the associates, identify the problems to see what really needs to be addressed
— the day-to-day things that may be happening on the productivity side that
management is not aware of. So they’re trying to determine a root cause.
Sometimes, employees do research or high-level tracking to narrow down where an
issue may originate.
• Do: The doing phase is the solution phase. Strategies are developed to try to fix
those problems identified in the planning phase. Employees may implement
solutions and if a solution doesn’t appear to work, it’s back to the drawing board. In
contrast to Six Sigma, it’s less about measuring gains and more about whether the
employees judge the solution to be working.
•
Total Quality Management
How Do You Implement Total Quality Management?
• Check: The checking phase is the before and after. So after you’ve made
these changes, you see how they’re doing.
• Act: The acting phase is the presentation or the documentation of the results
to let everybody know, ‘Hey, here’s how we were doing it. Here’s how it is
now. This is the new way, and this is what this should address going
forward.’”
How to implement TQM
• Each employee should take ownership of their role and be ready to consider
ways in which they can improve their own department and outputs.
How to implement TQM
•
How to implement TQM
• Manage errors
• One of the most important aspects of delivering quality is managing errors.
No matter how focused everyone is on driving quality, IT organizations will
always run into one issue or another.
• Creating processes that mitigate issues is essential for TQM success. Errors
should be addressed and dealt with as quickly as possible of course, but they
should also be recorded and tracked.
Total Quality Management
• Customers are the most significant part of the TQM equation. After all, they’re
the reason for TQM’s existence. Aside from the obvious feedback the sales
team provides, customers — product or service users — give information
about what they want from the deliverable, whether that deliverable is
tangible or a service.
Total Quality Management
• This will increase the awareness of quality culture within the organization.
• A special emphasis on teamwork will be achieved.
• TQM will lead to a commitment towards continuous improvement.
Software Testing Tools
• Software testing tools are required for the betterment of the application or
software.
• With the help of testing tools, we can improve our software performance,
deliver a high-quality product, and reduce the duration of testing, which is
spent on manual efforts.
• The software testing tools can be divided into the following:
• Test management tool
• Bug tracking tool
• Automated testing tool
• Performance testing tool
• Cross-browser testing tool
• Integration testing tool
• Unit testing tool
• Mobile/android testing tool
• GUI testing tool
• Security testing tool
Software testing tools
• Test management tool
• Test management tools are used to keep track of all the testing activity, fast data analysis, manage manual
and automation test cases, various environments, and plan and maintain manual testing as well.
• Example-1)TestLink -This is one of the very few open-source test management tools that are available for use
in the market. It is a web-based tool with typical features like test case creation abd maintenance, test suite
management, test runs, tracking bugs, reports, and integration with some common issue trackers.
• Example-1) Backlog is a popular bug and project tracking tool in one platform. It’s easy for anyone to report
bugs and keep track of a full history of issue updates and status changes. Development teams use Backlog to
work with other teams for enhanced team collaboration and high-quality project delivery.
Software testing tools
• Automation testing tool
• This type of tool is used to enhance the productivity of the product and
improve the accuracy. We can reduce the time and cost of the application
by writing some test scripts in any programming language.
• Integration testing tool- This type of tool is used to test the interface
between modules and find the critical bugs that are happened because of the
different modules and ensuring that all the modules are working as per the
client requirements.
Example-1) Citrus -: It is the most commonly used integration testing tool,
which is a test framework and written in the Java programming language. It is
used to take the request and respond to both server-side and client-side.
2) TESSY- It is an essential tool for integration testing that is used to execute
the integration and unit testing for the embedded software. It will take care of
the whole test organization along with the requirements, traceability, test
management, and the coverage measurement.
Software testing tools
• 2) Wapiti- One of the leading web application security testing tools, Wapiti is a free of
cost, open source project from SourceForge and devloop. In order to check web
applications for security vulnerabilities, Wapiti performs black box testing. As it is a
command-line application, it is important to have a knowledge of various commands
Reference