KEMBAR78
Software Testing - Software Quality | PPTX
MEETING 2
INTRODUCTION TO
SOFTWARE QUALITY
SOFTWARE TESTING
By : Ajeng Savitri Puspaningrum, M.Kom
OBJECTIVE
• Understanding the concept
of quality
• Explain software quality
assurance
2
SOFTWARE
QUALITY
QUALITY
• The American Heritage 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
SOFTWARE QUALITY
• In 2005, 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
DEFINITION
• Software quality can 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.
CONCEPT
• Software Quality Assurance (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
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
SOFTWARE FITNESS FOR PURPOSE
• 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
NON-FUNCTIONAL CHARACTERISTICS
• The subjective 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
SOFTWARE QUALITY ATTRIBUTES
Safety Understandability Portability
Security Testability Usability
Reliability Adaptability Reusability
Resilience Modularity Efficiency
Robustness Complexity Learnability
11
THE SOFTWARE QUALITY DILEMMA
• 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
SOFTWARE STANDARDS
• Standards define 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
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
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.
PRODUCT AND PROCESS STANDARDS
• 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
PRODUCT AND PROCESS STANDARDS
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
USEFUL PRODUCT
• A useful 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
(SQA)
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
THE CRITERIA
• Based on 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 PROCESSES
23
THE GOALS
• The SQA 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
• CONTINUE…
• Code quality. 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
SOFTWARE QUALITY
GOALS, ATTRIBUTES,
AND METRICS
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
THANK YOU
Insert the Subtitle of Your Presentation

Software Testing - Software Quality

  • 1.
    MEETING 2 INTRODUCTION TO SOFTWAREQUALITY SOFTWARE TESTING By : Ajeng Savitri Puspaningrum, M.Kom
  • 2.
    OBJECTIVE • Understanding theconcept of quality • Explain software quality assurance 2
  • 3.
  • 4.
    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
  • 11.
    SOFTWARE QUALITY ATTRIBUTES SafetyUnderstandability Portability Security Testability Usability Reliability Adaptability Reusability Resilience Modularity Efficiency Robustness Complexity Learnability 11
  • 12.
    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]
  • 13.
  • 14.
    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
  • 20.
  • 21.
    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
  • 23.
  • 24.
    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
  • 26.
  • 27.
    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
  • 28.
    THANK YOU Insert theSubtitle of Your Presentation