BSCS 22033 Software Quality Assurance Lecture 1 - Introduction Kumudini Sarathchandra (Reading DBA, PMP, MBA, Dip in BA, BSc) Senior Lecturer – Informatics Institute of Technology Course Aim/Intended Learning Outcomes • Principles of software quality process and its role in software development • Approaches to assure software quality • How to choose metrics to collect and use them for testing strategies and develop test cases. Course Contents • • • • Software Quality Quality Assurance Quality Engineering Software testing METHOD OF TEACHING AND LEARNING • 1 Session per week – 3 hours (Total 30 hours) – Lecture – 2 hours - Tutorial - 1 hour • Individual Study - 70 hours ASSESMENT • Course work 50% • Final Exam 50% References/Reading Materials • Jeff, T., John, W., (2005), Software Quality Engineering: Testing, Quality Assurance and Quantifiable Improvement. • Ammann, P. and Offutt, J. (2008), Introduction to Software Testing, Cambridge University Press. • Daniel, G., (2003), Software Quality Assurance: From Theory to Implementation, Addison Wesley. • Stephen, K., (2002), Metrics and Models in Software Quality Engineering, 2nd Edition, Addison Wesley. Lecture 1 - Learning Outcomes • To review the Historical Perspective of Quality • To understand the uniqueness of software development projects compared to other projects • To define software quality • To identify quality perspectives and expectations History of Quality • More details: https://asq.org/quality-resources/history-of-quality Quality 4.0 provides a data-driven approach to managing quality, so that production is not just measured according to how quickly products are produced, but on their level of quality, along with the quality of every related item and transaction across the supply chain. A Quality 4.0 approach integrates new technologies, such as digital twins, simulation testing, AI, mobile solutions, SaaS and the Industrial Internet of Things (IoT) into traditional quality management strategies. It leverages key technologies to collect data enterprise-wide, from various sources to provide visibility and manage workflows, processes and protocols. It also leverages analytics to find meaning behind the data and use it to anticipate or solve business challenges. Evolving perceptions of quality • Quality has long been associated with physical objects or systems or services: – Cars, tools, radio and television receivers, etc. – Hospitality, banking, etc • The focus is on ensuring that the products or services conform to their specifications / expectations. Evolving perceptions of quality • Dynamically shifting expectations of customers, with the focus of quality control shifting from – zero defect in products to – zero defection of customers The uniqueness of the software development process • High complexity, as compared to other industrial products • Invisibility of the product • Flexibility in SWD process hence less opportunities to detect defects (“bugs”) WHAT IS SOFTWARE QUALITY? • What is software? - a program or software package - usually referred to as the “code” Is it enough to take care of the code in order to assure the quality of the services provided by the software program? Software Quality Expectations • The software systems must do what they are supposed to do - the right things. – Eg. Online booking system, • Allow to book items online • Allow cancel or update items (otherwise not practical!) • Allow booking using mobile phones How important Software quality to different stakeholders? Software Quality Expectations • They must perform specific tasks correctly or satisfactorily - the things right. – Eg. Calculate average of two values a and b Add a and b then divide by 2 Software Quality Perspectives • transcendental view, quality is hard to define or describe in abstract terms. It is generally associated with some intangible properties that delight users • user view, quality is fitness for purpose or meeting user’s needs. Software Quality Perspectives • manufacturing view, quality means conformance to process standards that satisfy customers • product view, the focus is on inherent characteristics in the product itself in the hope that controlling these internal quality indicators • value-based view, quality is the customers’ willingness to pay for a software • Is this possible to happen? • • More Terms: Failure, Fault, Error The IEEE Standard 610.12 (IEEE,1990) defines the following terms related to defects: • Failure: The inability of a system or component to perform its required functions within specified performance requirements. • Fault: An incorrect step, process, or data definition in a computer program. • Error: A human action that produces an incorrect result. Failure, Fault, Error Bugs • Software problems or defects, are also commonly referred to as “bugs”. • The term “debug” general means “get rid of the bugs”. Sometimes, it also includes activities related to detecting the presence of bugs and dealing with them. Identify the correct procedure to do this calculation Home work • Read Chapter 2 - Daniel, G., (2003), Software Quality Assurance: From Theory to Implementation, Addison Wesley Tutorial – Friday 9.00 am • Zoom link to join: • https://us04web.zoom.us/j/7382367581?pwd =K2JkWk04RCthWmM3ZWNIMU1iRW5ZZz09 • Meeting ID: 738 236 7581 • Passcode: 460143