软件工程导论Part3 Quality Assurance软件质量保障
Part3 Quality Assurance
Chap 15-16 Software Quality
1 The important of Software Quality
2 What is Quality
For software, two kinds of quality may be encountered:
- Quality of design encompasses requirements, specifications, and the design of the system.
- Quality of conformance is an issue focused primarily on implementation.
User satisfaction = compliant product + good quality + delivery within budget and schedule
用户满意=符合要求的产品+良好的质量+在预算和时间表内交付
3 Software Quality Standards
4 “Good Enough” Software
Good enough software delivers high quality functions and features that end-users desire, but at the same time it delivers other more obscure or specialized functions and features that contain known bugs.
5 The Cost of Quality
What is Cost of Quality (CoQ)? Why to Use & How to Measure it?
6 Achieving Software Quality
7 Software Quality assurance
Element of SQA
- Standards
- Reviews and Audits 评审与审计
- Testing
- Error/defect collection and analysis 错误/缺陷收集和分析
- Change management
- Education
- Vendor management 供应商管理
- Security management
- Safety
- Risk management
SQA Goals
- Requirements quality.
- Design quality.
- Code quality.
- Quality control effectiveness.
Chap 17-19 Software Testing Strategy & Techniques
1. Concepts
Testing is the process of exercising a program with the specific intent of
finding errors and faults prior to delivery to the end user.
测试是带着特定的目的执行程序的过程
在交付给最终用户之前找出错误和故障
2. V model vs. W model
Verfication & validation
3. Testing Strategies 黑盒 白盒 优缺点
Unit testing
Integration testing 集成测试
Difference between Top Down and Bottom Up Integration Testing - GeeksforGeeks
Sandwich Testing | Software Testing - GeeksforGeeks
System testing
Validation testing
Difference between Alpha and Beta Testing - GeeksforGeeks
Testing vs. Debug
4. Testing techniques
White box vs. Black box
Static testing vs. Dynamic testing
Chap 20-21 Security Engineering & SCM
security safety 关系 为什么是前提
在软件工程中,security和safety是两个不同的概念。Safety是指软件产品的安全性,是确保软件产品在使用过程中不会对人身造成伤害或死亡的能力。而security则是指软件系统的安全性,是确保软件系统不被非法入侵或攻击的能力。在软件工程中,安全是软件生命周期的核心焦点,因为安全问题可能会导致软件产品的质量下降,成本增加,甚至对人身造成威胁。因此,在软件工程中,确保软件产品的安全性和软件系统的安全性是必不可少的前提条件。[3][5][6]
Insights 在软件工程中,安全性和安全性问题是非常重要的,因为它们关系到软件产品的质量和用户的安全。因此,在软件开发过程中,必须始终关注软件产品的安全性和安全性问题,并采取相应的措施来确保软件产品的安全性和安全性。同时,软件工程师也应该不断学习和提高自己的安全意识和技能,以更好地保障软件产品的安全性和安全性。
在软件工程中,security 是 safety 的前提,这是因为安全是软件工程中最重要的方面之一,它涉及到保护系统免受恶意攻击和不良行为的影响。而软件的安全性和可靠性可以通过对软件缺陷的分析和评估来实现。
Why Security Engineering
SCM (Software configuration Management 软件配置管理)concepts:
Baselines / SCI / SCM Process
⑴定义配置项:软件:置项(SC)阅软件配置管理的对象。软件开发过程中产生的所有信息构成软件配置,
它们是:代码(源状代码、目标代码)以及数据结构(内部数据、外部数图、文档技术文档、管理文档、需方文档、报告,其中每一项称为配置项,软件配置项是配置管理的基本单位。同时,开发过程中使用的环境,如操作系统、各种支撑软件、配置管理工具,也可纳入软件配置管理范围
(2)标识配置项:正确标识软件配置项对整个管理活动非常重要,对软件开发过程中的所有软件项目赋予唯一的标识符,便于对其进行状态控制和管理。
配置标识包括:文档标识、代码标识、运行文件标识。
典型的命名规则是RUP法。
(3定义基线:基线标志着软件开发过程一个阶段的结束,任一软件配置项,一旦形成文档并审议通过,即成为基线。基本的作用在于把各阶段的工作划分得更明确,使本来连续的工作在这些点上断开,以便检验和肯定阶段成果。
SCM process
The Software Configuration Management Process: 5 Steps