The document discusses software quality assurance and testing. It defines software quality as having two aspects - quality of design which includes requirements and specifications, and quality of conformance which focuses on implementation. Software Quality Assurance (SQA) includes quality management, effective engineering processes, formal techniques, testing strategies, documentation control, and measurement/reporting. SQA aims to ensure requirements quality, design quality, code quality, and effective quality control. Non-functional attributes like reliability, usability, and performance largely determine a software's subjective quality from a user's perspective.
Introduction to the theme of software quality and testing presented by Ajeng Savitri Puspaningrum.
Objectives include understanding quality concepts and software quality assurance.
Software quality focuses on design and conformance, emphasizing user satisfaction metrics. Discussion of the state and challenges of software quality, including the quality dilemma.
Explanation of software quality standards and their importance in quality management.
Significance of effective software processes and adherence to product and process standards.
Defining useful software products and the criteria for software quality assurance.
SQA goals focus on high-quality requirements, design, code quality and effective resource allocation.
References for further reading on software quality and a conclusion to the presentation.
QUALITY
• The AmericanHeritage Dictionary defines quality as
• “a characteristic or attribute of something.”
• For software, two kinds of quality may be encountered:
• Quality of design encompasses requirements, specifications, and the
design of the system.
• Quality of conformance is an issue focused primarily on implementation.
• User satisfaction = compliant product + good quality + delivery within
budget and schedule
4
5.
SOFTWARE QUALITY
• In2005, ComputerWorld [Hil05] lamented that
• “bad software plagues nearly every organization that uses computers, causing lost
work hours during computer downtime, lost or corrupted data, missed sales
opportunities, high IT support and maintenance costs, and low customer satisfaction.
• A year later, InfoWorld [Fos06] wrote about
• the “the sorry state of software quality” reporting that the quality problem had not
gotten any better.
• Today, software quality remains an issue, but who is to blame?
• Customers blame developers, arguing that sloppy practices lead to low-quality
software.
• Developers blame customers (and other stakeholders), arguing that irrational
delivery dates and a continuing stream of changes force them to deliver software
before it has been fully validated.
5
6.
DEFINITION
• Software qualitycan be defined as:
• An effective software process applied in a manner that creates a useful
product that provides measurable value for those who produce it and those
who use it.
• This definition has been adapted from [Bes04] and replaces a more
manufacturing-oriented view presented in earlier editions of this
book.
7.
CONCEPT
• Software QualityAssurance (SQA) is a protective activity that is
applied to all software.
• SQA Includes:
1. Quality Management Approach
2. Effective software engineering technology (methods and tools)
3. Study of formal techniques applied to the entire software process
4. Multitiered testing strategy
5. Control software documentation and changes made to it.
6. Procedures to ensure compliance with software development standards
(When applicable)
7. Measuring and reporting mechanism
8.
SOFTWARE QUALITY FOCUS
•Quality, simplistically, means that a product should meet its
specification.
• This is problematical for software systems
• There is a tension between customer quality requirements (efficiency,
reliability, etc.) and developer quality requirements (maintainability,
reusability, etc.);
• Some quality requirements are difficult to specify in an unambiguous way;
• Software specifications are usually incomplete and often inconsistent.
• The focus may be ‘fitness for purpose’ rather than specification
conformance.
8
9.
SOFTWARE FITNESS FORPURPOSE
• Has the software been properly tested?
• Is the software sufficiently dependable to be put into use?
• Is the performance of the software acceptable for normal use?
• Is the software usable?
• Is the software well-structured and understandable?
• Have programming and documentation standards been followed in
the development process?
9
10.
NON-FUNCTIONAL CHARACTERISTICS
• Thesubjective quality of a software system is
largely based on its non-functional
characteristics.
• This reflects practical user experience – if the
software’s functionality is not what is expected,
then users will often just work around this and
find other ways to do what they want to do.
• However, if the software is unreliable or too
slow, then it is practically impossible for them
to achieve their goals.
10
THE SOFTWARE QUALITYDILEMMA
• If you produce a software system that has terrible quality, you lose
because no one will want to buy it.
• 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]
SOFTWARE STANDARDS
• Standardsdefine the required attributes
of a product or process. They play an
important role in quality management.
• Standards may be international, national,
organizational or project standards.
14
15.
IMPORTANCE OF STANDARDS
•Encapsulation of best practice- avoids
repetition of past mistakes.
• They are a framework for defining what
quality means in a particular setting i.e. that
organization’s view of quality.
• They provide continuity - new staff can
understand the organisation by
understanding the standards that are used.
15
16.
EFFECTIVE SOFTWARE PROCESS
•An effective software process establishes the infrastructure that
supports any effort at building a high quality software product.
• The management aspects of process create the checks and balances
that help avoid project chaos—a key contributor to poor quality.
• Software engineering practices allow the developer to analyze the
problem and design a solid solution—both critical to building high
quality software.
• Finally, umbrella activities such as change management and technical
reviews have as much to do with quality as any other part of software
engineering practice.
17.
PRODUCT AND PROCESSSTANDARDS
• Product standards
• Apply to the software product being developed. They include document
standards, such as the structure of requirements documents, documentation
standards, such as a standard comment header for an object class definition,
and coding standards, which define how a programming language should be
used.
• Process standards
• These define the processes that should be followed during software
development. Process standards may include definitions of specification,
design and validation processes, process support tools and a description of
the documents that should be written during these processes.
17
18.
PRODUCT AND PROCESSSTANDARDS
Product standards Process standards
Design review form Design review conduct
Requirements document structure Submission of new code for system building
Method header format Version release process
Java programming style Project plan approval process
Project plan format Change control process
Change request form Test recording process
18
19.
USEFUL PRODUCT
• Auseful product delivers the content, functions, and features that
the end-user desires
• But as important, it delivers these assets in a reliable, error free way.
• A useful product always satisfies those requirements that have been
explicitly stated by stakeholders.
• In addition, it satisfies a set of implicit requirements (e.g., ease of use)
that are expected of all high quality software.
19
SOFTWARE QUALITY ASSURANCE
•In one reference it is stated that what is meant by software
quality is :
• “The fulfillment of explicitly documented functional and
performance requirements, explicitly documented standard
development, and implicit properties expected from a
professionally built software.” (Dunn, 1990)
21
22.
THE CRITERIA
• Basedon the above definition, it can be seen that a software is said
to be of quality if it fulfills three main conditions:
1. Meets user needs – which means that if the software cannot meet the
needs of the software user, then the person concerned is said to have no or
less quality
2. Meets software development standards – which means that if the
software development method does not follow standard methodologies, it
is almost certain that good quality will be difficult or not achieved.
3. Meets a number of implicit criteria – which means that if one of these
implicit criteria cannot be met, then the software in question cannot be
said to be of good quality.
22
THE GOALS
• TheSQA activities described in the preceding section are performed
to achieve a set of pragmatic goals:
• Requirements quality. The correctness, completeness, and consistency of the
requirements model will have a strong influence on the quality of all work
products that follow. SQA must ensure that the software team has properly
reviewed the requirements model to achieve a high level of quality.
• Design quality. Every element of the design model should be assessed by the
software team to ensure that it exhibits high quality and that the design itself
conforms to requirements. SQA looks for attributes of the design that are
indicators of quality.
24
25.
• CONTINUE…
• Codequality. Source code and related work products (e.g., other descriptive
information) must conform to local coding standards and exhibit
characteristics that will facilitate maintainability. SQA should isolate those
attributes that allow a reasonable analysis of the quality of code.
• Quality control effectiveness. A software team should apply limited resources
in a way that has the highest likelihood of achieving a high-quality result. SQA
analyzes the allocation of resources for reviews and testing to assess whether
they are being allocated in the most effective manner.
THE GOALS
References
Lewis, W. E.(2009). Software Testing And Continuous Quality
Improvement ed. 3rd. Auerbach publications.
02
Majchrzak, T. A. (2012). Improving Software Testing: Technical And
Organizational Developments. Springer Science & Business Media.
03
Myers, G. J., Sandler, C., & Badgett, T. (2012). The Art Of Software
Testing. John Wiley & Sons.
04
Roger, S. P., & Bruce, R. M. (2019). Software Engineering: A
Practitioner’s Approach Ed.9th. McGraw-Hill Education.
01