软件测试和软件质量保证.(读书笔记)
1. 软件质量保证(SQA)
保证质量是一个活动,它向所有有关的人提供证据以确立质量功能正在按需求运行的信心.
a. 软件开发产品的SQA目标
1).需求分析
通过识别相互矛盾、不一致、有歧义或者不必要的需求,确保用户指定的需求确实能满足他的真正要求.避免开发人员和客户之间的误解.
2).产品说明
通过建立需求跟踪文档,确保产品说明书与系统需求保持一致.
确保产品说明书能适应当地改进系统的灵活性、可维护性以及性能.
确保已建立了测试策略.
确保已建立了现实的开发进度表,包括已计划的审查.
确保已为系统设计了正式的变更规程.
3).软件设计文档
确保已建立用于描述设计的标准,并且确保遵循这些标准.
确保适当的控制并用文档记录队设计更改的变更.
确保在系统设计组件已根据商定的准则得到批准之后才开始编码.
确保队设计的审查按照进度进行.
4).编码
确保代码遵循已建立的风格、结构和文档标准.
确保代码经过适当测试和集成,同时对编码模块的修改得到适当的标识.
查看代码编写是否遵循既定的进度.
确保代码审查按照制度进行.
5).测试文档
确保测试计划的建立和遵循.
确保创立的测试计划能够满足所有产品说明书的要求.
确保经过测试和返工后软件需求与产品说明书保持一致.
6).维护文档
确保代码和文档的一致性.
确保对已建立的变更控制过程进行检测,包括将变更集成到软件的产品版本中的过程.
确保对代码的修改遵循编码标准,并且要对其进行审查,不要破坏整个代码结构.
b. 实施质量管理
1).质量管理体系
定义过程起点,建立质量方针.确立质量方针后就应该着手为规程、标准、方法及其他内容编写文档.为了确保文档编写很多质量专家有必要让一组人员全职负责此任务.就会成立软件工程过程小组(SEPG),该小组负责根据反馈连续定义、监控并精心的协调所有过程.
勉强任用兼职人员编写过程文档无疑会导致失败.QA小组需要在编写文档的同时询问相关的人员,并确定从事这项工作的人员在实现它之前审查了文档.
质量管理是项目管理的补充,并且明确了一下几点重要性:
1. 满足客户——理解、管理和引导需求,从而达到或超过客户的期望.
2. 通过检验防止错误——避免错误的费用通常比纠正它们低的多.
3. 管理责任——成功需要团队全体成员的合作,但提供成功所需的资源则是管理工作的职责.
4. 各阶段的程序——戴明(Deming)和其他人所描述的那种重复的”计划—执行—检验—行动”工作循环相同.
此外,由执行组织主动采取的质量提高措施既能够提高软件项目管理的质量,也能够提高开发生产质量.
2)质量计划.
质量计划包括确定哪种质量标准适合该软件开发并决定如何达到这些标准.
开发小组还应注意现代化质量管理中的一项基本原则——质量在计划中确定,而非在检验中确定.
A. 质量计划的输入.
1. 质量政策.一个注重质量的组织的所有努力和决策,通常称为顶级管理.
2. 范围阐述.对质量计划的重要输入.揭示主要的子开发项目和开发目标的书面文档.
3. 产品说明.阐明技术的要点、细节和可能影响质量计划的因素.
4. 标准和规划.
5. 其他程序的输出.应当作为质量计划的一部分加以考虑.
B. 质量计划的手段和技巧
1. 效益/成本分析.达到质量标准,首先要减少返工,以及提高开发相关人员的满意度.效益比成本更重要.
2. 基本水平标准.包括将实际的或计划中的开发实施情况与其他开发的实施情况相比较,从而得出提高水平的思路,并提供检测开发绩效的标准.
3. 流程图
i. 因果图(Ishiawa图)
ii. 系统或程序流程图.
4. 试验设计是一种分析技巧,他有助于鉴定哪些变量对整个开发的成果产生最大的影响.也可以用于软件开发管理成果.
C. 质量计划中的输出
1. 质量管理计划.应说明项目管理小组如何具体执行它的质量策略.为整个开发计划提供了输入资源,并必须兼顾开发的质量控制、质量保证和质量提高.可以是正式的或非正式的,高度细化的或框架概括的,皆以开发的需要而定.
2. 操作性定义.
3. 审验单.
4. 对其他程序的输入.
3)质量保证
质量保证是”为了提供信用,证明项目将会达到有关质量标准,而在质量体系中开发的有计划、 有组织的工作活动。”
质量保证通常由质量保证部门或有类似名称的组织单位提供,但也不都是如此.
A. 质量保证的输入
1. 质量管理计划.
2. 质量控制检测结果.质量控制检测结果是对质量控制的检测和测试以比较分析的形式作出的报告.
3. 操作性定义.
B. 质量保证的手段和技巧
1. 质量计划的手段和技巧.阐述的质量计划手段和技巧在质量保证中同样能适用.
2. 质量审查.是对其他质量管理活动的结构性复查.
C. 质量保证的输出
质量提高.质量提高包括采取措施提高软件开发的效益和效率,为软件开发相关人员提供更多的利益.
4)质量控制
质量控制包括监控特定的项目成果,以判定他们是否符合有关的质量标准,并找出方法消除造成软件开发成果不令人满意的原因.
项目小组应当具备质量控制统计方面的实际操作知识,尤其是抽样和概率.并且还应区分:
l 预防和检验.
l 静态抽样
l 确定原因
l 误差范围
5)质量控制的输入
1. 项目成果.
2. 质量管理计划
3. 操作性定义
4. 审验单
6)质量控制的手段和技巧
1. 检验.检验包括测量、检查和测试等活动,目的是确定开发项目成果是否与要求相一致.
2. 控制表.控制表是根据时间推移对程序运行结果的一种图表展示.
3. 排列图.是一种直方图,由事件发生的频率组织而成,用以显示多少成果是产生已确定的各种类型的原因.
4. 抽样调查统计.
5. 流程图
6. 趋势分析.趋势分析常用来检测:
l 技术上的绩效
l 成本和进度绩效
7)质量控制的输出
1. 质量提高.
2. 可接收的决定.
3. 返工.
4. 完成后的审验单
5. 程序的调整.