__是一种关注变量定义赋值点(语句)和引用或使用这些值的点(语句)的结构性测试,主要用作路径测试的真实性检查
发现错误能力最弱的是_
白盒测试适合 填空 1 测试、 填空 2 测试
试卷
疑问
- 什么是软件过程,包含哪些部分
- 什么是缺陷群集现象
- 什么是增量测试
杂
- 项目的进度管理 是一个动态的过程,需要不断调度、协调,保证项目的均衡发展
- SQA计划的内容
- 六西格玛原则
- SCI
- 错误推测法:列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例
- 测试部门与开发部门的关系最好是:测试组织与开发组织为不同公司
- 代码评审员一般由测试员担任(错误)
- 劣质成本包括: 预防成本、鉴定成本、外部故障成本、内部故障成本。低效率过程成本、企业信誉损失成本、顾客损失成本、机会损失成本。
- 质量方针应体现公司的:
质量方针包括: 产品设计质量、同供应厂商关系、质量活动的要求、售后服务、制造质量、经济效益和质量检验的要求、关于质量管理教育培训等
需求分析要确定软件产品缩能达到的目标;
- 模块设计准则: 高内聚,松耦合,单功能,低扇出, 降低接口复杂程度
模块设计准则包括确认模块内的 数据流 和 控制流的定义是否正确
软件质量是一个投资问题,不是成本问题(对、?)
-
第三章 软件质量体系
软件的6个品质要素包括: 正确性、 可靠性 、 易用性 、 效率 、 可维护性 、可移植性 。
- McCall模型产品修订纬度的质量因素有 可维护性、 灵活性、 可测试性。
- 采用定量软件工程,制定软件产品质量的度量准则,可以提高软件开发过程 管理的可视性,降低 劣质成本 ,提高软件产品的 质量 。
- IDEAL的阶段:初始化 - 诊断 - 建立 - 行动 - 学习
- 六西格马模型:界定 - 测量 - 分析 - 改进 - 控制
软件质量工程包括软件质量 方针 、软件质量 控制 、软件质量 保证 和软件质量 管理 四大方面
什么是质量管理体系
质量管理体系是在质量方面指挥和控制组织的管理体系。组织为了实现所确定的质量方针和质量目标,经过质量策划将管理职责、资源管理、产品实现、测量、分析和改进等相互关联或相互作用的过程有机的组成一个整体,构成质量管理体系。
简单评价ISO模型、McCall模型和Boehm模型3种软件质量模型。
存在差别:软件质量特性、影响因素或质量指标的定义不完全一致;总体上要表达的思想非常接近;
目的相同:构造软件质量因素-准则-度量,3者综合的软件质量结构模型;
ISO模型第一层(质量特性)和第二层(准则)的关系非常清楚,不像McCall模型和Boehm模型那样存在交叉关系。
简述什么是软件缺陷
从产品内部看,软件缺陷是软件产品开发或维护过程中所存在的错误、毛病等各种问题;
从外部看,软件缺陷是系统所需要实现的某种功能的失效或违背。
测量的基本原则
测量应该基于该应用领域正确的理论之上,并在测量的定义中确定测度的目标;
每一个技术测量的定义应该具有一致性和客观性、无二义性;
测量在经验和直觉上也应该有说服力;
测量的方法力求简单、可计算性;
测量应该被剪裁以最适应特定的产品和过程,而且任何时候应尽可能使得收集和分析自动化;
应该用正确的统计技术来建立内部产品属性和外部待测量特征的关系;
测量结果应该是可靠的,不会因为一些技术问题导致测量结果很大的偏离;
测量应该建立反馈机制。
第四章 软件度量
度量 是对软件产品进行范围广泛的测度,它给出一个系统、构件或过程的某个给定属性的度的定量测量。
- 软件质量度量按其研究对像可分为3类: 项目 质量度量、 产品 质量度量、 过程 质量度量。
- 假设在程序控制流图中,有14 条边,10个节点,则控制流程图的环路复杂性V(G)等于 6
复杂度 = 边数 - 节点数 + 2 - 修复软件缺陷费用最高的是 发布 阶段。
- 软件可移植性是用来衡量软件 质量 的重要尺度之一
- 软件设计需要注意哪些问题: 减少耦合、代码重用、功能分解等
第五章 软件度量标准
- CMM将整个软件改进过程分为 初始级 、可重复级 、 已定义级 、 已管理级 、 优化级 等5个成熟度等级。
- CMMI将软件组织的软件能力成熟度描述为 五级
- CMMI中的受管理级包含的七个过程域中, 供方协定管理 旨在对以正式协定的形式从项目之外的供方采办的产品和服务实施管理。
- 根据CMMI规范,每一个软件企业均具有 等级一 成熟度
- SEI CMM评估标准, ISO 9001和ISO 9000-3标准是典型的项目过程标准(错误)
- CMM的意义不仅仅是对软件开发的过程进程控制,还是一种高效的管理方法,有助于企业最大程度的 降低成本, 提高质量 和 用户满意度 。
- 软件产品度量包括软件 规模大小 、 产品复杂度 、 设计特征 、 性能 以及 质量水平
- cmm 模型将软件过程的成熟度分为 5 个等级,在 已管理级 使用定量分析来不断地改进和管理软件过程。
- 软件能力成熟度 是指一个特定过程被明确地定义、管理、测量、控制并且是有效的程度。
- 各个成熟度级别 代表了什么程度
第六章 软件评审
- 同行评审的主要目标在于检测错误、核对与标准的偏离。(正确)
- *软件评审作为质量控制的一个重要手段,已经被业界广泛使用。评审分为内部评审和外部评审。关于内部评审的叙述,正确的包括。(1、2、3)
①对软件的每个开发阶段都要进行内部评审
②评审人员由软件开发组、质量管理和配置管理人员组成,可邀请用户参与
③评审人数根据实际情况确定,比如根据软件的规模等级和安全性等级等指标而定
④内部评审由用户单位主持,由信息系统建设单位组织,应成立评审委员会 - 管理评审由 最高管理者 发起
- 代码评审是检查源代码是否达到模块设计的要求。(错误)
(代码评审也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。不只是模块设计) - 技术评审即是一种技术手段,也是一种质量管理手段。(正确)
- 在软件设计中,设计复审是和软件设计本身一样重要的环节,其主要的目的和作用是为了能够 避免后期付出高代价
- 在整个机构中使用 基础设施防护 与 改进部件 的主要目标是在机构积累的SQA经验基础上 消除或至少降低出错率。(正确)
- 软件测试计划评审会需要哪些人员参加(项目经理、SQA负责人、配置负责人、测试组)
评审的方法包括 临时审查、轮查、走查、小组审查、审查
同行评审、内部和外部评审
设计复审
简述为什么需要评审?
从成本上来衡量:缺陷发现得越晚纠正费用越高,而软件评审的重要目的就是通过软件评审尽早的产品中的缺陷,减少大量的后期返工。
从技术上来衡量:前一阶段的错误自然会导致后一阶段的工作结果中有相应的错误,而且错误会逐渐累积,越来越多。
从效率上来衡量: 开发工程师:减少修订缺陷的时间,提高编程效率;减少测试和调试时间 项目负责人:缩短开发周期;减少维护费用;项目风险和质量问题得到很好控制 测试工程师:可以将更多精力放到测试用例的设计上,提高测试效率 维护人员:维护工作减少;产品的可维护性增强。
请指出走查、审查这两种同行评审方法的不同?
走查和审查的区别是其正式性的等级。其中,审查是两者之中更为正式。
走查的发现限于被评审文档的意见,而审查的发现还同改进开发方法自身的工作相结合。
所以和走查相比,审查对一般的SQA做出了更大贡献。
第七章 SQA 组织
- 所有SQA活动和项目里程碑的完成或项目里程碑的检验是同时发生的(错误)
- 软件质量系统之间各不相同,说明机构SQA系统构建存在固有灵活性。 (正确)
- 在软件产品制定生产计划阶段,不必进行重大的SQA活动。(错误)
简述三种SQA的组织结构以及各自的优缺点。
独立的SQA部门:在整个企业的组织结构中设立一个独立的职能和行政部门—SQA部门,该部门和其他职能部门平级。 优点:保护SQA工程师的独立性和客观性;有利于资源的共享。 缺点:SQA对流程的跟踪和控制难于深入,往往流于形式,难于发现流程中存在的关键问题;由于和项目组的相互独立,SQA工程师发现的问题不能得到及时有效的解决。
独立的SQA工程师:在这种组织结构中,SQA工程师属于项目成员,向项目经理汇报。 优点:SQA工程师能够深入项目,较容易发现实质性问题;对于SQA工程师发现的问题,能够得到较快短的解决。 缺点:项目之间相互独立, SQA工程师之间的沟通和交流有所缺乏,不利于经验的共享和SQA整体的培养和发展;由于SQA工程师隶属于项目组,独立性和客观性有所欠缺。
独立的SQA小组:该组织结构是前面两种组织结构的综合结果。 特点:SQA组虽然不算一个行政部门,但具有相对的独立性。同时,SQA工程师有隶属于不同的项目组,在工作上向项目经理汇报。该结构综合了上面两种结构的优点,既便于QA融入项目组,又便于部门之间经验的分享,还利于QA能力的提高。
简述软件开发人员和质量保证人员的区别。
软件开发人员负责技术工作,质量保证人员负责质量保证的计划、监督、记录、分析及报告工作。
软件开发人员通过采用可靠的技术方法和措施,进行正式的技术评审,执行计划周密的软件测试来保证软件产品的质量。软件质量保证人员则辅助软件开发组得到高质量的最终产品。
简述质量保证人员的主要工作内容。
为项目制定SQA计划。该计划在制定项目计划时制定,由相关部门审定。它规定了软件开发小组和质量保证小组需要执行的质量保证活动。
参与开发该软件项目的软件过程描述。
评审各项软件工程活动,核实其是否符合已定义的软件过程。
审计指定的软件工作产品,核实其是否符合已定义的软件过程中的相应部分。
确保软件工作及工作产品中的偏差已被记录在案,并根据预定规程进行处理。
记录所有不符合部分,并向上级管理部门报告。跟踪不符合的部分直到问题得到解决。
协调变更的控制与管理,并帮助收集和分析软件度量的信息。
第八章 调高软件设计质量
- 将软件需求转化为数据结构和软件的系统结构,并定义子系统和它们之间的通信或接口是 概要设计 的任务
- 软件体系结构设计的基本任务:
设计软件系统结构
设计数据结构和数据库
编写概要设计文档
概要设计文档评审 - 详细设计 通过对结构表示进行细化得到软件软件详细的数据结构和 算法,包括对所有的类都详尽地进行描述,给编写代码的程序员一个清晰的 规范说明 。
- 软件设计的基本原则是设计越简单越好(正确)
软件设计的指导思想是降低模块内聚性,提高模块耦合度。(错误)(高内聚低耦合)
下列耦合度从低到高排列正确的是
非直接 《 数据 《 特征 《 控制 《 外部 《 公共环境 《 内容软件设计的时候技术远比用户需求重要的多(错误)
- 常作验证,早作验证是软件设计的原则之一(正确)
- 开-闭原则的闭指的是 (对于原有代码的修改是封闭的,即不应该修改原有的代码)
- 里氏代换原则中说,任何基类可以出现的地方,子类不一定可以出现(错误)(下可以代上)
- 在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分。新的对象通过向这些对象的委派达到复用已有功能的目的。这是 合成/聚合复用原则
- 框架模型主要以一些特殊的问题为目标建立只针对和适应该问题的结构(正确)
- 体系结构的模型包括: 结构、功能、动态、过程
- 中间件的多层分布式的体系结构将客户和资源分开,降低了服务器的负载(正确)
- 一个设计模式的基本要素包括: 问题、效果、解决方案、模式名称
- UML语言先建模再编写代码,从一开始就保证系统结构合理 (正确)
- ①使测试工作顺利进行
- ②使项目参与人员沟通更舒畅
- ③使测试工作更加系统化
- ④软件过程规范化的要求(错误)
- ⑤控制软件质量(错误)
- 为了使软件测试更加高效,应遵循的原则包括。
①所有的软件测试都应追溯到用户需求、充分注意缺陷群集现象
②尽早地和不断地进行软件测试、回归测试
③为了证明程序的正确性,尽可能多的开发测试用例 (错误)
④应由不同的测试人员对测试所发现的缺陷进行确认
⑤增量测试,由小到大 - 简单对比白盒测试与黑盒测试 ``` 白盒测试已知产品的内部工作过程,可以对程序每一行语句、每一个条件或分支进行测试。 白盒测试适合单元测试、集成测试;白盒测试不适合系统测试
黑盒测试不考虑程序内部结构和内部特性,而是从用户观点出发,针对程序接口和用户界面进行测试。 黑盒测试适合功能测试、易用性测试,验收测试、确认测试;黑盒测试不适合单元测试、集成测试
5. 什么是软件测试?
软件测试是为了发现错误而执行程序的过程。 软件测试是根据软件开发各阶段的规格说明和程序的内部结构而精心设计一批测试用例(即输入数据及其预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。
6. 单元测试、集成测试、系统测试的侧重点是什么?
单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试, 测试重点是系统的模块,包括子程序的正确性验证等。
集成测试,也叫组装测试或联合测试。在单元测试的基础上,将所有模块按照设计要求,组装成为子系统或系统,进行集成测试。 测试重点是模块间的衔接以及参数的传递等。
系统测试是将经过测试的子系统装配成一个完整系统来测试。它是检验系统是否确实能提供系统方案说明书中指定功能的有效方法。 测试重点是整个系统的运行以及与其他软件的兼容性。
7. 什么是桩模块,什么是驱动模块?
桩模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试模块工作过程中所调用的模块。 桩模块由被测模块调用,它们一般只进行很少的数据处理,以便检验被测模块与其下级模块的接口。
驱动模块是在进行单元测试时所设置的一种辅助测试模块,它用来模拟被测试模块的上一级模块,相当于被测模块的主程序。 驱动模块在单元测试中接收数据,把相关的数据传送给被测试的模块,启动被测模块,并给出相应的结果。
<br />
<a name="k4U6T"></a>
### 第十一章 白盒测试
1. 白盒测试通过对程序内部结构的分析、检测来寻找问题
1. 测试用例设计
if ((A>1) AND (B==0))S1;<br />if ((A==2) OR (X>1))S2;<br />请写出(1)判定覆盖的测试用例(2)条件组合覆盖的测试用例
(1)判定覆盖参考答案 A=2, B=0, X=3; A=1, B=1, X=1 (2)条件组合覆盖参考答案 A=2, B=0, X=3; A=1, B=1, X=1; A=2, B=1, X=1 A=1, B=0, X=2
<br />
<a name="uzzkM"></a>
### 第十二章 黑盒测试
1. 黑盒测试法是根据产品的 **功能** 来设计测试用例的。
1. 测试用例设计
测试用例设计(提交截止时间 5月3日24:00,之后开始互评,互评截止时间 5月7日24:00)有函数f(x,y),其中x∈[100,200],y∈[5,15]。请写出该函数采用一般边界值分析法计(自己百度)的测试用例(提示:共9个测试用例)。
(100,Y),(200,Y),(101,Y),(199,Y),(X,5),(X,15),(X,6),(X,14),(X,Y)共9组 其中(101<X<199),(6<Y<14)
<br />
<a name="E4LBf"></a>
### 第十三章 集成<br /><br />
1. 简述驱动程序以及如何构建测试驱动程序
测试驱动程序是一个运行测试用例并收集运行结果的程序。 测试驱动程序的设计应该相对简单。 测试驱动程序必须是严谨的、结构清晰、简单,易于维护。 对所测试的类说明变化具有很强的适应能力。 理想情况下,在创建新的测试驱动程序时,应该能够复用已存在的驱动程序的代码
<a name="BIWhQ"></a>
### 第十四章 系统
1. 简述负载测试,容量测试和强度测试。
负载测试:在一定的工作负荷下,系统的负荷及响应时间。
强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。
容量测试:是通过测试预先分析出反映软件系统应用特征的某项指标的极限值,系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。
<a name="wEvcN"></a>
### 第十五章 验收
1. 什么是回归测试?回归测试的目的是什么
回归测试是指在修改了源代码后,用原有的测试用例进行重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
回归测试的目的是所做的修改达到了预定的目的,如错误得到了改正,新功能得到了实现,能够适应新的运行环境等,不影响软件原有功能的正确性。 ```