软件质量保证和测试 复习资料Word文件下载.docx
《软件质量保证和测试 复习资料Word文件下载.docx》由会员分享,可在线阅读,更多相关《软件质量保证和测试 复习资料Word文件下载.docx(14页珍藏版)》请在冰豆网上搜索。
第2章软件质量工程体系
软件质量控制的定义:
软件质量控制是一组由开发组织使用的程序和方法,使用它可在规定的资金投入和时间限制的条件下,提供满足客户质量要求的软件产品并持续不断地改善开发过程和开发组织本身,以提高将来生产高质量软件产品的能力。
目标问题度量法:
书P31页主要看看思想。
风险管理法:
P32页图
PDCA
计划Plan:
确定参数要求
实施Do:
根据要求展开活动
检查Check:
通过评审、度量、测试,确认满足要求
改进Action:
纠正参数要求,在开发
软件质量保证控制模型参数:
产品、过程、资源。
SQA(软件质量保证)是CMM(软件能力成熟度)2级一个重要关键过程区域,它是贯穿于整个软件过程的第三方审查活动,在CMM过程中从当重要角色。
简要描述几种常见的质量控制模型(见上):
控制方法:
风险避免:
通过变更计划消除风险的触发条件,如采用成熟技术、增加资源减少软件范围等。
风险弱化:
降低风险发生的概率,如简化流程、更多测试、开发原型系统等。
风险承担:
制定应急方案,随机应变。
风险转移:
将风险发生的结果连同应对权利转移给有应对能力的第三方。
第3章软件质量度量和配置管理
Measure:
度量(名词):
是根据一定规则赋予软件过程或产品属性的数值或类别
软件度量是对软件开发项目、过程及其产品进行数据定义、收集以及分析的持续性定量化过程。
软件度量在软件工程中的作用有三:
1、通过软件度量增加理解。
2、通过软件度量管理软件项目,主要是计划和估算、跟踪和确认;
3、通过软件度量指导软件过程改善,主要是理解,评估和包装。
影响软件质量的因素:
首先是人的因素,其次是过程的因素最后是技术因素。
简述几种常见的软件质量模型?
软件质量保证模型:
McCall模型,Boehm模型,FURPS模型ISO1926
简述软件过程度量的目标对象方法和结果?
软件过程度量的目标:
软件过程度量的目标是为了对软件过程的行为进行目标管理,并在度量的基础上对软件过程进行控制,评价和改善软件过程度量最终为项目管理和软件过程管理服务。
软件过程度量就其对象而言,主要包括三个:
工作产品、软件项目和过程。
软件过程度量的方法:
对软件过程度量的方法是过程性方法,软件过程行为是事件行为,对过程的度量也具有过程性,从制定度量目标到收集数据再到数据分析表示了典型的度量阶段。
软件度量的结果通常是软件产品的复杂度模型和可靠性模型等。
简述影响软件质量的因素?
首先是人的因素,即M.软件开发是智力劳动,软件是人的脑力劳动,进行创造性思维的结果。
其次是过程因素,即P。
“过程”一词有很多的定义,ISO9000将过程定义为“一种将输入转化为输出的相互关联或相互作用的活动”。
软件过程是人们用来生产软件产品一系列的工具、方法和实践的集合。
最后是技术因素,即T,近年来软件技术虽然取得了不少进展,提出了许多新的开发方法,比如充分利用现成软件复用技术,自动生成技术,也研制了一些有效的软件开发工具或开发环境,但在软件项目中采用的比率仍然很低。
第4章软件可靠性度量和测试
软件可靠性的定义:
(1)在规定的条件下,在规定时间内,软件不引起系统失效的概率,该效率是系统输入和系统使用的函数,也是软件中存在错误的函数;
系统输入将确定是否遇到已存在的错误(如果错误存在的话)
(2)在规定的时间周期内,在所述条件下程序执行所要求功能的能力。
影响软件可靠性的因素:
需求分析定义错误,设计错误,编码错误,测试错误,文档错误。
软件可靠性模型是指为预计或估算软件的可靠性所建立的可靠性框图和数学模型。
Musa和Okumoto根据软件可靠性的5种特征,对模型进行了下述分类:
时间域类别型式种类族
简要描述提高软件可靠性的方法和技术?
软件重用使用开发管理工具如Intersolv公司的PVCS软件开发管理工具加强测试
容错设计尽可能不让差错和缺陷潜入软件,这类常用的技术有以下几种:
算法模型化,模拟模型化、可靠性模型、软件危险分析与故障树分析
第5章软件质量标准
软件质量标准:
国际标准、国家标准、行业标准、企业规范、项目规范。
CMM关键域等级:
初始级、可重复级、已定义级、已管理级、优化级。
*软件保证实现的具体实施方法如下:
1、定义项目类型和生命周期,2、建立SOA计划,确定项目审计内容,3、生成SOA报告。
4、审计SOA报告5、建立汇报。
第6章软件评审
为什么需要软件评审?
评审是一些用于开发过程早期检查和纠正缺陷的有效方法,它们可以用来检查未形成执行代码的文档的缺陷。
总体来说,自开发过程中评审可以让人们获得以下收益:
(1)提高项目的生产率,这是由于早期发现了错误,因而减少了返工时间,还可能减少了测试时间。
(2)改善软件的质量。
(3)在评审的过程中,使开发团队的其他成员更熟悉产品和开发过程。
(4)通过评审,标志着软件开发的一个阶段的完成。
(5)生产更容易维护的软件。
评审的内容:
管理评审技术评审文档评审过程评审
评审的方法:
特别检查轮查走查团队评审检视
评审的技术
缺陷检查表规则表评审工具的使用从不同角度理解产品场景分析技术
第7章软件全面质量管理
为什么要进行全面软件质量管理?
缩短总运转周期降低质量所需成本缩短库存周转时间提高生产率追求企业利益和成功
使顾客完全满意最大限度获取利润
质量管理蕴含着如下含义:
强烈关注顾客精确度量坚持不断的改进向员工授权改进组织中每项工作的质量
P(Plan)计划—>
D(Do)实施—>
C(Check)检查—>
A(Action)处理138页图
*全面管理与ISO9000:
(谈谈软件质量全面管理的思想体系)
两者的相同之处:
首先,两者的管理理论和统计理论基础是一致的,它们都认为产品质量形成与产品全过程,都要求质量体系贯穿于质量形成的全过程。
在实现方法上,两者使用了PDCA质量运行模式。
其次,两者都要求对质量实施系统化的管理,都强调一把手对质量的管理。
最后,两者的最终目的是一致的,都是为了提高软件产品质量,满足顾客的需要,都强调任何一个过程都是可以不断改进和完善的。
两者的不同之处:
首先,两者的期间目标不一致。
全面质量管理的目标是改变现状。
其作业只限于一次,目标实现后,管理活动也就结束了,下一次计划管理活动虽然是在上一次计划管理活动的结果上进行的,但绝不重复与上次相同的作业。
相反ISO9000的目标是维持标准现状,他的目标值为定值,它的管理活动是重复相同的方法和作业,使实际的工作结果与标准的偏差量尽量减少,其次,两者的工作中心不同,全面质量管理是以人为中心,ISO9000是以标准为中心。
再次,两者执行标准及检查方式不同。
实施全面质量的企业所制定的标准是企业结合其自身特点的自我约束的管理体制,其检查方主要是企业内部人员,检查方法是考核和评价。
6σ管理的优点:
提升企业的管理能力节约企业运营成本增加顾客价值改进服务水平形成积极向上的企业文化
第8章高质量编程
内存分配方式:
从静态存储区域分配在栈上创建从堆上分配,也称动态内存分配
常见的错误情况:
(1)内纯分配未成功却使用了它
(2)内存分配虽然成功,但是尚未初始化就引用它(3)
内存分配成功并且已经初始化,但操作越过了内存的便捷(4)忘记了释放内存,造成内存泄露(5)释放了内存却继续使用它
第9章软件测试过程
软件测试时需要以下三类信息:
软件配置测试配置测试工具
综合测试分为4个步骤:
单元测试集成测试系统测试验收测试
另外,在所有的测试过程中,始终贯穿着回归测试
辅助测试模块分为以下两种:
驱动模块桩模块
测试方法:
第13章课后题请比较非增量式集成、自顶向下、自底向上的集成策略?
(1)非增量测试集成测试方法
(2)增量式集成测试方法
两种测试方法的比较:
自顶向下:
优点:
1.如果程序错误趋向于发生在程序的顶端时,有利于查处错误。
2.可以较早出现程序的轮廓。
3.加进输入/输出模块后,较方便描述测试用例缺点:
1.桩模块较难设计。
2.模块介入使结果较难观察
自底向上:
1.如果程序错误趋向于发生在程序的低端时,有利于查出错误。
2.容易产生测试条件和观察测试结果。
3.容易编写驱动模块。
缺点:
1.在加入最后一个模块之前,程序不能作为一个整体存在。
2,必必须给出驱动程序
常用的选择回归测试的方式如下:
再测试全部用例基于风险的选择基于操作剖面选择测试在测试修改部分
软件测试贯穿于整个软件开发生命周期。
简述软件测试自动化的意义
对新版本进行回归测试。
执行更多更频繁的测试。
执行一些手工测试困难或不可能做的测试。
更好的利用资源。
测试具有一致性和可重复性。
测试的复用性。
增加软件的信任度。
可以更快的将软件推向市场。
第12章基于缺陷模式的软件测试
软件缺陷属性:
缺陷标识缺陷类型缺陷严重程度缺陷优先级缺陷状态缺陷起源缺陷来源缺陷根源
CMM1级(初始级)CMM2(可重复级)CMM3级(已定义级)CMM4级(已管理级)
CMM5级(持续优化级)
缺陷管理目标:
(1)及时了解并跟踪每个被发现的缺陷。
(2)确保每个被发现的缺陷都能够被处理
(3)收集缺陷数据并根据缺陷趋势曲线来识别测试过程是否结束
(4)收集缺陷数据并在其上进行数据分析,作为组织的过程财富。
一个简单的软件缺陷生命周期(P288)图
实践中的软件缺陷生命周期(P289)
缺陷分析指标:
缺陷发现率缺陷潜伏期缺陷密度缺陷清除率
第13章集成测试
集成测试与单元测试和系统测试的区别:
集成测试与单元测试关注的范围有很大的不同三者的依据也不同
三明治集成测试(P301)
三明治集成测试。
三明治集成测试是将自顶向下测试与自底向上测试两种模式有机结合起来,采用并行的自顶向下、自底向上集成方式,形成改进的三明治方法。
采取持续集成的策略,软件开发中各个模块不是同时完成,根据进度将完成的模块尽可能早地进行集成,有助于尽早发现缺陷,避免集成阶段大量缺陷涌现。
自底向上集成时,先完成的模块将是后期模块的被调用程序,而自顶向下集成时,先期完成的模块将是后期模块的驱动程序,使后期模块的单元测试和集成测试出现了部分交叉,节省了测试代码的编写,提高工作效率。
核心系统先行集成测试(P302)
核心系统先行集成测试法的思想是先对核心软件部件进行集成测试,在测试通过的基础上再按各外围软件部件的重要程