This document contains lecture slides about software quality assurance. It discusses definitions of software quality, important quality attributes, and how quality is ensured through organization-wide and project-specific quality plans. It also describes common software quality assurance activities like reviews, testing, and measurement. Reviews are particularly important for validating quality at different stages of development and can find defects early when cheaper to fix. The document provides checklists for reviewing requirements, design, coding, and other artifacts.
The document discusses software quality assurance. It defines software quality and lists important quality attributes. It states that quality assurance requires organization-wide policies and project-specific standards. Quality assurance activities include reviews, testing, enforcing standards and measurement. Reviews help validate quality and find issues. Quality assurance can improve reliability and reduce costs, but also requires additional resources.
The document provides an introduction and overview of software engineering. It discusses the inherent difficulties in software like complexity, conformity, changeability and invisibility. It also discusses software engineering processes that aim to maximize quality through reliability, portability, efficiency and other factors. The phases of the software lifecycle are outlined as requirements, specifications, design, implementation, integration, maintenance and retirement. Testing methods like black-box and white-box testing are also summarized.
Softwarequalityassurance with Abu ul hassan SahadviAbuulHassan2
The document discusses software quality assurance (SQA) and defines it as an umbrella activity that encompasses quality management, software engineering technology, formal reviews, testing strategies, documentation control, and compliance with standards. It describes key SQA activities like preparing an SQA plan, participating in process development, reviewing activities for compliance, auditing work products, and ensuring deviations are addressed. It also covers quality concepts, software reviews, reliability specifications, metrics, and perceptions of reliability.
The document discusses software quality assurance (SQA) and defines key terms related to quality. It describes SQA as encompassing quality management, software engineering processes, formal reviews, testing strategies, documentation control, and compliance with standards. Specific SQA activities mentioned include developing an SQA plan, participating in process development, auditing work products, and ensuring deviations are addressed. The document also discusses software reviews, inspections, reliability, and the reliability specification process.
This document discusses software quality and metrics. It defines software quality as conformance to requirements, standards, and implicit expectations. It outlines ISO 9126 quality factors like functionality, reliability, usability, and maintainability. It describes five views of quality: transcendental, user, manufacturing, product, and value-based. It also discusses types of metrics like product, process, and project metrics. Product metrics measure characteristics like size, complexity, and quality level. The document provides guidelines for developing, collecting, analyzing, and interpreting software metrics.
This document discusses the importance of requirements in software development. It states that requirements should drive project planning, design, coding, testing and other activities. Requirements metrics can be used for cost and time estimation. The requirements scope may evolve over time in response to changing business objectives. Requirements analysis involves identifying classes and collaborations to realize requirements. Requirements trace to tests to verify the system's functionality. The goal is to build software that satisfies customer needs by following a requirements-driven development process.
This document summarizes a lecture on software testing. It defines software testing and its objectives, including finding bugs, reducing risk, and ensuring requirements are met. Principles of testing discussed include that testing shows bugs but not their absence, exhaustion is impossible, and early testing is important. Factors that can lead to failures like pressures and complexity are reviewed. The document also discusses testing standards, the psychology of testing versus development, and careers in software testing.
Understanding and Improving Software Productivityssuser2be5eb
The document discusses challenges in measuring and understanding software productivity. It reviews 30 studies of software productivity from the 1970s to early 2000s. Key findings include that most studies are inadequate due to poor measurement, productivity varies greatly between individuals and languages, and contradictory findings are common. Improving productivity requires understanding factors like development environment attributes, product attributes, and staff attributes. Moving forward, the document advocates for developing setting-specific theories of software production and using knowledge management approaches.
The document discusses software quality assurance. It defines software quality and lists important quality attributes. It states that quality assurance requires organization-wide policies and project-specific standards. Quality assurance activities include reviews, testing, enforcing standards and measurement. Reviews help validate quality and find issues. Quality assurance can improve reliability and reduce costs, but also requires additional resources.
The document provides an introduction and overview of software engineering. It discusses the inherent difficulties in software like complexity, conformity, changeability and invisibility. It also discusses software engineering processes that aim to maximize quality through reliability, portability, efficiency and other factors. The phases of the software lifecycle are outlined as requirements, specifications, design, implementation, integration, maintenance and retirement. Testing methods like black-box and white-box testing are also summarized.
Softwarequalityassurance with Abu ul hassan SahadviAbuulHassan2
The document discusses software quality assurance (SQA) and defines it as an umbrella activity that encompasses quality management, software engineering technology, formal reviews, testing strategies, documentation control, and compliance with standards. It describes key SQA activities like preparing an SQA plan, participating in process development, reviewing activities for compliance, auditing work products, and ensuring deviations are addressed. It also covers quality concepts, software reviews, reliability specifications, metrics, and perceptions of reliability.
The document discusses software quality assurance (SQA) and defines key terms related to quality. It describes SQA as encompassing quality management, software engineering processes, formal reviews, testing strategies, documentation control, and compliance with standards. Specific SQA activities mentioned include developing an SQA plan, participating in process development, auditing work products, and ensuring deviations are addressed. The document also discusses software reviews, inspections, reliability, and the reliability specification process.
This document discusses software quality and metrics. It defines software quality as conformance to requirements, standards, and implicit expectations. It outlines ISO 9126 quality factors like functionality, reliability, usability, and maintainability. It describes five views of quality: transcendental, user, manufacturing, product, and value-based. It also discusses types of metrics like product, process, and project metrics. Product metrics measure characteristics like size, complexity, and quality level. The document provides guidelines for developing, collecting, analyzing, and interpreting software metrics.
This document discusses the importance of requirements in software development. It states that requirements should drive project planning, design, coding, testing and other activities. Requirements metrics can be used for cost and time estimation. The requirements scope may evolve over time in response to changing business objectives. Requirements analysis involves identifying classes and collaborations to realize requirements. Requirements trace to tests to verify the system's functionality. The goal is to build software that satisfies customer needs by following a requirements-driven development process.
This document summarizes a lecture on software testing. It defines software testing and its objectives, including finding bugs, reducing risk, and ensuring requirements are met. Principles of testing discussed include that testing shows bugs but not their absence, exhaustion is impossible, and early testing is important. Factors that can lead to failures like pressures and complexity are reviewed. The document also discusses testing standards, the psychology of testing versus development, and careers in software testing.
Understanding and Improving Software Productivityssuser2be5eb
The document discusses challenges in measuring and understanding software productivity. It reviews 30 studies of software productivity from the 1970s to early 2000s. Key findings include that most studies are inadequate due to poor measurement, productivity varies greatly between individuals and languages, and contradictory findings are common. Improving productivity requires understanding factors like development environment attributes, product attributes, and staff attributes. Moving forward, the document advocates for developing setting-specific theories of software production and using knowledge management approaches.
This ppt covers the following topics
Software quality
A framework for product metrics
A product metrics taxonomy
Metrics for the analysis model
Metrics for the design model
Metrics for maintenance
How To Avoid Continuously Delivering Faulty SoftwareErika Barron
As organizations continue to compress development and delivery lifecycles, the risk of regressions, integration errors, and other defects rises. But how can development teams integrate defect prevention strategies into their release cycles to ensure that they're not continuously delivering faulty software? In this presentation, learn the key development testing processes to add to your Continuous Delivery system to reduce the risk of automating the release of software defects.
The document discusses software quality assurance. It defines quality as meeting requirements and user expectations. Quality criteria include correctness, efficiency, flexibility, and others. Software quality assurance involves monitoring processes and products throughout development to ensure quality. This includes reviewing requirements, design, code, and testing products. It also involves assessing conformance to standards and processes.
The document discusses software quality assurance. It defines quality as meeting requirements and user expectations. Quality criteria include correctness, efficiency, flexibility, and others. Software quality assurance involves monitoring processes and products throughout development to ensure quality. This includes reviewing requirements, design, code, and testing products. It also involves assessing conformance to standards and processes.
The document discusses software quality assurance. It defines quality as meeting requirements and user expectations. Quality criteria include correctness, efficiency, flexibility, and others. Software quality assurance involves monitoring processes and products throughout development to ensure quality. This includes reviewing requirements, design, code, and testing products. It also involves assessing conformance to standards and processes.
Software Process Models, The Linear Sequential Model, The Prototyping Model, The RAD Model, Evolutionary Process Models, Agile Process Model, Component-Based Development, Process, Product and Process.
Software Testing and Quality Assurance Assignment 3Gurpreet singh
Short questions :
Que 1 : Define Software Testing.
Que 2 : What is risk identification ?
Que 3 : What is SCM ?
Que 4 : Define Debugging.
Que 5 : Explain Configuration audit.
Que 6 : Differentiate between white box testing & black box testing.
Que 7 : What do you mean by metrics ?
Que 8 : What do you mean by version control ?
Que 9 : Explain Object Oriented Software Engineering.
Que 10 : What are the advantages and disadvantages of manual testing tools ?
Long Questions:
Que 1 : What do you mean by baselines ? Explain their importance.
Que 2 : What do you mean by change control ? Explain the various steps in detail.
Que 3 : Explain various types of testing in detail.
Que 4 : Differentiate between automated testing and manual testing.
Que 5 : What is web engineering ? Explain in detail its model and features.
The document discusses software quality management. It describes how quality management is concerned with ensuring quality at the organizational, project, and process levels. It also discusses establishing a quality plan, defining quality attributes, using standards like ISO 9001, and performing reviews and inspections to check quality.
The document discusses software quality management. It describes how quality management is concerned with ensuring quality at the organizational, project, and process levels. It also discusses establishing a quality plan, defining quality attributes, using standards like ISO 9001, and performing reviews and inspections to check quality.
The document discusses software quality from several perspectives. It defines software quality and notes there are two main approaches: defect management and quality attributes. It then examines how different stakeholders view quality and outlines the two approaches in more detail. Finally, it describes the ISO 25010 quality model which identifies eight key quality characteristics broken down into sub-characteristics.
This document provides an introduction to software engineering processes. It discusses that a software process involves a series of defined activities that lead to the development of a software product. The key activities include specification, design, validation, and evolution. It also describes the requirements engineering process, software design process, programming and debugging, validation through testing, and evolution of software systems.
Testing software is conducted to ensure the system meets user needs and requirements. The primary objectives of testing are to verify that the right system was built according to specifications and that it was built correctly. Testing helps instill user confidence, ensures functionality and performance, and identifies any issues where the system does not meet specifications. Different types of testing include unit, integration, system, and user acceptance testing, which are done at various stages of the software development life cycle.
Software testing is the process of finding errors in a program before delivery to end users, and involves conducting technical reviews and testing components individually before integrating the entire system. Verification ensures software implements functions correctly while validation ensures the software meets customer requirements. An effective testing strategy begins with unit testing at the component level and works outward, specifies requirements early, and emphasizes rapid cycle testing to continuously improve the testing process.
The guest lecture covered various topics related to software quality management including why it is important, the software testing life cycle, predictive versus agile testing approaches, different types of testing, emerging trends like test automation and artificial intelligence, and career opportunities in the field. The speaker discussed concepts like unit testing, integration testing, security testing and performance testing.
Enhancing Quality and Test in Medical Device Design - Part 2.pdfICS
Join us for the second installment of our webinar series, during which we explore the interesting and controversial aspects of quality and test solutions used in engineering for medical devices.
In this session, we'll weigh the pros, cons, motivations and alternatives for the canonical forms of software tests.
We'll also differentiate Medical Device Verification from other forms of testing to ensure you don't pay twice for the same result. And, we'll discuss how the concept of "reliability" in medical devices has evolved for software, and how "durability" might have more value.
If you’re developing medical devices and are trying to improve the value and efficacy of your quality budget, this session is a can't-miss!
This document discusses key topics in software engineering including its importance, costs, methods, challenges and professional responsibilities. It begins by outlining the objectives of understanding what software engineering is, its importance, and ethical issues. It then discusses that software costs, especially maintenance, often exceed development costs. Software engineering aims to improve cost-effectiveness. The document poses several frequently asked questions about software engineering and provides concise answers, covering topics such as the definition of software and differences between computer science, software engineering and system engineering. It also discusses software processes, costs, methods, CASE tools, attributes of good software and challenges in the field.
The document provides an overview of software testing, including common software problems, objectives and principles of testing, quality assurance vs quality control, software development life cycles, project management, and risk management. It discusses what testing is, why it's necessary, who does it, objectives of testing, types of problems found, quality principles, life cycles like waterfall and V-model, project planning, scheduling, staffing, and identifying, analyzing and managing risks.
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael BueningQA or the Highway
The document provides an overview of agile testing transformation presented by Mike Buening. It discusses a 3-phase roadmap for transformation, including 1) optimizing test fundamentals, 2) implementing basic automation, and 3) adopting intelligent automation through smart QA. The first phase involves establishing test standards and processes. The second phase focuses on automating functional, regression, and DevOps testing. The third phase leverages analytics, AI, and model-based testing for intelligent test automation. The presentation also covers establishing a test center of excellence and transforming the workforce to include roles like SDETs and quality engineers.
This ppt covers the following topics
Software quality
A framework for product metrics
A product metrics taxonomy
Metrics for the analysis model
Metrics for the design model
Metrics for maintenance
How To Avoid Continuously Delivering Faulty SoftwareErika Barron
As organizations continue to compress development and delivery lifecycles, the risk of regressions, integration errors, and other defects rises. But how can development teams integrate defect prevention strategies into their release cycles to ensure that they're not continuously delivering faulty software? In this presentation, learn the key development testing processes to add to your Continuous Delivery system to reduce the risk of automating the release of software defects.
The document discusses software quality assurance. It defines quality as meeting requirements and user expectations. Quality criteria include correctness, efficiency, flexibility, and others. Software quality assurance involves monitoring processes and products throughout development to ensure quality. This includes reviewing requirements, design, code, and testing products. It also involves assessing conformance to standards and processes.
The document discusses software quality assurance. It defines quality as meeting requirements and user expectations. Quality criteria include correctness, efficiency, flexibility, and others. Software quality assurance involves monitoring processes and products throughout development to ensure quality. This includes reviewing requirements, design, code, and testing products. It also involves assessing conformance to standards and processes.
The document discusses software quality assurance. It defines quality as meeting requirements and user expectations. Quality criteria include correctness, efficiency, flexibility, and others. Software quality assurance involves monitoring processes and products throughout development to ensure quality. This includes reviewing requirements, design, code, and testing products. It also involves assessing conformance to standards and processes.
Software Process Models, The Linear Sequential Model, The Prototyping Model, The RAD Model, Evolutionary Process Models, Agile Process Model, Component-Based Development, Process, Product and Process.
Software Testing and Quality Assurance Assignment 3Gurpreet singh
Short questions :
Que 1 : Define Software Testing.
Que 2 : What is risk identification ?
Que 3 : What is SCM ?
Que 4 : Define Debugging.
Que 5 : Explain Configuration audit.
Que 6 : Differentiate between white box testing & black box testing.
Que 7 : What do you mean by metrics ?
Que 8 : What do you mean by version control ?
Que 9 : Explain Object Oriented Software Engineering.
Que 10 : What are the advantages and disadvantages of manual testing tools ?
Long Questions:
Que 1 : What do you mean by baselines ? Explain their importance.
Que 2 : What do you mean by change control ? Explain the various steps in detail.
Que 3 : Explain various types of testing in detail.
Que 4 : Differentiate between automated testing and manual testing.
Que 5 : What is web engineering ? Explain in detail its model and features.
The document discusses software quality management. It describes how quality management is concerned with ensuring quality at the organizational, project, and process levels. It also discusses establishing a quality plan, defining quality attributes, using standards like ISO 9001, and performing reviews and inspections to check quality.
The document discusses software quality management. It describes how quality management is concerned with ensuring quality at the organizational, project, and process levels. It also discusses establishing a quality plan, defining quality attributes, using standards like ISO 9001, and performing reviews and inspections to check quality.
The document discusses software quality from several perspectives. It defines software quality and notes there are two main approaches: defect management and quality attributes. It then examines how different stakeholders view quality and outlines the two approaches in more detail. Finally, it describes the ISO 25010 quality model which identifies eight key quality characteristics broken down into sub-characteristics.
This document provides an introduction to software engineering processes. It discusses that a software process involves a series of defined activities that lead to the development of a software product. The key activities include specification, design, validation, and evolution. It also describes the requirements engineering process, software design process, programming and debugging, validation through testing, and evolution of software systems.
Testing software is conducted to ensure the system meets user needs and requirements. The primary objectives of testing are to verify that the right system was built according to specifications and that it was built correctly. Testing helps instill user confidence, ensures functionality and performance, and identifies any issues where the system does not meet specifications. Different types of testing include unit, integration, system, and user acceptance testing, which are done at various stages of the software development life cycle.
Software testing is the process of finding errors in a program before delivery to end users, and involves conducting technical reviews and testing components individually before integrating the entire system. Verification ensures software implements functions correctly while validation ensures the software meets customer requirements. An effective testing strategy begins with unit testing at the component level and works outward, specifies requirements early, and emphasizes rapid cycle testing to continuously improve the testing process.
The guest lecture covered various topics related to software quality management including why it is important, the software testing life cycle, predictive versus agile testing approaches, different types of testing, emerging trends like test automation and artificial intelligence, and career opportunities in the field. The speaker discussed concepts like unit testing, integration testing, security testing and performance testing.
Enhancing Quality and Test in Medical Device Design - Part 2.pdfICS
Join us for the second installment of our webinar series, during which we explore the interesting and controversial aspects of quality and test solutions used in engineering for medical devices.
In this session, we'll weigh the pros, cons, motivations and alternatives for the canonical forms of software tests.
We'll also differentiate Medical Device Verification from other forms of testing to ensure you don't pay twice for the same result. And, we'll discuss how the concept of "reliability" in medical devices has evolved for software, and how "durability" might have more value.
If you’re developing medical devices and are trying to improve the value and efficacy of your quality budget, this session is a can't-miss!
This document discusses key topics in software engineering including its importance, costs, methods, challenges and professional responsibilities. It begins by outlining the objectives of understanding what software engineering is, its importance, and ethical issues. It then discusses that software costs, especially maintenance, often exceed development costs. Software engineering aims to improve cost-effectiveness. The document poses several frequently asked questions about software engineering and provides concise answers, covering topics such as the definition of software and differences between computer science, software engineering and system engineering. It also discusses software processes, costs, methods, CASE tools, attributes of good software and challenges in the field.
The document provides an overview of software testing, including common software problems, objectives and principles of testing, quality assurance vs quality control, software development life cycles, project management, and risk management. It discusses what testing is, why it's necessary, who does it, objectives of testing, types of problems found, quality principles, life cycles like waterfall and V-model, project planning, scheduling, staffing, and identifying, analyzing and managing risks.
Agile Testing Transformation is as Easy as 1, 2, 3 by Michael BueningQA or the Highway
The document provides an overview of agile testing transformation presented by Mike Buening. It discusses a 3-phase roadmap for transformation, including 1) optimizing test fundamentals, 2) implementing basic automation, and 3) adopting intelligent automation through smart QA. The first phase involves establishing test standards and processes. The second phase focuses on automating functional, regression, and DevOps testing. The third phase leverages analytics, AI, and model-based testing for intelligent test automation. The presentation also covers establishing a test center of excellence and transforming the workforce to include roles like SDETs and quality engineers.
Rethinking Kållered │ From Big Box to a Reuse Hub: A Transformation Journey ...SirmaDuztepeliler
"Rethinking Kållered │ From Big Box to a Reuse Hub: A Transformation Journey Toward Sustainability"
The booklet of my master’s thesis at the Department of Architecture and Civil Engineering at Chalmers University of Technology. (Gothenburg, Sweden)
This thesis explores the transformation of the vacated (2023) IKEA store in Kållered, Sweden, into a "Reuse Hub" addressing various user types. The project aims to create a model for circular and sustainable economic practices that promote resource efficiency, waste reduction, and a shift in societal overconsumption patterns.
Reuse, though crucial in the circular economy, is one of the least studied areas. Most materials with reuse potential, especially in the construction sector, are recycled (downcycled), causing a greater loss of resources and energy. My project addresses barriers to reuse, such as difficult access to materials, storage, and logistics issues.
Aims:
• Enhancing Access to Reclaimed Materials: Creating a hub for reclaimed construction materials for both institutional and individual needs.
• Promoting Circular Economy: Showcasing the potential and variety of reusable materials and how they can drive a circular economy.
• Fostering Community Engagement: Developing spaces for social interaction around reuse-focused stores and workshops.
• Raising Awareness: Transforming a former consumerist symbol into a center for circular practices.
Highlights:
• The project emphasizes cross-sector collaboration with producers and wholesalers to repurpose surplus materials before they enter the recycling phase.
• This project can serve as a prototype for reusing many idle commercial buildings in different scales and sizes.
• The findings indicate that transforming large vacant properties can support sustainable practices and present an economically attractive business model with high social returns at the same time.
• It highlights the potential of how sustainable practices in the construction sector can drive societal change.
1. COMP 6710 Course Notes Slide 5-0
Auburn University
Computer Science and Software Engineering
Course Notes Set 5:
Software Quality Assurance
Computer Science and Software Engineering
Auburn University
2. COMP 6710 Course Notes Slide 5-1
Auburn University
Computer Science and Software Engineering
What is Software Quality?
• Simplistically, quality is an attribute of
software that implies the software
meets its specification
• This definition is too simple for ensuring
quality in software systems
– Software specifications are often incomplete
or ambiguous
– Some quality attributes are difficult to
specify
– Tension exists between some quality
attributes, e.g. efficiency vs. reliability
4. COMP 6710 Course Notes Slide 5-3
Auburn University
Computer Science and Software Engineering
Software Quality
• Conformance to explicitly stated functional and
performance requirements, explicitly documented
development standards, and implicit characteristics that
are expected of all professionally developed software
– Software requirements are the foundation from which
quality is measured.
• Lack of conformance to requirements is lack of quality.
– Specified standards define a set of development criteria
that guide the manner in which software is engineered.
• If the criteria are not met, lack of quality will almost surely
result.
– There is a set of implicit requirements that often goes
unmentioned.
• If software conforms to its explicit requirements but fails to
meet its implicit requirements, software quality is suspect.
[Adapted from Pressman 4th Ed]
5. COMP 6710 Course Notes Slide 5-4
Auburn University
Computer Science and Software Engineering
Software Quality Assurance
• To ensure quality in a software product, an organization must
have a three-prong approach to quality management:
– Organization-wide policies, procedures and standards must be
established.
– Project-specific policies, procedures and standards must be
tailored from the organization-wide templates.
– Quality must be controlled; that is, the organization must ensure
that the appropriate procedures are followed for each project
• Standards exist to help an organization draft an appropriate
software quality assurance plan.
– ISO 9000-3
– ANSI/IEEE standards
• External entities can be contracted to verify that an
organization is standard-compliant.
6. COMP 6710 Course Notes Slide 5-5
Auburn University
Computer Science and Software Engineering
A Software Quality Plan
ISO 9000
model
Organization
quality plan
Project A
quality plan
Project B
quality plan
Project C
quality plan
[Adapted from Sommerville 5th Ed]
7. COMP 6710 Course Notes Slide 5-6
Auburn University
Computer Science and Software Engineering
SQA Activities
• Applying technical methods
– To help the analyst achieve a high quality specification and a high quality design
• Conducting formal technical reviews
– A stylized meeting conducted by technical staff with the sole purpose of
uncovering quality problems
• Testing Software
– A series of test case design methods that help ensure effective error detection
• Enforcing standards
• Controlling change
– Applied during software development and maintenance
• Measurement
– Track software quality and asses the ability of methodological and procedural
changes to improve software quality
• Record keeping and reporting
– Provide procedures for the collection and dissemination of SQA information
8. COMP 6710 Course Notes Slide 5-7
Auburn University
Computer Science and Software Engineering
Advantages of SQA
• Software will have fewer latent defects,
resulting in reduced effort and time
spent during testing and maintenance
• Higher reliability will result in greater
customer satisfaction
• Maintenance costs can be reduced
• Overall life cycle cost of software is
reduced
9. COMP 6710 Course Notes Slide 5-8
Auburn University
Computer Science and Software Engineering
Disadvantages of SQA
• It is difficult to institute in small
organizations, where available
resources to perform necessary
activities are not available
• It represents cultural change - and
change is never easy
• It requires the expenditure of dollars
that would not otherwise be explicitly
budgeted to software engineering or
QA
10. COMP 6710 Course Notes Slide 5-9
Auburn University
Computer Science and Software Engineering
Quality Reviews
• The fundamental method of validating the quality of a
product or a process.
• Applied during and/or at the end of each life cycle phase
– Point out needed improvements in the product of a single
person or team
– Confirm those parts of a product in which improvement is
either not desired or not needed
– Achieve technical work of more uniform, or at least more
predictable, quality than what can be achieved without
reviews, in order to make technical work more
manageable
• Quality reviews can have different intents:
– review for defect removal
– review for progress assessment
– review for consistency and conformance
15. COMP 6710 Course Notes Slide 5-14
Auburn University
Computer Science and Software Engineering
Review Checklist for Systems
Engineering
• Are major functions defined in a bounded and
unambiguous fashion?
• Are interfaces between system elements defined?
• Are performance bounds established for the system as a
whole and for each element?
• Are design constraints established for each element?
• Has the best alternative been selected?
• Is the solution technologically feasible?
• Has a mechanism for system validation and verification
been established?
• Is there consistency among all system elements?
[Adapted from Behforooz and Hudson]
16. COMP 6710 Course Notes Slide 5-15
Auburn University
Computer Science and Software Engineering
Review Checklist for
Software Project Planning
• Is the software scope unambiguously defined and
bounded?
• Is terminology clear?
• Are resources adequate for the scope?
• Are resources readily available?
• Are tasks properly defined and sequenced?
• Is the basis for cost estimation reasonable? Has it been
developed using two different sources?
• Have historical productivity and quality data been used?
• Have differences in estimates been reconciled?
• Are pre-established budgets and deadlines realistic?
• Is the schedule consistent?
17. COMP 6710 Course Notes Slide 5-16
Auburn University
Computer Science and Software Engineering
Review Checklist for
Software Requirements
Analysis
• Is the information domain analysis complete,
consistent, and accurate?
• Is problem partitioning complete?
• Are external and internal interfaces properly defined?
• Are all requirements traceable to the system level?
• Is prototyping conducted for the customer?
• Is performance achievable with constraints imposed by
other system elements?
• Are requirements consistent with schedule, resources,
and budget?
• Are validation criteria complete?
18. COMP 6710 Course Notes Slide 5-17
Auburn University
Computer Science and Software Engineering
Review Checklist for
Software Design
(Preliminary Design Review)
• Are software requirements reflected in the
software architecture?
• Is effective modularity achieved? Are modules
functionally independent?
• Is program architecture factored?
• Are interfaces defined for modules and
external system elements?
• Is data structure consistent with software
requirements?
• Has maintainability been considered?
19. COMP 6710 Course Notes Slide 5-18
Auburn University
Computer Science and Software Engineering
Review Checklist for
Software Design
(Design Walkthrough)
• Does the algorithm accomplish the desired function?
• Is the algorithm logically correct?
• Is the interface consistent with architectural design?
• Is logical complexity reasonable?
• Have error handling and “antibugging” been specified?
• Is local data structure properly defined?
• Are structured programming constructs used throughout?
• Is design detail amenable to the implementation language?
• Which are used: operating system or language dependent
features?
• Is compound or inverse logic used?
• Has maintainability been considered?
20. COMP 6710 Course Notes Slide 5-19
Auburn University
Computer Science and Software Engineering
Review Checklist for Coding
• Is the design properly translated into code? (The
results of the procedural design should be available at
this review)
• Are there misspellings or typos?
• Has proper use of language conventions been made?
• Is there compliance with coding standards for language
style, comments, module prologue?
• Are incorrect or ambiguous comments present?
• Are typing and data declaration proper?
• Are physical constraints correct?
• Have all items on the design walkthrough checklist been
reapplied (as required)?
21. COMP 6710 Course Notes Slide 5-20
Auburn University
Computer Science and Software Engineering
Review Checklist for
Software Testing (Test Plan)
• Have major test phases been properly identified and
sequenced?
• Has traceability to validation criteria/requirements been
established as part of software requirements analysis?
• Are major functions demonstrated early?
• Is the test plan consistent with the overall project plan?
• Has a test schedule been explicitly defined?
• Are test resources and tools identified and available?
• Has a test recordkeeping mechanism been established?
• Have test drivers and stubs been identified, and has
work to develop them been scheduled?
• Has stress testing for software been specified?
22. COMP 6710 Course Notes Slide 5-21
Auburn University
Computer Science and Software Engineering
Review Checklist for
Software Testing
(Test Procedure)
• Have both white and black box tests been
specified?
• Have all independent logic paths been tested?
• Have test cases been identified and listed with
expected results?
• Is error handling to be tested?
• Are boundary values to be tested?
• Are timing and performance to be tested?
• Has acceptable variation from expected results
been specified?
23. COMP 6710 Course Notes Slide 5-22
Auburn University
Computer Science and Software Engineering
Review Checklist for
Maintenance
• Have side effects associated with change been
considered?
• Has the request for change been documented,
evaluated, and approved?
• Has the change, once made, been documented
and reported to interested parties?
• Have appropriate FTRs been conducted?
• Has a final acceptance review been conducted
to assure that all software has been properly
updated, tested, and replaced?
24. COMP 6710 Course Notes Slide 5-23
Auburn University
Computer Science and Software Engineering
Formal Technical Review
(FTR)
• Software quality assurance activity that is performed by
software engineering practitioners
– Uncover errors in function, logic, or implementation for
any representation of the software
– Verify that the software under review meets its
requirements
– Assure that the software has been represented according
to predefined standards
– Achieve software that is developed in a uniform manner
– Make projects more manageable
• FTR is actually a class of reviews
– Walkthroughs
– Inspections
– Round-robin reviews
– Other small group technical assessments of the software
25. COMP 6710 Course Notes Slide 5-24
Auburn University
Computer Science and Software Engineering
The Review Meeting
• Constraints
– Between 3 and 5 people (typically) are involved
– Advance preparation should occur, but should involve no
more that 2 hours of work for each person
– Duration should be less than two hours
• Components
– Product - A component of software to be reviewed
– Producer - The individual who developed the product
– Review leader - Appointed by the project leader; evaluates
the product for readiness, generates copies of product
materials, and distributes them to 2 or 3 reviewers
– Reviewers - Spend between 1 and 2 hours reviewing the
product, making notes, and otherwise becoming familiar
with the work
– Recorder - The individual who records (in writing) all
important issues raised during the review
26. COMP 6710 Course Notes Slide 5-25
Auburn University
Computer Science and Software Engineering
Review Reporting and
Recordkeeping
• Review Summary Report
– What was reviewed?
– Who reviewed it?
– What were the findings and conclusions?
• Review Issues List
– Identify the problem areas within the
product
– Serve as an action item checklist that
guides the producer as corrections are
made
27. COMP 6710 Course Notes Slide 5-26
Auburn University
Computer Science and Software Engineering
Guidelines for FTR
• Review the product, not the producer
• Set an agenda and maintain it
• Limit debate and rebuttal
• Enunciate the problem areas, but don’t attempt to solve
every problem that is noted
• Take written notes
• Limit the number of participants and insist upon
advance preparation
• Develop a checklist for each product that is likely to be
reviewed
• Allocate resources and time schedules for FTRs
• Conduct meaningful training for all reviewers
• Review your earlier reviews (if any)
28. COMP 6710 Course Notes Slide 5-27
Auburn University
Computer Science and Software Engineering
Reviewer’s Preparation
• Be sure that you understand the context of
the material
• Skim all product material to understand the
location and the format of information
• Read the product material and annotate a
hardcopy
• Pose your written comments as questions
• Avoid issues of style
• Inform the review leader if you cannot prepare
29. COMP 6710 Course Notes Slide 5-28
Auburn University
Computer Science and Software Engineering
Results of the Review
Meeting
• All attendees of the FTR must make a decision
– Accept the product without further modification
– Reject the product due to severe errors (and perform
another review after corrections have been made)
– Accept the product provisionally (minor corrections
are needed, but no further reviews are required)
• A sign-off is completed, indicating
participation and concurrence with the review
team’s findings
30. COMP 6710 Course Notes Slide 5-29
Auburn University
Computer Science and Software Engineering
Software Reliability
• Probability of failure-free operation for a
specified time in a specified environment.
• This could mean very different things for
different systems and different users.
• Informally, reliability is a measure of the
users’ perception of how well the software
provides the services they need.
– Not an objective measure
– Must be based on an operational profile
– Must consider that there are widely varying
consequences for different errors
31. COMP 6710 Course Notes Slide 5-30
Auburn University
Computer Science and Software Engineering
IO Mapping
Input Set
Output Set
Software
Subset of inputs
causing erroneous
outputs
Erroneous
outputs
[Adapted from Sommerville 5th Ed]
32. COMP 6710 Course Notes Slide 5-31
Auburn University
Computer Science and Software Engineering
Software Faults and Failures
• A failure corresponds to erroneous/unexpected runtime
behavior observed by a user.
• A fault is a static software characteristic that can cause a
failure to occur.
• The presence of a fault doesn’t necessarily imply the
occurrence of a failure.
[Adapted from Sommerville 5th Ed]
User A
Inputs
User B
Inputs
User C
Inputs
Erroneous
Inputs
Input Set
33. COMP 6710 Course Notes Slide 5-32
Auburn University
Computer Science and Software Engineering
Reliability Improvements
• Software reliability improves when faults
which are present in the most frequently used
portions of the software are removed.
• A removal of X% of faults doesn’t necessarily
mean an X% improvement in reliability.
• In a study by Mills et al. in 1987 removing
60% of faults resulted in a 3% improvement
in reliability.
• Removing faults with the most serious
consequences is the primary objective.