Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Overview of Software QA and What is Software Quality

Subject: Software Quality Assurance and Testing
Chapter 1: Overview of Software QA
Chapter 2: What is Software Quality

  • Login to see the comments

  • Be the first to like this

Overview of Software QA and What is Software Quality

  1. 1. Chapter 1: Overview of Software QA Chapter 2: What is Software Quality
  2. 2. 04-Oct-14 2 Chapter 1 Overview of Software QA
  3. 3. 04-Oct-14 3 People’s Quality Expectations In general, people’s quality expectations for software systems they use and rely upon are two-fold: 1. The software systems must do what they are supposed to do. In other words, they must do the right things. (Validation) 2. The software must perform these specific tasks correctly or satisfactorily. In other words, they must do the things right. (Verification)
  4. 4. 04-Oct-14 4 Main tasks for software quality engineering • Quality planning; • Execution of selected QA or software validation and verification activities; • Measurement and analysis to provide convincing evidence to demonstrate software quality to all parties involved.
  5. 5. 04-Oct-14 5 Two Types of Software • Fat Software: • Large system • Complex and poor design • Non-essential features • Lean Software • Small system • Simple and Disciplined methodology • Essential features
  6. 6. 04-Oct-14 6 QA Techniques There are many other QA alternatives supported by related techniques and activities – • Inspection is a critical examination of software code or other artifacts by human inspectors to identify and remove problems directly, without resorting to execution. • Formal verification • Defect prevention • Fault tolerance prevents global system failures even if local problems exist, through various redundancies strategically designed and implemented into the software systems.
  7. 7. 04-Oct-14 Testing, quality assurance and quality engineering 7 • Software QA activities are carried out to prevent or eliminate certain classes of problems • Software testing plays a central role among the software QA activities. • QA activities need to be managed in an engineering process Fig: Scope and content hierarchy: Testing, quality assurance (QA), and software quality engineering
  8. 8. 04-Oct-14 8 Chapter 2 What is Software Quality
  9. 9. 04-Oct-14 9 What is Software Quality • In the transcendental view, quality is hard to define or describe in abstract terms, but can be recognized if it is present. It is generally associated with some intangible properties that delight users. • In the user view, quality is fitness for purpose or meeting user’s needs. • In the manufacturing view, quality means conformance to process standards.
  10. 10. 04-Oct-14 10 What is Software Quality • In the product view, the focus is on inherent characteristics in the product itself in the hope that controlling these internal quality indicators will result in improved external product behavior (quality in use). • In the value-based view, quality is the customers’ willingness to pay for a software.
  11. 11. 04-Oct-14 11 Quality expectations Consumer View: • Software ok or not, doing the right thing • Over a period of time working reliably Producer View: • conform to product specifications or providing services that conform to service agreement. • Well Designed
  12. 12. Difference Between QA and Testing Software Development Life Cycle: 12 Feasibility Analysis Requirements Analysis Design Testing Coding Deliver & Support QA QA QA 04-Oct-14
  13. 13. 04-Oct-14 13 CORRECTNESS AND DEFECTS Key to the correctness aspect of software quality is the concept of defect, failure, fault, and error. Defect: Generally refers to some problem with the software, either with its external behavior or with its internal characteristics. • Error: A human action that produces an incorrect result. • Fault: An incorrect step, process, or data definition in a computer program. (Incorrectness of the system) • Failure: The inability of a system or component to perform its required functions within specified performance requirements.
  14. 14. DEFECTS EXAMPLE int add(int a, int b){ return(a-b); } Res = add(7,6); 14 Error  Fault Failure 04-Oct-14
  15. 15. 04-Oct-14 15 CORRECTNESS AND DEFECTS
  16. 16. 04-Oct-14 16 Related Terms Bugs: Software problems or defects are commonly referred to as bugs. Debug: • The term “debug” general means get rid of the bugs • defect detection and removal for the overall concept and activities of the system • Specific activities related to defect discovery, including testing, inspection, etc. • Specific follow-up activities after defect discovery, including defect diagnosis, analysis, fixing, and re-verification.
  17. 17. 04-Oct-14 17 Failure Measurement (3 ways) Failure properties and direct failure measurement: Failure properties include information about the specific failures, what they are, how they occur, etc. These properties can be measured directly by examining failure count, distribution, density, etc. Failure likelihood and reliability measurement: How often or how likely a failure is going to occur is of critical concern to software users and customers. This likelihood is captured in various reliability measures, where reliability can be defined as the probability of failure-free operations for a specific time period or for a given set of input. Failure severity measurement and safety assurance: The failure impact is also a critical concern for users and customers of many software products and services. Accidents, which are defined to be failures with severe consequences, need to be avoided, contained, or dealt with to ensure the safety for the personnel involved and to minimize other damages.
  18. 18. 04-Oct-14 18 Dealing with Defect (3 Ways) 1. Defect prevention These QA activities prevent certain types of faults from being injected into the software through error blocking or error source removal. 2. Defect detection and removal These QA alternatives detect and remove certain faults once they have been injected into the software systems through inspection and testing. 3. Defect containment Some QA alternatives, such as the use of fault-tolerance techniques, break the causal relation between faults and failures so that local faults will not cause global failures, thus “tolerating” these local faults. • limiting the damage caused by software system failures. Reference: Chapter-3
  19. 19. 04-Oct-14 19 Reference Book: Software Quality Engineering - Jeff Titan
  20. 20. 04-Oct-14 20