KEMBAR78
Lecture # 1 | PDF | Software Bug | Software Quality
0% found this document useful (0 votes)
133 views11 pages

Lecture # 1

This document provides an introduction to a course on software quality assurance. It discusses key topics that will be covered, including defining quality, types of software defects, how defects originate, and strategies for defect prevention and removal. Specific techniques mentioned include inspections, testing, prevention through requirements and design reviews, and achieving high defect removal rates. The goal of the course is to understand how to guarantee and deliver high quality software.

Uploaded by

Alina Pari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
133 views11 pages

Lecture # 1

This document provides an introduction to a course on software quality assurance. It discusses key topics that will be covered, including defining quality, types of software defects, how defects originate, and strategies for defect prevention and removal. Specific techniques mentioned include inspections, testing, prevention through requirements and design reviews, and achieving high defect removal rates. The goal of the course is to understand how to guarantee and deliver high quality software.

Uploaded by

Alina Pari
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 11

Introduction Lecture # 1

 This course deals with a very important aspect of software engineering: quality assurance of software
products and services
 We’ll learn different aspects of software quality assurance in this course

What is Quality?
 Can you define quality?
 You must be thinking, what kind of question is that. It is very easy to define quality, but if you think really
hard, it is not that easy to define quality
 Have you come with a definition? Let’s see what I have in store for you

Synonyms of Quality
 Excellence  Superiority  Class
 Eminence  Value  Worth

Antonym of Quality
 Inferiority

Marketability of Quality
 Everyone claims to manufacture / develop / sell / market “good” quality products / services
 You will never come across a person or company selling products or services as low or poor quality
products, even when they are

Software Quality - 1
 Quality as it relates to all aspects of software (requirements / design / code / tests / documents / training)
 Difficult to define
 Software quality is somewhat like the concept of beauty. Each of us has a strong opinion about what
constitutes beauty, and we recognize it when we see it. But when asked to explain exactly why we regard
an object as beautiful, it is hard to put the factors into words

Software Quality - 2
 Good software quality characteristics can be identified
 Bad or undesirable characteristics can also be identified

Software Quality Definitions


 Now we’ll discuss six key factors, which are considered as definitions of software quality, and we’ll use
them throughout this course

Software Quality
 Low levels of defects when deployed, ideally approaching zero
 High reliability, or the capability of running without crashes or strange results
 A majority of clients with high user-satisfaction when surveyed
 A structure that can minimize “bad fixes” or insertion of new defects during repairs
 Effective customer support when problems do occur
 Rapid repairs for defects, especially for high-severity defects
Beyond Absence of Defects
 Sense of beauty  Sense of fitness for purpose
 Sense of elegance that goes beyond the simple absence of overt flaws
 Has well-formed requirements  Robust

Why Software Quality?


 Reduces time to market for new products
 Enhances market share compared to direct competitors
 Minimizes “scrap and rework” expenses
 Attracts and keeps “top-gun” personnel
 Minimizes the risk of serious litigation
 Minimizes the risk of serious operating failures and delays
 Minimizes the risk of bankruptcy or business failures, which may be attributed directly to poor quality or
poor software quality

Software Quality Assurance


 So the term software quality assurance would mean that the software guarantees high quality
 In this course, we’ll learn the different processes, techniques, and activities, which enables us – the
software professionals – to provide that guarantee to ourselves and our clients

Achieving Software Quality


 “For a software application to achieve high quality levels, it is necessary to begin upstream and ensure that
intermediate deliverables and work products are also of high quality levels. This means that the entire
process of software development must itself be focused on quality”
 Capers Jones

Software Defects – I Lecture # 2


 Software defects and related issues
 Have a good discussion on this topic before jumping directly on to the topic

What is a Software Defect?


 A software defect is an error, flaw, mistake, failure, or fault in software that prevents it from behaving as
intended (e.g., producing an incorrect or unexpected result)
 Software defects are also known as software errors or software bugs

Effects of Software Defects - 1


 Bugs can have a wide variety of effects, with varying levels of inconvenience to the user of the software.
Some bugs have only a subtle effect on the program’s functionality, and may thus lie undetected for a long
time. More serious bugs may cause the software to crash or freeze leading to a denial of service
 Others qualify as security bugs and might for example enable a malicious user to bypass access controls in
order to obtain unauthorized privileges
 The results of bugs may be extremely serious
 In 1996, the European Space Agency’s US $1 billion prototype Arian 5 rocket was destroyed less than a
minute after launch, due a bug in the on-board guidance computer program
 In June 1994, a Royal Air Force Chinook crashed into the Mull of Kintyre, killing 29 people. An investigation
uncovered sufficient evidence to convince that it may have been caused by a software bug in the aircraft’s
engine control computer
 In 2002, a study commissioned by the US Department of Commerce’ National Institute of Standards and
Technology concluded that software bugs are so prevalent and detrimental that they cost the US economy
and estimated US $59 billion annually, or about 0.6 percent of the gross domestic product

Categories of Software Defects


 Errors of commission  Errors of omission
 Errors of clarity and ambiguity  Errors of speed or capacity

Errors of Commission
 Something wrong is done
 A classic example at the code level would be going through a loop one time too many or branching on the
wrong address

Errors of Omission
 Something left out by accident
 For example, omitting a parentheses in nested expressions

Errors of Clarity and Ambiguity


 Different interpretations of the same statement
 This kind of error is common with all natural language requirements and specification documents and user
manuals, too.

Errors of Speed and Capacity


 Application works, but not fast enough
 Software defects can be found in any of the documents and work products including very serious ones in
cost estimates and development plans
 However, there are seven major classes of software work products where defects have a strong probability
of triggering some kind of request for warranty repair if they reach the field
Software Defect Origins
 Errors in Requirements  Errors in Design  Errors in Source code
 Errors due to “Bad fixes”  Errors in Data and Tables  Errors in Test Cases
 Errors in User Documentation

Defect Discovery
 Defects are discovered by developers & testers (usually) before release
 Defects are discovered by customers and users (usually) after release
 Defects discovered after release can be embarrassing for the development team

Defect Discovery by Customers


Rule 1: Defect discovery is directly related to the number of users
Rule 2: Defect discovery is inversely related to the number of defects

Software Defect Elimination Strategies


 Effective defect prevention
 High levels of defect removal efficiency
 Accurate defect prediction before the project begins
 Accurate defect tracking during development
 Useful quality measurements
 Ensuring high levels of user-satisfaction

Defect Prevention and Removal


 Both defect prevention and removal techniques are used by the “best-in-the-class” companies
 Defect prevention is very difficult to understand, study, and quantify.
 Both non-test and testing defect removal techniques must be applied

Typical Defect Removal


 Inspections  Direct fault detection and removal
 Testing  Failure observation and fault removal

Inspections - 1
 Inspections are critical examinations of software artifacts by human inspectors aimed at discovering and
fixing faults in the software systems
 Inspections are critical reading and analysis of software code or other software artifacts, such as designs,
product specifications, test plans, etc.
 Inspections are typically conducted by multiple human inspectors, through some coordination process.
Multiple inspection phases or sessions may be used
 Faults are detected directly in inspection by human inspectors, either during their individual inspections or
various types of group sessions
 Identified faults need to be removed as a result of the inspection process, and their removal also needs to
be verified

Non-Test Defect Removal Methods


 Requirement inspections  Design inspections  Code inspections
 Test plan reviews  User documentation editing or reviews
 Test-case inspections

Testing Defect Removal Methods


 Unit test by individual programmers  New function testing
 Regression testing  Performance testing
 Integration testing  System testing
 Field test (external beta test)

Defect Removal
 Not all defects are equal when it comes to removal
 Requirements errors, design problems, and “bad fixes” are particularly difficult
Software Defect Origins & Defect Removal Effectiveness

Defect Removal Efficiency


 Accumulation of defect statistics for errors found prior to delivery, and then for a predetermined period
after deployment (usually one year)
 US averages: 85%
 Best projects in best US companies: 99%

Lecture # 4
 Reasons for poor software quality
 Characteristics of quality laggard companies
 Quality attributes
 Some of the reasons for having high quality software have been discussed in the first lecture of this course,
and so it should be well understood now why software products and services should have high quality
 There are negative consequences for poor or bad quality software
 But still we see that the software industry still suffers from problems related to software quality
 Now we’ll look at six root causes of poor software quality, and discuss them in detail

Root Causes of Poor Software Quality - 1


 Inadequate training of managers and staff
 Inadequate defect and cost measurement
 Excessive schedule pressure
 Insufficient defect removal
 High complexity levels
 Ambiguous and creeping requirements and design (feature race & gimmicks)
 We have just finished the discussion on root causes of poor software quality
 Now let us look at the status of the software industry’s seriousness of the software industry with respect
to the software quality assurance

Quality Assurance Organizations


 No quality assurance 60%  Token quality assurance 20%
 Passive quality assurance 15%  Active quality assurance 5%

 There is another point that must be remembered that software varies from industry to industry
 The focus on software quality naturally is dependent on the industry, as well as the importance of the
software application. More critical applications, naturally, need to have higher software quality than
others

Software Quality in Six Sub- Industries


 Systems software that controls physical devices
 Information systems that companies build for their own use
 Outsource or contract software built for clients
 Commercial software built by vendors for lease or sale
 Military software built following various military standards
 End-user software built for private use by computer literate workers or managers

Characteristics of Quality Laggards


 We’ll now discuss the characteristics of companies, which produce poor quality software

Quality Laggards – (1-5)


1. No software quality measurement program of any kind
2. No usage of formal design and code inspections
3. No knowledge of the concepts of defect potentials and defect removal efficiency
4. Either no quality assurance group or a group that is severely understaffed
5. No trained testing specialists available
6. Few or no automated quality assurance tools
7. Minimal or no software project management tools available
8. No automated risk assessment or avoidance capability
9. From a low of one to a high of perhaps four distinct testing stages
10. No test library or test-case management tools available
11. No complexity analysis tools utilized
12. Defect potentials averaging more than 6 defects per function point
13. Defect removal efficiency averaging less than 80%
14. Executive and managerial indifference (and ignorance) of quality matters

Other Related Issues


 Staff morale and voluntary attrition
 Market shares and competitive positioning
 Litigation and product recalls
 Quality laggards are the very companies with highest probability of cancelled projects, several schedule
overruns, and severe overruns
 It is no coincidence that software groups among the quality laggards also tend to be candidates for
immediate replacement by outsource organizations

Categories of Quality Attributes


 Product-specific quality attributes  Organization-specific quality attributes

Product-Specific Attributes - 1
 Ease of use  Documentation  Defect tolerance
 Defect frequency  Defect impact  Packaging
 Price versus reliability  Performance

Organization-Specific Attributes
 Service and support  Internal processes

Achieving High Levels of Software Quality - 1


 Enterprise-wide quality programs  Quality awareness and training methods
 Quality standards and guidelines  Quality analysis methods
 Quality measurement methods
 Defect prevention methods  Non-test defect removal methods
 Testing methods  User-satisfaction methods
 Post-release quality control

Best in Class Quality Results – (1-2)


 Quality measurements  Defect prevention
 Defect and quality estimation automation  Defect tracking automation
 Complexity analysis tools  Test coverage analysis tools
 Formal inspections  Formal testing by test specialists
 Formal quality assurance group  Executive and managerial understanding of quality

Two Components of
 Software Quality Improvement
 Reductions in total defect potentials using methods of defect prevention
 Improvements in cumulative removal efficiency levels

Lecture # 5 and 6
Quality Measurement Questions
 What should be measured for quality?
 How often should quality measurement be taken and reported?

Quality Measurement Categories


 Measurement of defects or bugs in software
 100% of software projects
 Measurement of user-satisfaction levels
 Only for software projects where clients can be queried and actually use the software consciously

Software Defect Quality Measurements – (1-3)


 Defect volumes (by product, by time period, by geographic region)
 Defect severity levels
 Special categories (invalid defects, duplicates, un-duplicable problems)
 Defect origins (i.e., requirements, design, code, documents, or bad fixes)
 Defect discovery points (i.e., inspections, tests, customer reports, etc.)
 Defect removal efficiency levels
 Normalized data (i.e., defects per function point or per KLOC)
 Causative factors (i.e., complexity, creeping requirements, etc.)
 Defect repair speeds or intervals from the first report to the release of the fix

Software User-Satisfaction Quality Measurements – (1-2)


 User perception of quality and reliability  User perception of features in the software product
 User perception of ease of learning  User perception of ease of use
 User perception of customer support  User perception of speed of defect repairs
 User perception of speed of adding new features  User perception of the value versus the cost of the
package
Who Measures User-Satisfaction?
 Marketing or sales organization of the software company
 User associations  Software magazines  Direct competitors
 User groups on the internet, etc.  Third-party survey groups

Gathering User-Satisfaction Data


 Focus groups of customers  Formal usability laboratories  External beta tests
 Requests from user associations for improvements in usability
 Imitation of usability features of competitive or similar products by other vendors

Barriers to Software Quality Measurement


 Lack of understanding of need to measure quality
 Often technical staff shies away from getting their work measured
 Historically, “lines of code” or LOC and “cost per defect” metrics have been used, which are a poor way of
measuring software quality
Object-Oriented Quality Levels
 OO technology is being adopted world-wide with a claim that it produces better quality software products
 OO technology has a steep learning curve, and as a result it may be difficult to achieve high quality
software
 More data needs to be reported  UML may play a significant role

Orthogonal Defect Reporting – (1-2)


 The traditional way of dealing with software defects is to simply aggregate the total volumes of bug
reports, sometimes augmented by severity levels and assertions as to whether defects originated in
requirements, design, code, user documents, or as “bad fixes”
 In the orthogonal defect classification (ODC) method, defects are identified using the following criteria
 Detection method (design/code inspection, or any of a variety of testing steps)
 Symptom (system completely down, performance downgraded, or questionable data integrity)
 Type (interface problems, algorithm errors, missing function, or documentation error)
 Trigger (start-up / heavy utilization / termination of application, or installation)
 Source (version of the projects using normal configuration control identification)

Outsourcing and Software Quality


 Outsourcing in software industry is done in a variety of ways
 Every situation introduces new challenges for development of high quality software
 Software quality metrics must be mentioned in the outsourcing contract

Quality Estimating Tools – (1-5)


 Estimating defect potentials for bugs in five categories (requirements, design, coding, documentation, and
bad fixes)
 Estimating defect severity levels into four categories, ranging from 1 (total or catastrophic failure) to
severity 4 (minor or cosmetic problem)
 Estimating the defect removal efficiency levels of various kinds of design reviews, inspections, and a dozen
kinds of testing against each kind and severity of defects
 Estimating the number and severity of latent defects present in a software application when it is delivered
to users
 Estimating the number of user-reported defects on an annual basis for up to 20 years
 Estimating the reliability of software at various intervals using mean-time to failure (MTTF) and/or mean-
time between failures (MTBF) metrics
 Estimating the “stabilization period” or number of calendar months of production before users can
execute the application without encountering severe errors.
 Estimating the efforts and costs devoted to various kinds of quality and defect removal efforts such as
inspections, test-case preparation, defect removal, etc.
 Estimating the number of test cases and test runs for all testing stages
 Estimating maintenance costs for up to 20 years for fixing bugs (also for additions)
 Estimating special kinds of defect reports including duplicates and invalid reports which trigger
investigative costs but no repair costs
Quality Process Metrics
 Defect arrival rate  Test effectiveness  Defects by phase
 Defect removal effectiveness  Defect backlog  Backlog management index
 Fix response time  Percent delinquent fixes  Defective fixes

Product Metrics
 Defect density  Defects by severity  Mean time between failures
 Customer-reported problems  Customer satisfaction

Function Point Metric – (1-4)


 It was developed at IBM and reported to public in 1979
 It is a way of determining the size of a software application by enumerating and adjusting five visible
aspects that are of significance to both users and developers
 Inputs that enter the application (i.e., Input screens, forms, commands, etc.)
 Outputs that leave the application (i.e., Output screens, reports, etc.)
 Inquiries that can be made to the application (i.e., Queries for information)
 Logical files maintained by the application (i.e., Tables, text files, etc.)
 Interfaces between the application and others (i.e., shared data, messages, etc.)
 Once the raw total of these five factors has been enumerated, then an additional set of 14 influential
factors are evaluated for impact using a scale that runs from 0 (no impact) to 5 (major impact)

Litigation and Quality


 Relevant factors for software quality
- Correctness, reliability, integrity, usability, maintainability, testability, understandability
 Irrelevant factors for software quality
- Efficiency, flexibility, portability, reusability, interoperability, security
 It is important to narrow down the scope of quality definition similar to hardware warranties

Schedule Pressure and Quality


 Healthy pressure
- Motivates and keeps morale of the personnel high
 Excessive pressure
- Has serious negative impact on the morale of personnel
- Can lead to low quality software
 Project life cycle quality assurance activities are process oriented, in other words, linked to completion of a
project phase, accomplishment of a project milestone, and so forth
 The quality assurance activities will be integrated into the development plan that implements one or more
software development models – waterfall, prototyping, spiral, etc.
 The SQA planners for a project are required to determine
- The list of quality assurance activities needed for a project
- For each quality assurance activity
 Timing
 Who performs the activity and the resources needed
 Resources required for removal of defects and introduction of changes
A Word of Caution
 Some development plans, QA activities are spread throughout the process, but without any time allocated
for their performance or for the subsequent removal of defects. As nothing is achieved without time, the
almost guaranteed result is delay, caused by “unexpectedly” long duration of the QA process
 Hence, the time allocated for QA activities and the defects corrections work that follow should be
examined

 The intensity of the quality assurance activities planned, indicated by the number of required activities, is
affected by project and team factors

Project Factors
 Magnitude of the project  Technical complexity and difficulty
 Extent of reusable software components  Severity of failure outcomes if the project fails

Team Factors
 Professional qualification of the team members
 Team acquaintance with the project and its experience in the area
 Availability of staff members who can professionally support the team
 Familiarity with team members, in other words the percentage of new staff members in the team

Why Error-Prone Modules?


 Excessive schedule pressure on the programmers
 Poor training or lack of experience in structured methods
 Rapidly creeping requirements which trigger late changes
 High complexity levels with cyclomatic ranges greater than 15

“Good Enough” Software Quality – (1-2)


 Rather than striving for zero-defect levels or striving to exceed in 99% in defect removal efficiency, it is
better to ship software with some defects still present in order to speed up or shorten time to market
intervals
 Developed by the fact that major commercial software companies have latent software bugs in their
released products
 Major commercial software companies have cumulative defect removal efficiency of 95% (and 99% on
their best projects)
 This concept is very hazardous for ordinary companies, which usually have their defect removal efficiency
level between 80%-85%
 Quality will be decrease for these companies

Data Quality – (1-2)


 Extremely important to understand issues of data quality
 Data results in (useful | useless) information
 Usually, governments are holders of largest data banks (are they consistent?)
 Companies are increasingly using data to their advantage over competitors
 Data warehouses present a unique challenge to keep data consistent
 Another problem is the interpretation of data
Summary
1. In today’s lecture, we have only discussed what quality is and what software quality is
We have briefly touched upon the need of software quality
In the coming lectures, we will explore software quality assurance in quite a bit of detail, so get ready for a
very exciting course
2. In today’s lecture, we talked about software defects and where are they introduced in the software
product
We discussed the approaches to eliminating these defects
3.

References
1. Software Quality: Analysis and Guidelines for Success by Capers Jones
2. Software Quality: Analysis and Guidelines for Success by Capers Jones
Software Quality Engineering: Testing, Quality Assurance, and Quantifiable Improvement by Jeff Tian
3. Software Quality: Analysis and Guidelines for Success by Capers Jones
Customer-Oriented Software Quality Assurance by Frank Ginac
4. Software Quality: Analysis and Guidelines for Success by Capers Jones
5. Customer-Oriented Software Quality Assurance by Frank Ginac
A Practitioner’s Approach to Software Engineering by Roger Pressman

You might also like