注册软件质量工程师大纲
美国质量学会 注册软件质量工程师
知识大纲
该知识大纲以书面形式介绍了考试题目包括子题目的解释以及题目的认知程度。这些信息对考试发展委员会和准备参加考试人提供了指南。但这不限于试卷所包含的主题或者所包括的一切的资料。它只是分类考试中将要包括的题目类型。在每段最后括号中的描述是指将要测试的每个题目的最大的认知程度。在该文件后面对认知程度做了详细描述。
I.
常识(16题) A. 质量原理
1. 软件质量的好处
描述软件质量工程可以给组织层面带来的好处。(理解)
2. B.
组织的和过程的基准
在组织、流程或项目层面使用基准来识别并实施最佳实践。(应用)
遵从道德和法规 1. ASQ道德标准
在需要道德决策的情况下确定合适的行为,包括识别利益冲突,认识以及解决道德问题等。(评估)
2. 法律和法规问题
定义并描述例如版权,知识产权,产品责任,数据保密,萨班斯法案等问题对软件开发的影响。(理解)
C. 标准和模型
定义并描述下列标准和评估模型:ISO 9000标准,IEEE软件标准以及SEI集成能力成熟模型(CMMI)。(理解)
D.
领导技能
1. 组织的领导力
使用领导工具和技术,例如组织的变更管理,知识转移,激励,监控和现场指导,识别等。(应用)
2. 促进技能
使用不同的方法管理并解决冲突。使用沟通技巧以及识别可能的结果。使用会议管理工具最大化绩效。(应用)
3. 沟通技能
在口头,书面和报告方式上使用不同的沟通方法(例如,面谈和倾听技巧)。在多文化环境中工作使用不同的技术,并识别和描述文化和沟通对质量的影响。(应用)
E.
团队技能
1. 团队管理
使用不同的团队管理技巧,包括分配角色和职责,识别团队发展的典型阶段,(组建期、磨合期、规范期、表现期、休整期),对小组的动态进行监控并做出反应,以及同分布在不同工作环境的不同小组工作。(应用)
2. 团队工具
使用决策以及创造力工具,例如头脑风暴,名义小组技术(NGT),多次投票等 。(应用)
II.
软件质量管理(26题) A. 质量管理体系
1. 质量目的和目标
设计与商业目标一致的项目和产品质量目标。开发并使用文件和必需的过程来支持软件质量管理体系。(创建)
2. 顾客和其他利益相关方
描述并区分不同利益相关方小组,并分析他们的需求给软件项目和产品带来的影响。
3. 4.
计划
设计支持软件质量目的和目标的项目计划。(评价)
外包
决定获取,多个供应商的伙伴关系,外包服务以及其他外部驱动对组织目标的影响,设计合适的评价供应商和子供应商准则。(分析)
B.
方法论
1. 质量成本
分析质量成本类别(预防,评价,内部失效,外部失效)和他们对产品和过程的影响。(评价)
2. 过程改进模型
定义并描述精益工具的要素以及六西格玛方法,并使用计划-执行-检查-行动(PDCA)模型对过程进行改进。(应用)
3. 纠正措施规程
评估与软件缺陷,过程不符合性以及其他质量体系不足的纠正措施规程。(评价)
4. 缺陷预防
定义并使用缺陷预防过程,例如技术评审,软件工具和技术,专业培训等。(评价)
C.
审核
1. 审核类型
定义并区分不同的审核类型,包括过程,符合性,供应商,系统等。(理解)
2. 审核角色和职责
识别客户,主任审核员,审核小组成员以及被审核方等审核参与者的角色和职责。(理解)
3. 审核过程
定义并描述实施审核,开发及交付审核报告的步骤,并决定适当的后续活动。(应用)
III.
系统和软件工程过程(27 题) A. 生命周期和过程模型
评估不同的软件开发生命周期(迭代,瀑布等)以及过程模式(V-模式,特性驱动开发,测试驱动开发等)以及识别他们的好处以及应该何时使用他们。(评价)
B. 系统架构
识别并描述各种体系架构,包括嵌入式系统,客户服务器体系架构,多层应用体系架构,Web体系架构,无线体系架构,基于层次消息总线的体系架构,协调平台等,分析架构对质量的影响。(分析)
C.
工程需求 1. 需类型
定义以及描述要求的不同形式的需求,包括特征,功能,系统,质量,安全性,法规等(理解)
2. 需求导出
描述并使用不同的导出方法,包括顾客需求分析,用例,人员因素研究,可用性原形,联合应用开发,情节等。(应用)
3. 需求分析
识别并使用数据流图(DFDs),实体关系图(ERDs)等工具进行需求分析。(应用)
D.
需求管理 1. 参与者
识别不同的参与者在需求策划中的作用,包括顾客,开发人员,测试人员,质量功能组,管理者等。(理解)
2. 需求评价
评估需求的完整性、一致性、正确性和可测试性,并决定他们的优先级。(评价)
3. 4.
需求变更管理
在所有的生命周期模型中,评估需求变更对软件开发过程的影响。(评价)
双向追溯
使用不同的工具和技术来确保从需求导出、需求分析到设计和测试的双向追溯。(应用)
E.
软件分析,设计和开发 1. 设计方法
识别在软件设计和他们的功能中所使用的步骤,定义并区分软件设计方法例如面向对象的分析和设计(OOAD),结构化分析和设计(SAD)以及模仿。(理解)
2. 质量属性和设计
分析与质量相关的要素(安全性,可靠性,可用性,可重用性,可维护性等)在软件设计中的影响。(分析)
3. 软件重用
定义并区分软件重用,再造,以及逆向工程之间的区别,并描述他们在软件质量中所产生的影响。(理解)
4. 软件开发工具
对建模,代码分析等选择适当的开发工具,并分析他们在需求管理和文件中产生的影响。(分析)
5. 软件开发方法
定义并描述结对编程,极限编程,净室方法,正式方法等的工作原理以及他们对软件质量的影响。(理解)
F.
维护管理
1. 维护类型
描述改正性,适应性维护,完善性以及预防性等四种维护类型的特性。(理解)
2. 维护战略
描述影响软件维护战略的不同因素,包括服务等级协议(SLAs),短期和长期成本,维护发布,产品中止等以及他们对软件质量的影响。(理解)
IV. 项目管理(24题)
1. 2.
计划,时间安排和部署
使用预测,资源,时间计划,任务和成本估计等制定项目计划。(应用)
项目日程
使用皮特图,关键路径法(CPM),工作分解结构(WBS),混战,烧毁图表和其他工具制定时间表并监控项目。(应用)
3. 项目部署
使用不同的工具,包括里程碑,所完成的目标,任务持续时间等确定目标并实施项目。(应用)
B.
追溯和控制
1. 阶段转移控制
使用相变控制工具和技术例如,入口/出口准则,质量门、甘特图,完整的任务表等。(应用)
2. 跟踪方法
计算与项目相关的成本,包括挣值,可交付成果,生产率等,以及依据项目基准跟踪结果(应用)
3. 项目评审
使用不同类型的项目评审,例如阶段完成,管理以及项目回顾或项目后评审来评估项目绩效和状态,评审问题和风险,并从项目中发现和学习经验教训。(应用)
4. 程序评审
确定和描述用于评审和评估项目的绩效、技术完成成果、资源利用等方面内容的不同方法。(理解)
C.
风险管理
1. 风险管理方法
使用管理技术(评估,预防,缓解,转移)来评价项目风险。(评价)
2. 软件安全风险
评价软件安全的特定风险,包括故意攻击(黑客,阴谋破坏等),允许非授权访问数据的固有缺陷,以及其他安全违反行为,并采取适当的对应措施来最小化他们的影响。(评价)
3. 安全和危险分析
评估与软件开发和实施过程相关的安全风险和危险,并决定适当的步骤使其影响最小化。(评价)
V.
软件度量和分析(24题) A. 度量和测量理论
1. 专业术语
定义并描述度量以及测量术语包括可靠性,内在度效和外在度效,直接和派生测量等。(理解)
2. 基础的测量理论和统计
定义中心极限定理并描述和使用平均数,中值,,众数,标准差,方差,以及极差。在不同情况下应用适当的测量尺度(名义的,顺序的,比例的,间隔的)。(应用)
3. 度量心理学
描述度量和测量是如何影响那些工作被测量的人,还有人是如何影响度量的使用和数据的收集。(理解)
B. 过程和产品测量
1. 软件度量
使用度量评估不同的软件属性,例如规模,复杂性,缺陷的数量,所需测试覆盖量,需求的挥发性以及总的系统性能。(应用)
2. 过程度量
使用功能验证测试(FVT)、成本、收益、顾客影响、缺陷检出、缺陷抑制、总缺陷抑制有效性(TDCE)、缺陷移除率(DRE)、过程能力和效率等来测量软件的有效性和效率。(应用)
3. 度量报告工具
使用不同的度量展示工具,包括仪表盘、信号灯和图等来有效地报告结果。(应用)
C.
分析技术 1. 抽样
定义并区分不同的抽样方法(例如,随机抽样,分层抽样,整群抽样),比在审核,测试和产品接受中使用。(应用)
2. 数据收集和完整性
描述从策划到收集和分析,数据完整的重要性,并使用不同 的技术确保它的质量,准确,完整和及时。(应用)
3. 质量分析工具
描述在不同情况下使用质量工具(流程图,柏拉图,因果图,控制图,直方图等)以及问题解决工具(亲和图,系统图,矩阵图和箭线图,根本原因分析等)(应用)
VI.
软件验证和确认 (V&V) (27题) A. 理论
1. 软件验证和确认方法V&V
选择并使用验证和确认方法,包括静态分析,结构分析,数学证明,模仿等以及分析哪一个任务应该作为修改的结果被重申。(分析)
2. 软件产品评价
使用不同的评价方法对文档,源代码,测试结果等来决定用户份额需求和项目的目标是否得到满足。(分析)
B.
测试计划和设计 1. 测试战略
对各种情况选择并分析测试战略(驱动测试设计,足够好,基于风险,时间盒,从上到下,由下至上,黑盒子,白盒子,模仿,自动化等)。(分析)
2. 测试计划
制定并评估测试计划和流程,包括系统测试,接受测试和确认测试等来决定项目目标是否得到满足。(创建)
3. 测试设计
选择并评估不同的测试设计,包括缺陷插入,故障-错误处理,等价类划分,边界价值等。(评价)
4. 软件测试
识别并使用不同的测试,包括单元,功能,性能,集成,回归,可用性,接受,认证,环境负载,压力,最坏情况,完成性,探测,系统测试等。(应用)
6.
对第三方构建和产品的集成确定合适的测试水平。 (应用)
测试覆盖规范
评估如,功能,状态,数据和时域,界面,安全规范,以及包括国际化和平台差异在内的配置的充分性。(评价)
7. 8.
代码覆盖技术
识别并使用如下技术:分支、条件、域、McCabe圈复杂度、边界等。(应用)
测试环境
选择并使用模仿,测试库,驱动,桩,测试用具等并在不同情况下识别参数建立可控测试环境。(分析)
9. C. D.
测试工具
识别并使用实用工具,诊断工具以及测试管理工具。(应用)
评审和审查
识别并使用桌面检验,同行评审,走查,Fagan 和 Gilb审查等。(应用)
测试执行文档
评审并评估文件例如缺陷报告和追踪报告,测试完成度量,问题报告,输入/输出说明。(评价)
E. 顾客交付物
评估顾客交付物的完成程度,包括打包后产品,主机或供下载产品,许可证以及用户使用文档,市场和培训材料等。(评价)
VII.
软件配置管理 (16题) A. 配置基础架构
1. 配置管理团队
描述配置管理群的角色和职责。(理解)
[注:配置控制委员会(CCB)的角色和职责在VII.C.2中有介绍]
2. 3.
配置管理工具
描述管理配置库,建立配置系统,缺陷追踪系统使用的工具。(理解)
配置库过程
描述用于配置库系统和相关规程的动态、静态和受控过程,如检入/检出,合并变更等。(理解)
B.
配置识别 1. 配置项
描述配置项(文档,软件代码,设备等),识别方法(命名规则,版本规划等)以及什么时候创建并使用基线。(理解)
2. 软件构建
描述软件构建和配置管理功能之间的关系,以及描述控制构建的方法(自动构建,新版本等)。(理解)
C.
配置控制和状态统计
1. 配置目,基线和版本控制
描述文件控制,追踪配置项变更,版本控制等过程,并使用他们来管理不同的配置,并描述用于管理配置项在软件构建和建立版本之间的依赖的过程。(理
2.
解 )
配置控制委员会 (CCB)
描述配置控制委员会的角色和职责、、成员和他们使用的规程。(理解) [NOTE: 在VII.A.1.有提到配置管理小组的角色和职责]
4. D. E.
描述在并行开发过程中配置管理控制规范。(理解)
状态统计
描述建立,维护以及报告配置项状态的不同过程。(理解)
配置审核
定义并区分功能的和物理配置审核以及在相关的产品说明书中使用。(理解)
产品发布和分发 1. 产品发布
评审产品发布流程(计划,时间安排,定义硬件和软件从属关系等)并评估他们的有效性。(评价)
2. 归档过程
评审源文件和发布归档过程(备份计划以及时间安排,数据恢复,建立环境的档案,保留历史记录,离线存储等)并评估他们的有效性。(评价)
认知程度
基于布鲁姆分类法-修订(2001)
该知识大纲除了目录细节以外,也阐述了这些题目中考试题目的复杂程度。这些程度基于“认知程度”(布鲁姆分类法-修订,2001)并按照从简单到复杂的顺序陈述。
记忆
回顾或认识术语,定义,事实,想法,材料,图表,结果,方法,原理等。
理解
阅读并理解描述,交流, 报告,表格,图表,指南,法规等。
应用
知道何时以及如何使用这些想法,步骤,方法,公式,原理,理论等。 分析
把信息分解到组成要素并认识到他们的相互关系以及如何组织他们;从复杂的场景中识别次级因素或重要数据。
评估
通过把建议与具体规格标准或规范相比较,对所提议的观点的价值,结果等进行判断。
创建
通过使用把零件或者要素放到一起的方法把以前不清楚的方式或者结构表现出来;从复杂一套中识别哪一种数据或信息适用于检验未来或者从哪种所支持的结论中得出结果。