SOFTWARE QUALITY

You might also like

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

SOFTWARE QUALITY

BICTU1521
Quality?

 The term quality is complex and it can be defined in ways based on the
perspectives of the viewers. To start with,
 The Transcendental View, which argues that quality, is something that you
recognize but cannot explicitly define.
 The user View sees quality in terms in terms of end users specific goals once it
meet them.
 The manufactures View defines quality in terms of the original specification of
the product.
 The product view suggests that quality can be tied to inherent characteristics of
a product.
 The value based view measures quality based on how a customer is willing to
pay for a product.
Quality of design
 Refers to the characteristics that designers specify for a product. Some of
the factors that contribute to quality of design includes the grade of
materials, tolerances, and performance specifications. Quality of design
encompasses the degree to which the quality design meets the functions
and features specified in the requirements model.
Quality of conformance
 It focuses on the degree to which the implementation follows the design
and the resulting system meets its requirements and performance goals.
SOFTWARE QAULITY

 Software quality is an effective software process applied in a manner that


creates s useful product that provides measurable value for those who
produce it and those who use it.
 Key metrics for Software Quality
 An effective software Process establishes the infrastructure that supports
any effort at building a high quality software product
 A useful product delivers the contents, functions, features that the end user
desires, but as important, it delivers these assets in a reliable, error-free way.
 By adding value for both value for both the producer and user of a
software product.
Quality factors
The ISO 25010 standard defines two quality models.

Quality in use Model Product Quality model


 Characteristics  Characteristics
 Effectiveness  Functional suitability
 Efficiency  Performance efficiency
 Satisfaction  Compatibility
 Freedom from risk  Usability
 Context coverage  Reality
 Security
 Maintainability
 Portability
QUALITATIVE QUALITY ASSESSMENT

 To conduct the assessment, the team will need to address specific,


measurable attributes of the interface. Some of the questions to be
answered include
 How quickly can users determine whether the software product can be
used to help them complete their task or not
 How long does it take users to learn how to use system functions needed to
complete their task?
 Is the user able to recall how to use system functions in subsequent testing
sessions?
 How long does it take users to complete tasks using the system?
THE SOFTWARE QUALITY DILEMMA

 Quality dilemma comes when you produce software system that has
terrible quality after spending time over the product.
 The product becomes useless since no needs it. Certain good principles
are needed to produce good software. When faced with quality dilemma,
try to achieve balance-enough effort to produce acceptable quality
without burying the project.
A. GOOD ENOUGH SOFTWARE

 This involves delivering high-quality functions and features that end users
desire, but at the same, it delivers other more specialized functions and
features that contains known bugs because they are so happy with other
with other application functionality.
B.The cost of Quality

 This includes all the costs incurred in the pursuit of quality or in performing
quality related activities and the downstream costs of lack of quality.
 The cost of quality can be divided into the costs associated with
prevention, appraisal and failure.
 Prevention costs include the cost the cost of management activities
required to plan and coordinate all quality control and quality assurance
activities, the cost of added technical activities to develop complete
requirements and design models, test-planning costs and the costs all
training associated with these activities.
 Appraisal costs include activities to gain insights into product condition the
first time through each process. Examples of these costs include the cost of
conducting technical reviews, the cost of data collection and metrics
evaluation and the cost of testing and debugging.
 Failure costs are those that would disappear if no errors appeared before
shipping a product to customers. These can be internal failure costs, which
are incurred when you detect an error in a product prior to shipment.
Example includes, the cost required to perform rework to correct errors, the
cost that occur when rework inadvertently generates side effects that must
be mitigated. External failure costs are associated with defects found after
the product has been shipped to the customer.
C. RISKS
 The implication is that low quality software increases risks for both the
developer and the end user.
D.QUALITY AND SECURITY
 To build a secure system, you must focus on quality and the focus must
begin during design.
E. NEGLIGENCE AND LIABILITY
 The governmental entity hires a major software developer to analyse
requirements and then design and construct a software-based system to
support some major activity.
 The system might support a major corporate function or some
governmental function e.g. health care administration. Upon delivery when
bad things happen, the system is late, error-prone, and does not meet the
with customer approval. The customer claims, the customer claims that the
developer has been negligent and therefor entitled to payment.
F. THE IMPACT OF MANAGEMET ACTIONS

 Software quality is influenced as much as by the management decisions as


it is by technology decisions. As each project task is initiated, a project
leader will make decisions that can have a significant impact on product
quality.
A.Estimation Decisions
 A software team is rarely given the luxury of providing an estimate for a
project before delivery dates are established and an overall budget is
specified. Instead, the team conduct a sanity check to ensure that
delivery.
B. Scheduling Decisions
 When a software project schedule is established, tasks are sequenced
based on dependencies. When a project gets tight, rushing tasks can hide
defects. Testing component A before its dependent parts (B, C, D) might
meet a deadline, but A is hidden flaws could cause later issues.
C. Risk oriented decisions
 Skipping risk planning creates chaos. Assuming everything goes smoothly
sets a project up for disaster. When a predicted risk hits, quality suffers
under the resulting scramble.
ELEMENTS OF SOFTWARE QUALITY
ASSURANCE

 Software quality assurance encompasses a broad range of concerns and


activities that focus on the management of software quality.
 Standards
 There are many guidelines and rules for software development created by
organizations like IEEE and ISO. These "standards" can be voluntarily
followed by software development teams or required by the customer or
someone else involved in the project. The job of Software Quality
Assurance (SQA) is to make sure these chosen standards are followed, and
that everything produced during development meets those standards.
 Reviews and Audit
 Software engineers review each other's work (code, designs, etc.) to find
mistakes. This is like getting a second pair of eyes to catch errors. Software
Quality Assurance (SQA) goes a step further. They check to make sure these
reviews are happening properly and that everyone is following the established
quality guidelines. It is like inspecting the inspection process.
 Testing.
 SQA makes sure testing is well planned and thorough to find as many errors as
possible.
 Error Tracking: SQA gathers and analyses data on errors found during
development. This helps them understand how errors happen and how to
prevent them in the future.
 Risk Management
SQA PROCESSES AND PRODUCT
CHARACTERISTICS

 There is no one-size-fits-all approach to software quality assurance (SQA).


Even within the same company, different software projects may have
different quality needs. The key is to understand the specific quality
requirements for each project and then choose the SQA processes and
tasks that will best meet those needs.
 There are popular frameworks like CMMI and ISO 9000 that provide
guidance on good software engineering practices. However, you do not
necessarily need to follow them entirely. Instead, you can choose
elements from these frameworks to create a customized SQA approach
that aligns with the specific quality goals of your project.
 Change Management: When things need to change during development, SQA
ensures it is done in a controlled way to avoid confusion and maintain quality.
 Education: SQA helps improve software development by providing training and
education for everyone involved in the project.

 Vendor Management: If software is purchased from outside companies, SQA


works with them to ensure they follow good quality practices.
 Security Management: SQA makes sure the software development process
includes steps to protect user data and prevent hacking.

 Safety: For systems where software failure could be dangerous (like airplanes or
cars), SQA helps assess the risks and take steps to minimize them. They might
also be involved in creating backup plans in case of software problems.
SQA TASK, GOALS AND METRICS

 Software quality assurance (SQA) is not a single job, but a collaboration


between two groups:
 Software engineers: These folks write the code and do the technical work.
They also play a role in quality by using good development practices,
doing code reviews, and testing their own work.
 SQA group: This separate team focuses specifically on quality assurance.
They plan and oversee the overall SQA process, keep records, analyse
results, and report on software quality
Modern SQA often relies heavily on data
Here's the basic flow:

 Goals and Measures: People involved in the project (stakeholders) define


what "quality" means for this software and how they will measure it.
 Identify Issues: The SQA team looks for areas where quality might be
lacking.
 Track Progress: They track specific metrics to see how well the software is
meeting those quality goals.
 Adapt and Improve: Based on the data, they decide if changes are
needed in the development process to improve the software's quality.
SQA TASKS

 An independent Software Quality Assurance (SQA) group plays a key role


in following best practices throughout the development process.
 SQA Plan: They create a plan for the project that outlines what quality
checks will be done, what standards apply, and how errors will be tracked.
Everyone involved in the project reviews and agrees to this plan.
 Process Review: They ensure the chosen development process aligns with
company policies, software standards, and any external requirements (like
ISO 9001).
 Activity Monitoring: They check to see if the development team is following
the established process and address any deviations they find.
 Product Audits: They regularly review software deliverables (like code or
designs) to make sure they meet quality standards and identify any issues.
 Deviation Management: If there are variations from the plan, process, or
standards, they document them and ensure they are properly addressed.
 Reporting: They report any problems or non-compliance to project
managers and senior management.
What SQA aims to achieve?

 Requirements Quality:
 Ensure the requirements for the software are accurate, complete, and do
not contradict each other. This is important because any issues here will
cause problems throughout development.
 The attributes associated with Requirements quality includes, ambiguity,
completeness, understand ability, volatility, traceability, model clarity.
 Design Quality: Make sure the software's design is well thought out, high
quality, and meets the defined requirements. The SQA team looks for
specific indicators in the design that show it is well made.
 The attributes include Architectural integrity, components completeness
interface complexity, patterns.
 Code Quality: Code should follow established coding standards and be
easy to understand and maintain in the future. SQA focuses on identifying
characteristics that allow them to assess the code's quality.
 The attributes include complexity, maintainability, under stability, reusability,
documentation
 Quality Control Effectiveness:
 SQA plays a role in making sure resources for reviews and testing are used
efficiently. They analyse how these resources are allocated to ensure they
get the most quality improvement for their effort.
 The attributes includes, resource allocation, completion rate, review
effectiveness, testing effectiveness.
NEXT SOFTWARE TESTING

You might also like