软件测试与质量保证学习笔记(英)_UNIT1_Concept of Software Quality Assurance(原)

来源:互联网 发布:药典 有软件吗 编辑:程序博客网 时间:2024/05/22 14:09

Author: 冷月(tinysf)

1.         There are many failures in software development, resulting in cost overruns and schedule delays.

2.         There are two common views on quantity: Quality is factual (Does the right thing?), Quality is perceived (Does the thing right.).

3.         Quality is conformance to explicit stated functional and performance requirements, explicitly documented development standards, and implicit characteristics that are expected of the developed software.

4.         It defines quality software to be one which satisfies the stated requirements and also meets the user’s expectations.

5.         Why it is hard to achieve quality?

              Customers often find it difficult to specify how a proposed system is supposed to work.

              Commercial pressures and tight deadlines practically guarantee chaos during development.

              An ever-expanding features list keeps system specification in flux and increases the chances for introducing defects.

6.         Software quality consists of a set of attributes based on the user’s view of the system. Correctness, Reliability, Efficiency, Integrity, Maintainability …

7.         The cost of quality consists of three components: cost of prevention (COP), cost of failure (COF), and cost of appraisal (COA).  COQ=COF+(COA+COP).

8.         Increases in prevention and appraisal costs generally lead to a reduction in failure cost and the total cost of quality.

9.         Quality control: (QC) is the set of activities intended to detect, document, analyze, and correct product defects and to mange product changes. A more down to earth definition of QC: QC is defect control, error control, frustration control, and the control of all negative quality problems related to quality. QC is concerned with products.

10.     QA: identifying process flaws and weaknesses, improving the process.

11.     Both QA and QC take place throughout the entire software development process. QA function should be independent of the QC function.

12.     What is software quality assurance (SQA)? Quality assurance consists of those procedures, techniques and tools applied to ensure that a product meets or exceed pre-specified standards during a development cycle; and quality assurance entails ensuring that a product meets or exceeds a minimal industrial or commercially acceptable level of excellence, when there are no specific prescribed standards.

13.     A quality process produces a quality product.

14.     SQA has three goals: Monitor the software and the development process; Ensure compliance with standards and procedures; Bring needs for improvement to manager’s attention. (SQA is not responsible for quality; it is the responsibility of the project team to produce high quality products.)

15.     SQA tools: audits, reviews, measurements.

16.     Benefits of SQA:

              Reduces the number of defects and thus reduce the testing time and effort;

              Leads to higher reliability that will result in greater customer satisfaction;

              Reduces maintenance costs

              Reduces the life cycle cost of software.

17.     Quality audit: is a systematic and independent examination to determine whether quality activities and related results comply with planned arrangements and whether these arrangements are implemented effectively and are suitable to achieve objectives.

18.     Quality audit: the auditing part and audited part. It requires a trained and competent audit team. Common type: internal, planned, and quality system audit.

19.     SQA plan: a plan for conducting the QA process activities.

20.     SQA activities: Application of technical methods; Conducting of formal technical reviews; Enforcement of development standards and procedures; Control of change; Measurement; Record keeping and reporting the results of reviews, audits, change control, testing and other SQA activities.

21.     QA in practice levels: Global (Company) level: be a separate QA department; Local (Project) level: may be played by the project manager.

22.     Challenges of QA:

              No matter how good is the QA process, we don’t know whether we have created the correct specification.

              Some software systems are extremely complicated making it difficult to perform QA.

              It is difficult to divide the responsibilities involved when performing QA. There are 3 parties who may be responsible for QA: project management, development group and QA group.

              QA has a negative connotation.

23.     Summary:

              Software quality is conformance to explicit stated and implicit requirements.

              Software quality may be modeled as a set of attributes, including correctness, reliability, efficiency, testability, usability.

              SQA focuses on the process. (QC focus on the product)

              Quality audit is not the same of QA.

              Cost of quality includes three components: COP, COF and COA.

              Quality is free because the saving from improvement can be used to fund the improvement project.

              QC should be independent of QA.