软件质量管理期末复习
ISO/IEC 25010中定义的软件产品质量模型包括下列的八个质量特性(掌握)
功能性:特定条件下提供满足规定和功能需求的程度
性能效率:一定条件使用的资源消耗率
兼容性:系统可以和其他产品交换信息
易用性:系统实现特定目标的有效和满意程度
可靠性:系统在指定环境下且在指定时间内执行功能的程度
安全性:产品或系统保护信息的程度
可维护性:表示修改系统可以使得改进或者适应环境的有效性
可移植性:系统可以从一个软件、硬件或者操作系统转移到另一个系统的有效程度和效率。
软件错误、缺陷和失效(掌握)
错误:发生错误的原因有很多,例如时间压力,缺乏经验或技能不足的项目参与者,新的技术不成熟,对系统内和系统间接口的误解
缺陷:计算机软件或程序中存在的某种破坏正常运行能力的问题,错误或隐藏的功能缺陷。缺陷的存在会导致软件产品在某种程度上不能满足用户需求。
失效:如果执行了存在缺陷的代码,可能导致程序失效。
软件缺陷的主要类型(掌握)
软件未实现产品说明书要求的功能;即该有的功能没有
软件出现产品说明书指明不该出现的错误;
软件实现了产品说明书未指明的功能;即出现不该有的功能
软件未实现产品说明书未明确提及但应实现的目标;即该有的隐含功能没有。
软件难以理解,不好用,运行速度慢,或软件测试人员,最终认为软件不好。
测试和调试(掌握)
测试:
目的:证明程序存在缺陷
条件与结果是否已知: 条件和预期结果已知,结果未知
有无计划:有计划,设计测试用例
执行主体:测试人员
调试:
目的:定位并解决程序缺陷
条件与结果是否已知: 内部条件未知,结果未知
有无计划:无计划,不受时间约束
执行有无规程:执行往往靠灵感
执行主体:开发人员执行
动态测试和静态测试(掌握)
根据测试时是否运行被测体,可分为动态测试和静态测试。
动态测试(Dynamic testing):通过运行被测体,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例,执行程序,分析程序输出结果
静态测试:检查项为代码风格和规则审核,以及文档的检查
测试阶段及级别:组件测试、集成测试、系统测试及验收测试(掌握)
根据测试阶段和级别,分为组件测试,集成测试,系统测试及验收测试。
组件测试(unit testing):对软件中最小的可测组件进行检查和验证。桩模块(stub):模拟被测模块所调用的模块。驱动模块(driver):模拟被测模块上级模块
集成测试(intergration testing):组件测试的下一阶段,是指将通过测试的组件模块组装成系统或子系统,再进行测试,重点测试不同模块的接口部分。
系统测试(system testing):将整个软件系统看作一个整体进行测试,包括对功能,性能以及软件所运行的软硬件环境进行测试。
验收测试(acceptance testing):在系统测试的后期,以用户测试为主,或有测试人员共同参与的测试。
α测试:由用户,测试人员,开发人员等共同参与的内部测试
β测试:指的是内测后的公测,即完全交给最终用户测试。
第二章 软件质量标准
ISO/IEC/IEEE 12207 过程组(了解)
软件生命周期过程组:
合同过程组:
组织性使能过程组:
确保组织机构通过启动、支持和控制软件项目来获得并提供软件产品及服务的能力
提供项目所需的基础设施,各类资源,质量管理及相关知识
确保组织目标和合同目标如期达成。
具体活动:
软件生存周期模型管理
基础设施管理
项目组合管理
人力资源管理
质量管理
知识管理
技术过程组:
提取需求,进而进行编码的实现,并为软件的验证、确认、审核、运维直至退役的全程给出过程定义及任务描述。
详细内容:商业目标分析,社会总需求分析,需求工程,架构设计,详细设计,系统分析,软件实现,系统集成,确认,迁移,软件运行,软件维护,软件退役。
技术管理过程组:
用于建立、执行、监视并不断修订项目计划,并开展组织范围的决策管理,风险管理,配置管理,软件度量,信息管理,质量保证等工作。
CMM(了解)
软件能力成熟度是指组织机构的软件过程被有效地定义、管理、测量和控制的程度。
CMM软件过程成熟度等级(了解)
为软件过程改进提供了一个框架,将整个软件改进过程分为5个成熟度等级,用来衡量组织机构的软件过程成熟度和评价其软件过程能力。
初始级:过程无序、混乱,项目是否成功依赖于负责人和团队。
可重复级:建立了项目管理的基本过程,已建立了软件过程规范,能重复类似的实践经验完成新项目
已定义级:定义了完整的软件过程,软件过程已文档化,标准化。实施了培训计划,管理活动、工程活动都是稳定的。
已管理级:对软件产品、软件过程进行度量;以度量为基础,对软件产品质量、软件过程质量进行预测;采取改正性,预防性措施,助推软件质量的提高。
优化级:不断地、持续地对软件过程进行改进。
CMMI(掌握)
CMMI(Capability Maturity Model Integration能力成熟度模型集成),是用于产品开发(或服务)的过程改进成熟度模型。
CMMI最佳实践覆盖了产品构思、交付、维护直至退役的整个软件生存周期。
表示法:
阶段式表示法:
成熟度及其过程域:
初始级:无
过程通常是混乱的,无序的,软件是否成功取决于团队成员的个人能力和个人英雄主义
已管理级:需求分析(REQM),项目规划(PP),项目监督与控制(PMC),度量分析(MA),配置管理(CM),过程与产品质量保证(PPQA)
在已管理级下,组织机构定义了软件过程,编制形成项目计划,分派资源开发项目计划采取的各项活动;
已定义级:需求开发(RD),技术解决方案(TS),产品集成(PI),验证(VER),确认(VAL),组织级过程焦点(OPF),组织级过程定义(OPD),组织培训(OT),产品基础(PI),风险管理(RSKM),决策分析与解决方案(DAR)
以组织的标准过程集为基础,通过过程裁剪得到特定项目,组织级单位要求的软件过程
清晰的描述软件过程,并且将软件过程定义以标案、规程、工具、方法等形式予以体现
尝试通过过程、产品、服务的度量,了解过程的实施情况,根据度量结果对过程进行管控。
量化管理级:量化项目管理(QPM),组织级过程性能(OPP)
组织机构已经建立了质量、过程的量化目标并将其作为项目管理的准则付诸实践
产品质量、软件过程的性能通过统计分析表示为统计图表,统计指标
以统计报告为基础,对过程性能进行分析和预测,使得软件过程的提前干预成为可能。
优化级:组织绩效管理(OPM),原因分析与解决方案(CAR)
对软件过程进行度量。
连续式表示法:
软件过程域分类法
按照主题内容:过程管理、项目管理、工程、支持四种过程域
按照实施难度:基础过程域、高级过程域
过程域的成熟度:
不完整级(未执行级):过程域的一个或多个特定目标未被满足
已执行级:满足过程域的所有特定目标
已定义级:
量化管理级
持续优化级
第三章 软件全面质量管理
全面质量管理(Total Quality Management,TQM)概念(理解)
就是一个组织以质量为中心,以全员参与为基础,目的在于通过让顾客满意和本组织所有成员及社会受益而达到长期成功的管理途径。
PDCA循环(理解)
P:plan,通过市场调查、用户访问、国家计划指示等,摸清用户对产品质量的要求,确定质量政策、质量目标和质量计划等
D:do,实施P阶段所规定的内容,如根据质量标准进行产品设计、试制、试验、其中包括计划执行前的人员培训。
C:check,在计划执行过程中或执行之后,检查执行情况,是否符合计划的预期结果。
A:act,在计划执行过程中或执行之后,检查执行情况,是否符合计划的预期结果。
四个阶段,根据管理是一个过程的理论,美国的戴明博士把它运用到质量管理中来,总结出“计划-执行-检查-行动”四个阶段的循环方式,简称PDCA循环,又称”戴明循环“
全面质量管理带来的益处:
缩短总运转周期;
降低质量所需的成本;
缩短库存周转时间;
提高生产率;
追求企业利益和成功;
使顾客完全满意;
最大限度获取利润。
六西格玛(6 Sigma,6σ)(理解)
六西格玛(6 Sigma,6σ)管理法是一种改善企业质量流程管理的技术,建立在测量、试验和统计学基础上的现代质量管理方法,以“零缺陷”的完美商业追求,带动质量成本的大幅度降低,最终实现财务成效的提升与企业竞争力的突破。六西格玛概念于1986年由摩托罗拉公司的工程师比尔·史密斯提出。
六西格玛(6σ)管理简介-人员组织结构(了解)
六西格玛管理委员会:管理各种职位
执行负责人:
黑带:
黑带大师:
绿带:
第四章 软件质量保证
软件质量保证活动(掌握)
软件评审
验证与确认
纠正与预防措施
软件质量保证过程(了解)
SQA过程的实施
产品质量保证
过程质量保证
第五章 软件测试基础
软件质量保证过程(了解)
对于不同人员来说:
从用户的角度:希望通过测试暴露软件中隐藏的错误和缺陷,以考虑是否可以接受该产品。
希望软件中不存在错误。以确立人们的信心
Grenford J.Myers提出:
测试是为了发现程序中的错误而执行程序的过程
好的测试方案是极可能发现迄今为止尚未发现错误的测试方案。
成功的测试是发现迄今为止尚未被发现错误的测试
测试并不是仅仅为了找出错误,而是通过分析愿意,以便及时改进。
注意:没有发现错误的测试也是有价值的,完整的测试是评定软件质量的一种方法
软件测试目标包括哪些内容(理解)
评估工作产品
验证是否实现了所有指定的需求
确认测试对象是否完成
建立对被测对象质量的信心
预防缺陷
发现失效和缺陷
降低软件质量不足带来的风险
7条软件测试的基本原则(掌握)
原则1:测试说明缺陷的存在,而不能说明缺陷不存在
原则2:穷尽测试是不可能的
原则3:测试的尽早介入可以节约时间和成本
原则4:缺陷的群集效应
原则5:杀虫剂悖论
原则6:测试活动依赖于测试内容和情境
原则7:不存在缺陷的谬论
测试过程的主要活动(掌握)
测试计划和监控
测试分析
测试设计
测试实施
测试执行
测试评估和报告
测试结束
第六章 软件生命周期中的测试
常见的软件测试模型(了解)
V模型、W模型、H模型、X模型、前置测试模型
V模型的特点、优缺点及适用(掌握)
是基于瀑布模型的,描述基本的开发过程和测试行为
以编码为黄金分割线,将整个过程分为开发和测试,并且开发和测试之间是串行的关系。
优点:清楚的标识了开发和测试的各个阶段,每个阶段分工明确,以便整体项目的把控。
缺点:没有在项目初期就引入测试,忽视了测试过程对需求分析等活动的验证
W模型的特点、优缺点及适用(掌握)
W模型是由两个V模型组成的,一个是开发阶段,一个测试阶段。
开发和测试是并行的关系
优点:开发和测试是并行的,让测试尽早介入开发环节,早发现问题早解决
缺点:在整个开发阶段,仍然是串行的,上一阶段没有完成,无法进行下一个阶段,不支持敏捷开发;对整个项目组成员要求更高
四个测试级别,每个测试级别指什么、重点测试什么?(掌握)
组件测试
是指对软件中最小可测试组件或基本组成组件进行测试
辅助测试模块:
驱动模块:用来模拟被测模块的上一级模块,用于接收数据,传给被测模块
桩模块:用来模拟被测模块所调用的模块
重点测:模块接口、局部数据结构、路径、错误处理、边界
集成测试
在组件测试的基础上,将通过组件测试的模块按照概要设计组装成子系统或者系统,进行集成测试,目的是确保个单元组成在一起能够正常运行。
组件集成测试:侧重于集成组件之间的交互和接口
系统集成测试:侧重于系统、软件包和微服务之间的交互和接口
重点测:各个模块连接起来数据是否会丢失;一个模块的功能是否对另一个模块产生影响;各个子功能连接起来是否能达到父功能要求;全局数据结构是否有问题;
系统测试
侧重于整个系统或产品的行为和功能。通常会考虑系统可开展的端到端任务和开展这些任务时所展现的非功能行为。
重点测:功能测试、用户界面测试、性能测试、兼容性测试、安全性测试、配置测试、回归测试。
验收测试
验收测试是在软件开发结束后,在用户使用软件之前,的最后一次质量测试。要回答开发软件产品是否符合所需要的功能需求。
性能测试包括哪些?(掌握)
常规性能测试
压力测试
负载测试
可靠性测试
大数据量测试
压力测试(掌握),负载测试(掌握),对比
压力测试:是指持续不断地给被测系统增加压力,知道被测系统被压垮
负载测试是让系统在能忍受地极限范围内持续运行,来测试系统的稳定性。
对比:负载测试侧重于测试的时间;压力测试侧重于施加压力的大小
自动化测试(掌握),满足的条件(掌握)
是把以人为驱动的测试行为转化为机器执行的一种过程。
条件:1.需求变动不频繁、2.项目周期足够长、3.自动化测试脚本可重复使用
白盒测试(掌握),黑盒测试(掌握),对比和应用
黑盒测试:
边界值分析法、等价类划分法、因果图法、决策表法
白盒测试:
静态分析方法和动态分析方法
比较:
黑:
测试规划:功能的测试
优点:能确保从用户的角度出发进行测试
缺点:无法测试程序内部特定部位
白:
测试规划:结构的测试
优点:能对程序内部特定部位进行覆盖测试
缺点:无法检查程序的外部特性
应用:
黑:对复杂性和重要性较低的系统进行测试
白:对重点系统架构优化时测试
第7章 软件静态测试技术
静态测试(理解)
是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助测试工具进行。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。
静态测试具有发现缺陷早、降低返工成本、覆盖重点和发现缺陷的概率高等优点。同时,静态测试的缺点则是耗时长、不能测试依赖和技术能力要求高。
静态测试技术(理解)
静态测试技术包括评审和静态分析技术,同时,可运用适当的静态测试工具。
–评审可应用于任何软件工作产品,参与者通过阅读设计文档、报告理解产品并找出缺陷。
–静态分析技术可有效地应用于具有规范结构(如代码或模型)的任何软件工作产品。
正式评审过程(了解)
一个典型的正式评审过程由计划、评审启动会、独立评审、事件交流和评审、修正和报告、跟踪等主要阶段构成。
评审角色和职责(了解)
典型的正式评审主要有下面几种角色:
1.作者
2.管理者
3.评审会主持人
4.评审组长
5.评审员
6.记录员
控制流图4个元素(掌握)
过程块(结点):
决策点:
汇聚点:
域:
控制流分析步骤(掌握)
复杂度:
边-结点+2
判定节点+1
区域数
第8章 软件测试设计技术
等价类划分(掌握)
边界值分析(掌握)
决策表(掌握)
规则1 规则2 规则3 … 规则n 条件桩1 条件桩2 条件项 … 条件桩n 条件项 动作桩1 动作桩2 动作项 … 动作桩n 动作项
条件桩:位于表的左上角
动作桩:表的左下角
条件项:表的右上角部分
动作项:表的右下角部分
n个条件,2的n次方种规则
基于状态的测试,基于用例的测试,基于用户故事(敏捷开发)的测试。思想,优缺点及应用(理解)
基于状态的测试:
定义测试强度和测试准则:
每个状态至少到达过一次;每个状态至少执行过一次。
每个状态及与此状态相关函数至少执行一遍。
基于用例的测试:
用例可以作为指导书。
基于用户故事的测试:
三个要素:角色,功能,价值
黑盒测试技术的比较与选择(掌握)
基于经验的测试技术,三种(掌握)
探索性测试
错误推测
基于检查表的测试
白盒测试技术,有哪些(掌握)
语句覆盖、判定覆盖、条件覆盖、条件组合覆盖、路径测试、基本路径测试
语句覆盖、判断覆盖、条件覆盖,应用(掌握)
基本路径测试,应用(掌握)
第9章 软件测试管理
测试组织开展测试工作的人员角色,职责(理解)
测试总监:负责组织级测试管理工作
测试经理:专注于特定软件项目的测试工作,协调资源做好测试工作。
测试员:执行软件测试,根据测试结果开发可交付的测试制品
软件用户:使用软件的人,开展验收测试。
TMMi,五个级别(掌握)
初始级:测试是混乱的,被认为是调试的一部分
已管理级:展开功能测试,无非功能测试,建立测试策略
过程域:测试方针与政策、测试计划、测试监督与控制、测试设计和执行、测试环境。
已定义级:在编码完成之后,包含功能测试和非功能测试。
过程域:测试组织、测试培训、测试生命周期集成、非功能测试、同行评审。
已测量级:建立了可量化的测试过程,并付诸于实施。
过程域:测试测量、产品质量评价、高级评审
优化级:测试的持续改进。
过程域:缺陷预防、质量控制、测试过程优化