Software Quality and Assurance PDF
Document Details
Tags
Summary
This document discusses software quality and assurance, covering various aspects such as observed software problems, quality assurance methodologies, causes of software errors, and quality metrics. It also includes topics about software maintenance, quality control, product transition factors, and other significant quality factors.
Full Transcript
Int. Software Quality and Assurance(Güvence) - Some observed problems for software products: fail to meet user req. frequently crash expensive often delivered late - Software product vs Other products Complexity...
Int. Software Quality and Assurance(Güvence) - Some observed problems for software products: fail to meet user req. frequently crash expensive often delivered late - Software product vs Other products Complexity [allow very large number of operational options] Visibility of product [invisible,impossible to detect defect] Nature of development [just one phase to detect, namely product development] - Software Quality Assurance refers quality of all components in software ○ code, ○ documentation, ○ test data - What is quality? conformance to requirements does it actually do the job? Is it reliable and robust? customer satisfaction shortly: meets the requirements Quality And Assurance PART II - Fault, Failure & Error Fault(Defect) - incorrect process in a program. Failure - the inability to perform the function within specified requirements. Error - difference between observed cond. and specified cond. - Causes of software errors are : Faulty requirements definition : for example; Unnecessary requirements included, incorrect requirements, Client-developer communication failures: misunderstanding of client req. Deliberate(kasıtlı) deviations(sapma) from software req. : reuse of existing soft. component from projects without complete analysis. Logical design errors Coding errors : incorrect use of programming language Non-compliance(uymak) with documentation or coding instructions Shortcoming of the testing process : Incomplete test plan, Incorrect reporting of errors User interface and procedure(prosedür) errors Documentation errors : errors in user manuals for software - How to achieve quality? To achieve must plan it from the beginning. - What is Software quality assurance? a set of activities that define and evaluate the qualification of software processes to provide evidence. - Objectives(hedefler) of SQA activities assuring an acceptable level of functional technical requirements , managerial scheduling and budgetary requirements - Software quality Control vs SQA SQC : set of activities to evaluate quality of a product. ○ main objective : evaluate the quality of a final product main objective of SQA: minimize the cost ensuring quality of a software in development and maintenance stages. SQC activities are just part of total SQA activities. Software Quality Factors - McCall’s Factor Model ★ Product Operation Factors : deal with req. directly affect daily operation of software. Correctness: does it do what I want.? ○ accuracy of output information Reliability: does it always do it samely? ○ maintain a level of performance under every condition. Efficiency: does it run as well as it can? ○ level between performance of software and amount of resources used Integrity: does it prevent unauthorized modification? ○ limited group who will be allowed to add and change data (“write permit”) ○ the rest (unauthorized group) Usability: is it designed for the user? ○ operation usability: the average number of transactions performed per hour, ○ training usability: the average time spent training a new employee. ★ Product Revision Factors : deal req. affect software maintenance Maintainability: can I fix it? ○ effort needs to make improvements or modification to software. Flexibility: can I change it? ○ capabilities that software changes for different customers that use software a little differently. Testability: can I test it? ★ Product Transition Factors : deal req. affect software performance on other platforms or other softwares Portability: can I use macOS? ○ adaptation to different hardware Reusability: can components be used in other ways? Interoperability: does it interface with other systems? ○ ability to interact with other specified systems - Other quality factors: Verifiability: like testability Expandability: refers to scalability Safety: setting alarms in software to not application down Manageability: refers to control versions and log Survivability: similar reliability with minimum allowed failures of system Security: ability to protect data or software. - Defining requirements not just user has requirements developer’s additional requirements Overview of Components of Software Quality Assurance - Pre-project components Contrat reviews ○ explanation of customer’s requirements ○ review project schedule ○ evaluation of staff’s capacity to finish the project, Development and quality plan ○ Development plan: Schedules Risk evaluation required hardware resources,manpower project development tools ○ Quality plan: quality gloss criteria for each project stage list of tests - Software lifecycle components Reviews ○ Software development process produces a variety of documents. Expert opinions ○ support from expert into in-house development useful when insufficient staff temporary inaccessibility of staff disagreement among senior staff Testing ○ based on prepared list of test cases Software maintenance components Assurance of quality of external participant’s work ○ economic,technical, [Subcontractors] ○ RISK: effective controls needed for external workers. - Infrastructure component for error prevention and improvements aim is reduce rate of errors, prevent software faults Procedures and work instruction, applicable to the entire organization and provide detailed directions. Templates and Checklists, prepare a list of subjects to be reviewed. Staff training, keep staff knowledgeable and certify them. Preventive and corrective actions: systematic study of data collected previous failure and success. Configuration management: modify software Documentation control - Management SQA components Project progress control, main objective is to detect the appearance of any situation that delays the project’s plan. ○ resource usage, the budget Software quality metrics, support of control activities Software quality costs, the cost of control + cost of failure - SQA standards, system certification and assessment components Objectivies ○ improvement of coordination with other organizations Quality Management Standards, focus what is required/leaved about how to achieve it to organization [ISO9001] Project Process Standards, methodological guide for development team. [ISO1220] - Organizing for SQA - the Human component main objective is to develop implementation of SQA components. Management’s role in SQA, effectively follows quality policy implementation. SQA Unit, preparation of quality programs SQA Trusties, reporting SQA Unit about quality issues in their team. SQA Committees, solution of software quality problems SQA Forums, share experiences others.