🎧 New: AI-Generated Podcasts Turn your study notes into engaging audio conversations. Learn more

Lecture 02 - Introduction to SQA.pdf

Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...

Document Details

TrustingInequality

Uploaded by TrustingInequality

Tags

software quality assurance software engineering quality control

Full Transcript

Introduction to Software Quality Assurance By S.J.M.D.P. Samarakoon ▪ What is 'Quality'? ▪ What is 'Software Quality Assurance’? ▪ Quality Control ▪ Quality Factors ▪ Software quality is: – The degree to which a system, component, or process meets specified requirements – The degree to whi...

Introduction to Software Quality Assurance By S.J.M.D.P. Samarakoon ▪ What is 'Quality'? ▪ What is 'Software Quality Assurance’? ▪ Quality Control ▪ Quality Factors ▪ Software quality is: – The degree to which a system, component, or process meets specified requirements – The degree to which a system, component, or process meets customer or user needs or expectations Software quality assurance is: ▪ A planned and systematic pattern of all actions necessary to provide adequate confidence that an item or product conforms to established technical requirements. ▪ An umbrella activity that is applied throughout the software process. ▪ A systematic, planned set of actions necessary to provide adequate confidence that the software development process or the maintenance process of a software system product conforms to established functional technical requirements as well as with the managerial requirements of keeping the schedule and operating within the budgetary confines. Software quality assurance (SQA) encompasses ▪ An SQA process. ▪ Specific quality assurance and quality control tasks (including technical reviews and a multitier testing strategy). ▪ Effective software engineering practice (methods and tools). ▪ Control of all software work products and the changes made to them. ▪ A procedure to ensure compliance with software development standards (when applicable). ▪ Measurement and reporting mechanisms. ▪ Are they synonymous? – No... ▪ How are they related? – Achieving the quality of the software by satisfying different objectives ▪ Assuring, with acceptable levels of confidence, conformance to functional technical requirements ▪ Assuring, with acceptable levels of confidence, conformance to managerial requirements of scheduling and budgets ▪ Initiating and managing activities for the improvement and greater efficiency of software development and SQA activities McCall’s factor model classifies all software requirements into 11 software quality factors Those are grouped into three categories: 1. Product operation factors 2. Product revision factors 3. Product transition factors ▪ Correctness ▪ Reliability ▪ Efficiency ▪ Integrity ▪ Usability ▪ Correctness is defined in a list of the software system’s required outputs – Output mission – Accuracy of the outputs – Completeness of the output information – UpToDate Ness of the information – Availability of information – Required standards and guidelines ▪ Reliability is deal with failures to provide service – Maximum allowed software system failure rate E.g. : – The failure frequency of a heart monitoring unit that will operate in a hospital’s intensive care ward is required to be less than one in 20 years. – Banking system will not fail, on average, more than 10 minutes per month during the bank’s office hours. ▪ Deals with the hardware resources needed to perform the functions of the software – Computer’s processing capabilities – Data storage capability in terms of memory – Data communication capability of the communication lines ▪ Deals with system security that prevent unauthorized persons access – Read permit: Majority of personnel allowed to see the information – Write permit: A limited group who will be allowed to add and change data E.g. : – VLE Quiz: Students can only view the quiz, but lecturers can view and edit the quiz ▪ Deals with the scope of staff resources needed to train a new employee and to operate the software system – Learnability will play a big role here ▪ Maintainability ▪ Flexibility ▪ Testability ▪ The degree of effort needed to identify reasons (find the problem) for software failure and to correct failures and to verify the success of the corrections E.g. : - The size of a software module will not exceed 30 statements - The programming will adhere to the company coding standards and guidelines ▪ Flexibility deals with resources to change (adopt) software to different types of customers that use the application perhaps a little differently E.g. : – VLE Courses – Gmail ▪ Deals with the testing of an information system as well as with its operation – Include automatic diagnostics performed by the software system prior to starting the system – Find out whether all components of the software system are in working order and to obtain a report about the detected faults ▪ Portability ▪ Reusability ▪ Interoperability ▪ The capability of software to be transferred from one environment to another ▪ The environment may include organizational, hardware or software environment ▪ Reusability deals with the use of software modules originally designed for one project in a new software project currently being developed ▪ Reuse of software is: – Expected to save development resources – Shorten the development period – Provide higher quality modules ▪ Based on the assumption that most of the software faults have already been detected ▪ Focus on creating interfaces with other software systems or with other equipment firmware – Does the application need to interface with other existing systems? – Can specify the name(s) of the software or firmware for which interface is required ▪ Some other SQA professionals have offered essentially renamed quality factors ▪ One has offered 12 factors; another 15 factors Totally five new factors were suggested ▪ Evans and Marciniak offer two ‘new’ ones: 1. Verifiability 2. Expandability ▪ Deutsch and Willis offer three ‘new’ ones 1. Safety 2. Manageability 3. Survivability ▪ Verifiability: – Defines design and programming features that enable efficient verification of the design and programming ▪ Expandability: – Refer to future efforts that will be needed to serve larger populations, improve service, or add new applications in order to improve usability ▪ Safety: – Eliminate conditions hazardous to operators of equipment as a result of errors in process control software ▪ Manageability: – Refer to the administrative tools that support software modification during the software development and maintenance periods, such as configuration management, software change procedures, etc... ▪ Survivability: – Refer to the continuity of service – Define the minimum time allowed between failures of the system, and the maximum time permitted for recovery of service ▪ What is 'Quality'? ▪ What is 'Software Quality Assurance’? ▪ Quality Control ▪ Quality Factors

Use Quizgecko on...
Browser
Browser