0% found this document useful (0 votes)
28 views48 pages

Unit-1 Software Quality

Uploaded by

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

Unit-1 Software Quality

Uploaded by

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

Unit-1 Software Quality

Agenda

 1.1 Software Quality Assurance: Goals, Elements, Plan, Tasks


 1.2 Factors: Operational, Revision and Transition, Criteria
 1.3 Software Safety: Essentials, Guidelines, negligence, Liability,
mitigation
 1.4 Software Reliability: Basics, Measures
 1.5 Software Quality Control: Dimensions, Approach
 1.6 Software Audits: Types, Process
 1.7 Standards: Government, Commercial
What is Software?
 Software is
1) Instructions (computer programs) that when executed
provide desired features, function, and performance.
2) Data structures that enable the programs to appropriately
manipulate information.
 Types of Software:
1)System Software
2) Utility Software
3) Application Software
4) Embedded Software
What is Quality?
 Quality means “Performance upon expectations” and “fit for
functions.”
 A product is said to be of good quality if it satisfies the customer
requirements in terms of performance, grade, durability,
appearance and intended use/purpose.
What is Software Quality?
 Software quality determines how well the software is designed
(quality of design), and how well the software conforms to that
design (quality of conformance).
 Quality of design – Requirements, specifications & design of the
system.
 Quality of Conforms – issuses focused on implementation
 Software quality describes the degree at which component of
software meets specified requirement and user or customers’ needs
and expectations.
 Key aspects that conclude software quality include,
1) Good design – It’s always important to have a good and creative design
to please users.
2) Reliability – Be it any software it should be able to perform the
functionality impeccably without issues.
3) Durability- Durability means the ability of the software to work
without any issue for a long period of time.
4) Consistency – Software should be able to perform consistently over all
the platform and devices.
5) Maintainability – Bugs associated with any software should be able to
capture and fix quickly.
6) Value for money – Customers and companies who make this app
should feel that the money spent on this app has not been wasted.
What is Software Quality Assurance?
 Software quality assurance (SQA) is the ongoing process that ensures the software
product meets and complies with the organization’s established and standardized
quality specifications.
 Software Quality Assurance (SQA) is simply a way to assure quality in the software.
It is the set of activities that ensure processes, procedures as well as standards are
suitable for the project and implemented correctly.
 Software Quality Assurance is a process that works parallel to Software
Development. It focuses on improving the process of development of software so
that problems can be prevented before they become major issue.
 Software quality assurance is an umbrella activity that is applied throughout the
software process.
 It generally monitors software processes and methods that are used in a project to
ensure and maintain the quality of software.
Cont..
Cont..

 Software quality assurance (SQA) encompasses


(1) An SQA process
(2) Specific quality assurance and quality control tasks testing strategy
(3) Effective software engineering practice (methods and tools),
(4) Control of all software work products and the changes made to them
(5) A procedure to ensure compliance with software development standards
(6) Measurement and reporting mechanisms
Advantages of SQA
1) Produce high-quality software
2) High quality applications saves time and cost
3) Boost Customer Satisfaction
4) Promotes Productivity and Efficiency
5) Reduces End Time Client Conflicts
6) Improves process of creating software
7) Better for realiability

Disadvantages of SQA
1) Time-consuming (Testing and deployment takes more time)
2) High cost (required more resources for betterment of product)
3) Challenging to implement sometimes
Software Quality Factor
 Software quality factors, often referred to as software quality attributes or
software quality characteristics, are the measurable properties of a software
product that indicate its overall quality.
 The various factors, that influence the software, are termed as software factors.
 These factors are crucial for assessing the effectiveness, reliability, maintainability,
and overall performance of software systems
 They can be broadly divided into two categories.
 Factors that can be directly measured (ex. Defects per function point)
 Factors that can be measured only indirectly (ex. Usability or maintainability)
 The classic model of software quality factors, suggested by McCall, consists of 11
factors.
McCall Model
Product Operation Software Quality Factors

1) Correctness
 This refers to the ability of the software to perform its intended functions correctly
and effectively.
 These requirements deal with the correctness of the output of the software system.
 The extent to which a program satisfies its specification and fulfills the customer’s
mission objectives.
 They include −
 Output mission
 The required accuracy of output that can be negatively affected by
inaccurate data or inaccurate calculations.
 The completeness of the output information, which can be affected by
incomplete data.
 The availability of the information.
 The standards for coding and documenting the software system.
2) Reliability
 Reliability refers to the ability of the software to perform consistently under various
conditions and for a specified period. It involves measures such as fault tolerance,
error handling, and failure recovery.
 Reliability requirements deal with service failure. They determine the maximum
allowed failure rate of the software system and can refer to the entire system or one
or more of its separate functions.
3) Efficiency
 Efficiency relates to how well the software utilizes system resources such as
memory, processor time, and network bandwidth to accomplish its tasks. It involves
factors like speed, scalability, and resource consumption.
4) Integrity
 This factor deals with the software system security, that is, to prevent access to
unauthorized persons, also to distinguish between the group of people to be given
read as well as write permit.
5) Usability
 Usability measures how easy it is for users to learn and use the software.
 Usability requirements deal with the staff resources needed to train a new employee
and to operate the software system.
 Efforts required to learn, operate, prepare input, and interpret output of a program.
Product Revision Quality Factors

1) Maintainability
 Efforts required to locate and fix an error in a program.
 This factor considers the efforts that will be needed by users and maintenance
personnel to identify the reasons for software failures, to correct the failures, and to
verify the success of the corrections.
2) Flexibility
 Efforts required to modify an operational program.
 This factor deals with the capabilities and efforts required to support adaptive
maintenance activities of the software. These include adapting the current software
to additional circumstances and customers without changing the software.
3) Testability
 Testability requirements deal with the testing of the software system as well as with
its operation.
Product Transition Software Quality Factor

1) Portability
 Efforts required to transfer the program from one hardware or software system
environment to another.

2) Reusability
 This factor deals with the use of software modules originally designed for one
project in a new software project currently being developed.

3) Interoperability
 Interoperability requirements focus on creating interfaces with other software
systems or with other equipment firmware.
Software Reliability
 The reliability of a computer program is an important element of its overall
quality. If a program repeatedly and frequently fails to perform, it matters little
whether other software quality factors are acceptable.
 Software reliability is defined in statistical terms as “the probability of failure-free
operation of a computer program in a specified environment for a specified time”.
 Software Reliability is an essential connect of software quality, composed with
functionality, usability, performance, serviceability, capability, installability,
maintainability, and documentation.
Types of Reliability Matrix
 Mean Time to Failure (MTTF)
 Mean Time to Repair (MTTR)
 Rate of occurrence of failure (ROCOF)
 Mean Time Between Failure (MTBF)
 Probability Of Failure On Demand (POFOD)
 Availability (AVAIL)
1) Mean Time to Failure (MTTF)
MTTF looks at how much time has elapsed between two failure occurrences, and it’s
averaged over the total number of failures.
The metric only looks at the time interval between the failures – not the time it took
to fix the error and get the software back up and running.
2) Mean Time to Repair (MTTR)
Building off MTTF, MTTR is used to measure the average time taken to track the
cause of the error and repair it.
It’s a metric used to understand how long it takes to fix an error after a failure
occurs and is helpful to help teams understand their working process for reliability
and come up with ways to improve.
3) Mean Time Between Failure (MTBR)
 To calculate MTBF, you’ll need to put together MTTF and MTTR like this.
MTTF + MTTR = MTBF
 This metric enables teams to better predict when the next failure can be expected
and helps teams understand the length of uptime and predict software reliability.
4) Rate of occurrence of failure (ROCOF)
 ROCOF is a metric to understand the frequency of failures.
 While the other metrics measure the length of time between failures and how long
it takes to repair, this metric is used to understand how often failures occur.
5) Probability Of Failure On Demand (POFOD)
 POFOD is used to measure the likelihood of the system failing when services are
requested. It measures the possibility of the system failing when receiving a
service request.
 It can be used in systems where services are requested at an infrequent pace.
Software Quality Control
 Quality control is a set of methods used by organizations to achieve quality
parameters or quality goals and continually improve the organization's ability to
ensure that a software product will meet quality goals.

 It is a reactive process, and the main purpose of this process is to correct all types of
defects before releasing the software.

 The responsibility of quality control is of a specific team which is known as a testing


team that tests the defects of software by validation and corrective tools.
Cont..
 The Software Quality Control is a validation activity, where the quality of the
developed software product meets the client’s need and exceptions or fit for
purpose i.e. checking if we have built the right software or not.

 This process deals with product oriented to find the defect and to improve
the developed software product quality.

 The software product testing by executing the application code is the part of
software quality control.
Software Quality Control Activities

 The software quality control process mainly deals with software product,
development process and resources. It works on PDCA (Plan Do Check
Action) principle.

 Deal with 2 activities with some sub activities


 Review Activity (Quality Assurance)
 Testing Activity (Quality Control)
Review Activities

 Requirements Review
 Design Review
 Coding Review
 Test Plan Review
 Test Cases Review
 Deployment Review
Cont..

 The Review Activity is one type of static testing or verification process of the
software documents to prevent defects.
 It is process-oriented to improve the development process performed
without program execution. The requirement document, design review are
part of it.
 This is a process level verification to prevent the defect from the software
application documents.
Testing Activities

 Unit Testing
 Integration Testing
 System Testing
 Acceptance Testing
 Release Testing
 Maintenance Testing
Cont..

 The Testing Activity is a one type of Dynamic in nature or validation process


of the software application to find the defects.
 It uses product-oriented to enhance the software product quality, performed
with program execution.

 Both QA(verification) and QC(validation) processes are internally related to


the software quality control improvement process.
Cont..

 Quality Control characteristics:


 Process adopted to deliver a quality product to the clients at best cost.
 Goal is to learn from other organizations so that quality would be better each time.
 To avoid making errors by proper planning and execution with correct review
process.
Quality Control Technique (PCDA Model):

Plan

Quality Control
Parameter:
Act Products Do
Processes
Resources

Check
 Plan
 It is the initial stage where the Quality control processes are planned.
 Set standard software quality goal and plan accordingly to get it.
 Do
 Use a defined parameter to develop the quality.
 In this phase, start developing the software application according to the project
plan parameters to execute it i.e. work in progress state.
 Check
 Stage to verify if the quality of the parameters are met.
 This phase is dedicated to the static and dynamic testing of the developed
software application to find defects to improve the quality of product.
 Validate expected values with actual parameter values
 Act
 Take corrective action if needed and repeat the work.
Quality Control Approach

1) Walkthrough
 The walkthrough is an informal code of analysis techniques.
 In this technique after a module has been coded, it is successfully compiled and
all syntax errors are eliminated.
 The main objective of the walkthrough is to discover the algorithmic and logical
errors in the code.
 Walkthrough brings multiple perspectives.
 Discussion should focus on the discovery of errors and not on how to fix the
discovered errors.
2) Formal Technical Reviews
 The main objectives of formal technical reviews are to uncover the error in
function, logic, or implementation, to verify that software under review meets its
requirements, to develop software in a uniform manner, to ensure that the
software has been represented according to predefined standards.
 People involved in review meetings are producer, review leader, and 2 or 3
reviewers.
 Formal technical reviews meeting
 Preparation of review meeting
 Results of review meeting
 Accept the work product without further modifications.
 Reject the work product due to errors.
3. Testing
 Testing is performed to reveal the presence of bugs in the system as early as possible
and make sure they get fixed.
 Testing is a verification and validation process.
4. Inspection
 The inspection involves people examining the source representation with the aim of
discovering anomalies and defects.
 The inspection is conducted only when the author has made sure that the code is
ready for inspection.
5. Code Review
 The code review for the module is carried out after the module is successfully
compiled and all the syntax errors eliminated.
 Code reviews are an extremely cost-effective strategy for reduction in coding errors
in order to produce high-quality code.
Software Audit
 A software Audit is an internal or external review of a software program to check
its quality, progress or adherence to plans, standards and regulations.

 It checks a product’s health and ensures that everything is going as planned.

 An internal team or any external independent auditors can do it.


Cont..

 Software audits may be conducted for many reasons, including the following:
 to track and report software use, including frequency and who is using the
software;
 to verify licensing compliance;
 to monitor for quality assurance (QA);
 to comply with industry standards; and
 to meet legal requirements.
Cont..
 Instead of focusing on a software's technical quality, a software audit focuses on
compliance of products or processes.
 A software audit is an independent review of software products, processes, and
systems.
Why Audit is necessary?

 Internal audits can help an organization improve its efficiency by reducing the
number of inactive or expired licenses and finding problems before they can
become licensing or regulatory issues in a third-party review.
 An external, or third-party, review generally focuses on software that is being
used beyond licensed rights and can help identify compliance gaps.

 Example, Software Piracy (purchased one s/w license but installed copies of the
software on several devices)

 The audits can help ensure the software an organization uses is up to date and is
working as intended.
Cont..
 The organization can start a software audit when licensing compliance needs
to be verified, to monitor QA, to ensure licenses are all current and up to date,
and to ensure industry standards are still being complied with.
 Software audits also help uncover any unused tools with current licenses.
Removing unused licensed software can help save an organization money.
Benefits of Software Audit

 Helps in validating the testing process and identifies ways to optimize the
existing process
 It checks for any mismatches between the requirements and the delivered
features. Audits helps in capturing such issues.
 Ensures the development progress is as expected with compliance with
regulations and best practices. It can also catch any potential risks to the
product and help mitigate it.
 In case any issues are noticed, proper suggestions are given to improve upon
the process or the product
Software audit checklist

 Identify experts for audits.


 Prepare for the audit process.
 Conduct an audit review.
 Use a software asset management tool.
Types of Software Audit
1) Software Security Audits:
 A security audit is a systematic evaluation of the security of a company's
information system by measuring how well it conforms to an established set of
criteria.
 A thorough audit typically assesses the security of the system's physical
configuration and environment, software, information handling processes and
user practices.
 Steps involved in a security audit
1) Agree on goals
2) Define the scope of the audit
3) Conduct the audit and identify threats
4) Evaluate security and risks
5) Determine the needed controls
2) Usability and Accessibility(UX) Audits:
 Accessibility and Usability Audit is the first step towards improving accessibility to
built environment, information, and services.
 An accessibility audit involves a combination of performing functional, automated
and manual tests on your website to identify accessibility violations.
 To perform an accessibility audit, experts use any combination of the testing
methods mentioned above to uncover the maximum number of accessibility bugs.
 UX audits are immensely important to conduct before you publish your Software.
3) Software quality audits:
 This audit is based on verifying the quality of your software.
 Here, auditors check whether all the apps and programs that you use are updated
and work correctly.
 They also check if there are other solutions that could replace your current tools
with something cheaper or more effective.
Process of Software Audit
Stage 1: Determining the scope and purpose of the audit
 The audit has to be well-organized. You need to know what to check, how and why.
 At this point, you should think about creating a software audit checklist, setting
transparent guidelines and, of course, informing the team about the audit.
Stage 2: Selecting software audit tools
 SAM tool (Software Asset Management tool), which is very important for
budgeting the software.
 A proper SAM tool will highlight the license shortages in your company, point out
the overspending, and detect the unused ones that could be removed.
Stage 3: Conduct the audit
 SAM tools enable users to run automatic audits.

Stage 4: Analyse the results


 Every audit has to be purposeful. Its findings have to be used to improve
something in your company.
 Analyse the results that you get and think about how this knowledge can be used.
 You need to connect the data received in stage three to the initial purpose you
established in the first stage.
Software Safety
 Software safety is a software quality assurance activity that focuses on the
identification and assessment of potential hazards that may affect software
negatively and cause an entire system to fail.
 Initially, hazards are identified and categorized by criticality and risk.
 For example, some of the hazards associated with a computer-based cruise control
for an automobile might be:
(1) Causes uncontrolled acceleration that cannot be stopped
(2) Does not respond to depression of brake pedal
(3) Does not engage when switch is activated
(4) Slowly loses or gains speed. Once these system-level hazards are identified,
analysis techniques are used to assign severity and probability of occurrence.
 To be effective, software must be analyzed in the context of the entire system.
 For example, a user input error may be magnified by a software fault to produce
control data that improperly positions a mechanical device.
 Once hazards are identified and analyzed, safety-related requirements can be
specified for the software.
 That is the specification can contain a list of undesirable events and the desired
system responses to these events.
 The role of software in managing undesirable events is then indicated.
 Although software reliability and software safety are closely related to one
another, it is important to understand the difference between them.
 Software reliability uses statistical analysis to determine the likelihood that a
software failure will occur.
 However, the occurrence of a failure does not necessarily result in a hazard.
 Software safety examines the ways in which failures result in conditions that can
lead to a hazard.
 That is, failures are not considered in a vacuum, but are evaluated in the context
of an entire computer-based system and its environment.

You might also like