配置管理
任务:对不同阶段产生的文档(结果项)及其不同版本进行管理。
软件配置项
软件配置管理
配置管理的任务
- 软件配置项(Configuration Item)
软件开发过程中使用的或产生的,有价值的、值得保存的中间制品。
包括:
各类文档、评审记录、源代码及可执行的代码、自动化测试脚本、系统运行所需的软件以及支持软件的有关数据等。
2. 软件配置管理
SCM,Software Configuration Management
一套应用技术上和管理上的指导和监督的方法,
识别和记录配置项的功能特征和物理特征;
控制这些特征的变更;
记录和报告变更的处理和执行的状态;
以及验证其是否符合特定的需求。
- 软件配置管理的任务
1)版本管理
标识和保存每个配置项及每个版本。
以变更集(Change Set)为单位,进行增量存储。
2)建立配置库,管理代码传播。
签入(check in):将代码从个人工作区上传到配置库;
签出(check out):将代码从配置库下载到个人工作区。
3) 防止版本覆盖。
反方向适时更新工作区。
为修改的配置项“加锁”,或应用“并行合并”机制。
3) 防止版本覆盖。
反方向适时更新工作区。
为修改的配置项“加锁”,或应用“并行合并”机制。
4) 软件集成管理
集成(Integration)
根据软件需求,把不同的人开发的不同构件组合起来,以构成整体系统。
集成规则:
集成前:做充分的单元测试,保证提交质量;
集成中:较频繁的系统构建,持续集成;
集成后:建立系统基线(baseline)。
专题:软件测试
什么是软件测试?
测试(Testing)
软件测试是软件质量保障的方法之一,是广泛意义上“验证与确认”[IEEE1012-2004](简称V&V)的一部分。
验证(Verification)
检查开发者是否正确的使用技术建立系统,确保系统能够在预期的环境中按照技术要求正确的运行。
确认(Validation)
检查开发者是否建立了正确的系统,确保最终产品符合规格。
软件测试要做什么?
软件测试的目标
目标1:有效性测试:使用用户希望的方式来测试软件系统,发现缺陷并改进。
向开发者和用户展示软件满足了需求,表明软件产品是一个合格的产品;
目标2:缺陷测试:具有更大的重要性,目标是发现缺陷。
找出软件中的缺陷和不足。
只有发现了缺陷的测试才是成功的测试。
软件测试要怎么做?
为什么要做软件测试?
软件测试是软件质量控制的关键步骤。
软件测试是在软件投入生产性运行之前,对软件需求分析、设计规格说明和编码的最终复审。
质量保障(Quality Assurance)
所有的活动都是为了保障产品质量。
质量保障覆盖所有阶段,包括计划和维护阶段。
什么是质量(Quality)?
质量的客观方面
稳定性(Stability)/ 无缺陷(bug-free)
符合规范
质量的主观方面
体现用户的整体价值 / 满足用户的需求
终端用户体验愉悦
使得用户想更多的使用产品
Bug-free vs High Quality
宝马车和QQ车都通过了质量标准,都能上路跑,谁的质量高?
为什么质量如此重要?
低质量的软件更难于维护和支持
用户抱怨更多,需要更多人手来做客服
不断给软件打补丁
安排额外的发布
低质量的软件导致法律问题—用户会告你
低质量的软件会降低公司声誉,很难挽回
因果关系:
低质量的产品公司的生成份额降低,声誉降低股票掉价员工薪资福利降低
测试足以保证质量吗?
经典的测试技术仅测量客观的质量因素。
如 稳定性,是否符合规格说明
测试通常发生在设计阶段的很长时间之后,因此设计过程中的问题被搁置。
测试用例的生成类似于艺术创作,因此覆盖的可靠性不稳定。
测试时间经常会被牺牲。