第一章
1、软件质量保证(SQA)是一种应用于整个软件过程的保护性活动,它包括、
(1)一种质量管理方法
(2)有效的软件工程技术
(3)在整个软件过程中采用的正式技术复审
(4)一种多层次的测试策略
(5)对软件文档及其修改的控制
(6)保证软件遵从软件开发标准的流程
(7)度量和报告机制
2、我们应该从哪几个方面考虑软件质量
(1)软件结构方面 (2)功能与性能方面 (3)开发标准与文档方面
3、IEEE对软件质量的定义
(1)系统、部件或过程满足规定需求的程度
(2)系统、部件或过程满足顾客或客户需要或期望的程度
该定义相对客观,强调了产品(或服务)和客户/社会需求的一致性
4、ANSI关于软件质量的定义
与软件产品满足规定的和隐含的需求的能力有关的特征和特性的全体
(1)软件产品中能满足用户给定需求的全部特性的集合
(2)软件具有所期望的各种属性组合的程度
(3)用户主观得出的软件是否满足其综合期望的程度
(4)决定所用软件在使用中将满足其综合期望程度的软件合成特性
5、软件质量保证的目的:
(1)通过对软件产品和活动进行评审和审计来验证软件是否符合标准
(2)软件质量保证组在项目一开始时就一起建立计划、标准和过程,这些使软件项目满足机构方针的需求
6、软件测试是使用人工或自动手段来运行或测定某个系统的过程,检验他是否满足规定的需求或者弄清预期结果与实际结果之间的差别。
第二章
7、软件质量控制是一组由开发组织使用的程序和方法,使用他可在规定的资金投入和时间限制的条件下,提供满足客户质量要求的软件产品并持续不断地改善开发过程和开发组织自身,以提高将来生产高质量软件产品的能力。
8、软件质量控制的基本方法:目标问题度量法、风险管理法
第三章
9、软件过程度量中的常见问题:度量太多太频繁、度量太少太迟、度量了不正确的事物和属性、度量的定义不精确、收集了数据却没有利用、错误的解释度量数据、自动化工具欠缺
10、软件配置管理是一种标识、组织和控制修改的技术。作为CMM2级的一个关键域,在整个软件的开发活动中占有重要位置,是贯穿于整个软件过程中的保护性活动。用于标识变化、控制变化、保证变化被适当的实现、向其他可能有兴趣的人员报告变化
11、一个软件研发项目可以划分为三阶段:计划阶段、开发阶段和维护阶段
第四章
12.软件可靠性评价准则
(1)模型拟合性
(2)模型预计程度
(3)模型偏差
(4)模型偏差趋势
(5)模型噪声
注:345指标值越小,模型的适应性越好
13、提高软件可靠性的方法和技术
(1)建立以可靠性为核心的质量标准。软件质量分为产品质量(软件质量、文档质量)和过程质量。确定划分的个开发过程的质量度量
(2)选择开发方法
(3)软件重用,包括开发过程重用、软件构件重用、知识重用
(4)使用开发管理工具
(5)加强测试,测试方法包括走查、机器测试、程序证明或交替程序显示、模拟测试、设计审查
(6)容错设计:容错设计可以避免故障,不让差错和缺陷潜入软件
第五章
14、能力成熟度模型CMM为软件过程改进提供了一个框架,将整个软件改进过程分为5个成熟度等级,用于定义一个有序的尺度,用于衡量组织软件过程成熟度评价其软件过程能力
等级 | 特征 | 关键域 |
---|---|---|
初始级 | 软件过程混乱无序、对过程几乎没有定义、依靠个人才能成功、反应式管理方式 | |
可重复级 | 建立基本的项目管理、制定必要的项目管理、能利用以前的类似项目取得成功 | 需求管理、项目计划、项目跟踪和监控、软件子合同管理、软件配置管理、软件质量保证 |
已定义级 | 将软件管理和过程文档化标准化、综合成标准软件过程并用于所有的软件开发 | 组织过程定义、组织过程焦点、培训大纲、软件集成管理、软件产品工程、组织协调、专家评审 |
已管理级 | 通过收集软件过程、产品质量的详细度量对两者进行理解和控制 | 定量的软件过程管理 定量的产品质量管理 |
优化级 | 软件过程的量化反馈和新的思想和技术促进过程的不断改进 | 缺陷预防、过程变更、 技术变更管理 |
15、CMM/CMMI在质量保证中的四个目标,质量保证实现的具体实施方法
目标:(1)软件质量保证活动是有计划的‘
(2)软件产品和活动与适用的标准、规程和需求的符合性要得到客观验证 (3)相关的小组和个人要被告知软件质量保证的活动和结果
(4)高级管理者处理在软件项目内部不能解决的不符合问题
具体实施方法:(1)定义项目类型和软件周期
(2)建立SQA计划,确定项目审计内容
(3)生成SQA报告
(4)审计SQA报告 (5)独立汇报
第六章
16、为什么需要软件评审
(1)提高项目的生产率,早期发现错误,减少返工时间,减少测试时间
(2)改善软件的质量
(3)在评审过程中,使开发团队的其他人员更熟悉产品和开发过程
(4)通过评审,标志着软件开发一个阶段的完成
(5)生产出更加容易维护的软件,增加对所开发软件的理解
17、评审的方法:特别检查、轮查、走查、团队评审、检视
18、评审的内容:管理评审、技术评审、文档评审、过程评审
19、文档评审的内容和检查列表、
内容:需求评审、设计评审、代码评审、质量验证评审
检查列表:正确性、完整性、一致性、有效性、易测性、模块化、清晰性、可行性、可靠性、可追溯性
20、评审会议流程
(1)准备评审会议,提前发送通知让成员对会议内容有所准备,确保会议召开
(2)召开评审会议,流程为评审预备、评审开始、评审决议、评审结束
(3)跟踪和分析评审结果,验证作者是否恰当的解决了会议上列出的问题,修改的过程中有没有注入新的缺陷,测量评审的效果
第七章
21、全面质量管理和ISO 9000的异同
相同之处
(1)两者的管理理论和统计理论一致,即产品质量形成于产品全过程,质量体系贯穿于质量形成的全过程
(2)实现方法相同,都是PDCA质量环运行模式
(3)两者都要求对质量实施系统化的管理,都强调一把手对质量的管理
(4)两者的最终目的一致,都是为了提高产品质量,满足顾客的需求,都强调任何一个过程都是可以不断改进和改善的
不同之处
(1)两者的期间目标不一致:全面质量管理的目标是改变现状,其作业只限一次。ISO9000的目标是维持标准现状,目的是尽量减少实际结果与标准值的偏差。
(2)二者的工作中心不同。全面质量管理以人为中心,ISO9000以标准为中心。
(3)两者执行标准和检查方式不同。实施全面质量管理的企业所制定的标准是企业结合滋生特点制定的自我约束的管理体制,其检查方主要是企业内部人员,检查方法是考核和评估。ISO9000系列标准是国际公认的质量管理体系标准,它是世界各国共同遵守的准则。
22、质量屋结构图
23、6σ是寻求同时增加顾客满意和企业经济增长的经营战略途径,一种全新的管
理企业。核心是追求零缺陷生产,防范产品责任风险、降低成本、提高生产率和市场占有率、提高顾客满意度和忠诚度
24、6σ管理的优点
(1)提升企业管理的能力:降低管理流程浪费,简化管理流程,降低材料成本
(2)节约企业运营的成本
(3)增加顾客价值
(4)改进服务水平
(5)形成积极向上的企业文化
25.DMAIC模式的5步循坏改进法
(1)定义:明确问题、目标和流程
(2)评估:找到导致问题产生的关键原因,明确问题的核心所在
(3)分析:对原因进行进一步分析,确认他们之间是否存在因果关系
(4)改进:挑选最理想的改进方案付诸实施
(5)控制:根据控制标准,及时解决各种问题,使改进过程不偏离预定的轨道
第九章
26、软件测试的原则
(1)在整个软件开发过程中尽早地和不断地进行软件测试
(2)在开始测试时,不应默认程序中不存在错误
(3)设计测试用例,要给出测试的预期结果
(4)测试工作应避免由系统开发人员或开发机构本身来测试
(5)对合理和不合理的输入都要进行测试
(6)重点测试错误群集的程序区段
(7)除检查系统是否完备外,还要检查程序功能是否有多余
(8)用穷举测试是不可能的
(9)长期完整保留测试用例和测试文件,直至该软件产品被废弃为止
27、软件测试过程:单元测试-集成测试-系统测试-验收测试-回归测试贯穿整个测试过程
第十二章
28、软件缺陷是存在于软件之中的那些不希望或不可接受的偏差
29、软件缺陷的产生原因:程序编写错误、未按照规定编写代码、软件越来越复杂、开发人员的态度、沟通问题、需求变更过于频繁、进度压力、管理失误
30、软件缺陷特征:缺陷的发生都是有原因的、缺陷的重现性、缺陷的积累性放大性、缺陷的修复可能引进新的缺陷
31、软件缺陷属性:缺陷标识、缺陷类型、缺陷严重程度、缺陷优先级、缺陷状态、缺陷起源、缺陷来源、缺陷根源
32、报告软件缺陷的基本原则:软件缺陷的尽快报告、有效的描述软件缺陷
第十三章
33、集成测试与单元测试和系统测试的区别
(1)范围不同
单元测试主要关注模块的内部
集成测试主要关注穿越接口的数据、信息是否正确,是否会丢失
集成测试仅针对软件系统展开测试
系统测试包括软件系统以及与软件系统交互的所有硬件和软件平台
(2)依据不同
单元测试针对详细设计做测试,依据是详细设计说明书
集成测试针对概要设计做测试,依据是概要设计说明书
系统测试针对需求做测试,依据是需求规格说明书及行业标准
34、几种集成测试实施方案的比较
(1)非增量式集成测试:先分散测试,然后集中起来再一次完成集成测试。
缺点:如果模块的接口处存在错误,会在集成测试时一下子暴露出来;
难以判断出错的原因和位置,改正错误时容易引入新的错误。
(2)自顶向下的优点:逐步求精,一开始便能让测试者看到系统的框架。
缺点:被调用的模拟子模块可能不能反映真实情况,导致测试行不充分。
(3)自底向上的优点:即使数据流没有完全形成,测试数据也很容易生成。
缺点:只有模块全部被装进去,才能看到整个系统的框架。
(4)三明治集成测试:自底向上和自顶向下相结合,有助于尽早发现缺陷和提高工作效率。
(5)核心系统先行集成测试:能保证一些重要功能和服务的实现,对于快速软件开发很有效果。但要求系统明确区分核心部件和外围软件部件。
(6)高频集成测试:特点是集成次数频繁,必须借助自动化工具来实现。
35、集成测试的过程分为三个阶段
(1)计划阶段:完成集成测试计划,制订集成测试策略
(2)计划实现阶段:建立继承测试环境,完成测试计划和开发
(3)执行评估阶段:执行集成测试用例,记录和评估测试结果
第十四章
36、系统测试主要方法:性能测试、强度测试、安全性测试、兼容性测试、恢复测试、用户图形界面测试、安装测试、可靠性测试、配置测试、可用性测试、文档资料测试、网站测试
37、性能测试就是对软件的运行性能指标进行测试,判断系统集成之后在实际的使用环境下能否稳定可靠的运行。
性能测试中主要考虑时间性能和空间性能两方面
目标:判断被测系统是否满足预期的性能需求;判断系统的性能表现
第十五章
38、测试文档的撰写
(1)测试计划:分为作为产品的测试计划和作为工具的测试计划
测试计划包括:概要、目标和标准、测试的领域、测试方法描述、
测试进度表、测试资源、配置范围、测试工具
(2)测试规范:包括背景信息、测试特性、功能考虑、测试考虑
(3)测试案例和测试报告
(4)软件缺陷报告:包括软件缺陷名称、待测软件版本、优先级与严重性、
详细测试步骤、缺陷造成的后果、预计结果、其他信息
39、一个好的文档具有以下三点:提高可用性、提高可靠性、降低支持费用
40、调试方法:蛮力法、回溯法、原因排除法
如果有写的不对或者不全面的地方 可通过主页的联系方式进行指正,谢谢