ISTQB考点三

简介: 3. 静态测试3.1.静态测试基础与动态测试相比,静态测试依赖于软件工作产品的手动检查(即评审),或工具驱动的代码或其他软件工作产品的评估(即静态分析)。3.1.1. 由静态测试检查的软件工作产品代码模型,如可用于基于模型测试的活动图3.1.2. 静态测试的好处  静态测试技术提供了多种好处。当在软件开发生存周期的早期应用静态测试,就能够在开展动态测试之前尽早地检测缺陷(例如,在需求或设计规格说明评审,待办事项列表的细化工作等)。早期发现的缺陷通常比软件开发生存周期后期发现的缺陷经济得多,特别是与软件部署和使用后发现 的缺陷相比。使用静态测试技术来发现缺陷然后及时修复这些缺

3. 静态测试

3.1.静态测试基础

与动态测试相比,静态测试依赖于软件工作产品的手动检查(即评审),或工具驱动的代码或其

他软件工作产品的评估(即静态分析)。


3.1.1. 由静态测试检查的软件工作产品

  • 代码
  • 模型,如可用于基于模型测试的活动图

3.1.2. 静态测试的好处

静态测试技术提供了多种好处。当在软件开发生存周期的早期应用静态测试,就能够在开展动

态测试之前尽早地检测缺陷(例如,在需求或设计规格说明评审,待办事项列表的细化工作等)。早期发现的缺陷通常比软件开发生存周期后期发现的缺陷经济得多,特别是与软件部署和使用后发现 的缺陷相比。使用静态测试技术来发现缺陷然后及时修复这些缺陷几乎总是比使用动态测试在测试 对象中发现缺陷然后修复它们所花费的成本要低得多,特别是在考虑到更新其他软件工作产品以及 开展确认和回归测试的额外成本。

静态测试的其他好处可能包括:

在动态测试执行之前,更高效地检测和修复缺陷

识别动态测试不易发现的缺陷

 通过发现需求中的不一致、含糊不清、矛盾、遗漏、不准确和冗余来防止设计或编码缺陷

提高开发效率(例如,由于改进的设计、更易于维护的代码)

降低开发成本和时间

降低测试成本和时间

减少在软件开发生存周期后期或上线运营后失效,从而降低了软件在整个生存周期内的总

的质量成本

在参与评审过程中改善团队成员之间的沟通


3.1.3. 静态测试和动态测试的差异


静态测试和动态测试的一个主要区别在于静态测试直接发现软件工作产品中的缺陷,而动态测

试是在运行软件时识别由缺陷引起的失效。缺陷可以在软件工作产品中存在很长时间而不会导致失

效。缺陷所在的路径可能很少被执行或难以到达,因此设计并执行动态测试去发现这样的缺陷并不

容易。静态测试可能付出更少的工作量就能找到缺陷。

另一个区别是静态测试可用于提高软件工作产品的一致性和内部质量,而动态测试通常侧重于

外部可见行为。

与动态测试相比,通过静态测试可以更早期更经济的发现和修复一些典型的缺陷,包括:

需求缺陷(例如:不一致、含糊不清、矛盾、遗漏、不准确和冗余)

设计缺陷(例如:低效算法或数据库结构、高耦合、低内聚)

代码缺陷(例如:未定义值的变量、已声明但从未使用的变量、无法访问的代码、重复的

代码)

与标准的偏差(例如:未完全遵循编码规范)

错误的接口规格说明(例如:主叫系统使用的测量单位与被叫系统不同)

安全漏洞(例如:对缓冲区溢出的敏感性)

测试依据的可追溯性或覆盖率的差距或不准确性(例如:针对验收准则缺少测试)


此外、大多数类型的维护性缺陷只能通过静态测试才能被发现(例如:没有很好的模块化、组

件的可重用性较差、难以分析的代码以及很难保证修改代码而不引入新缺陷)。


3.2.评审过程

3.2.1. 工作产品的评审过程

计划


定义范围,包括评审目的、需评审的文档或部分文档以及需评估的质量特性

估算工作量和时间表

识别评审特性,例如评审类型以及相应的角色、活动和检查表

选择参与评审人员并分配角色

针对较正式的评审类型(例如:审查)制定入口和出口准则

核对入口准则是否满足(针对较正式的评审类型)


评审启动会


分发工作产品(以物理方式或通过电子方式)和其他材料,例如:事件日志表、检查表和

相关工作产品

向评审参与者解释评审的范围、目标、过程、角色和工作产品

回答评审参与者可能对评审提出的任何问题


独立评审(即个人准备)


评审全部或部分工作产品

标注可能的缺陷、建议和问题


事件交流和分析


交流已识别的潜在缺陷(例如:在评审会议中)

分析潜在缺陷,并为这些缺陷分派责任人和状态

评估和记录质量特性

根据出口准则评估评审发现,以确定评审结论(拒绝;需重大变更;接受,但可能需

要小修改)


修正和报告


当发现需要修改工作产品时而创建缺陷报告

修正在工作产品评审中发现的缺陷(通常由作者来进行)

与相关人员或团队交流缺陷(当工作产品中的发现关联到被评审的工作产品)

记录缺陷更新的状态(在正式评审中),可能包括对评审意见提交人的认同

收集度量数据(对较正式的评审类型)

核对出口准则是否满足(对较正式的评审类型)

接受满足出口准则的工作产品


3.2.2. 正式评审的角色和职责

作者:

创建被评审的工作产品

修复工作产品评审过程中发现的缺陷(如果需要的话)


经理(管理者):

负责制定评审计划

决定是否需要进行评审

分派人员、预算和时间

监督进行中的成本-效益

当产出不充分时,执行控制决策


促进者(通常称为主持人):

保证评审会议的有效进行(当召开时)

需要时在评审的不同观点之间进行协调

通常是评审成功与否的关键人物


评审组长:

全面负责评审

决定哪些人员参加评审,并组织何时何地进行评审


评审员:

可能是专题相关专家、项目工作人员、对工作产品感兴趣的利益相关方,和/或具有

特定技术或业务背景的人员

在评审中识别工作产品中的潜在缺陷

可能代表不同的视角(例如:测试员、开发人员、用户、操作员、业务分析师、易用

性专家等)



书记(或记录员):

在独立评审活动期间,收集发现的潜在缺陷

记录评审会议中的新发现的潜在缺陷、未解决的问题和决策(当评审会议召开时)


3.2.3. 评审类型

非正式评审(例如:伙伴检查、结对、结对评审)


主要目的:检测潜在缺陷

可能的附加目的:产生新的想法或解决方案,快速解决小问题

不基于正式的(文档化的)过程

可能不包含评审会议

可能由作者的同事(伙伴检查)或更多人参与评审

可能记录评审结果

有效性根据评审人员的不同而变化

使用检查表是可选的

敏捷开发中使用的非常普遍


走查

主要目的:发现缺陷、改进软件产品、考虑替代实施、评估与标准和规范的符合程度

可能的附加目的:交换关于技术或风格变化的想法、参与者的培训、达成共识

评审会议前的个人准备是可选的

评审会议通常由工作产品的作者主持

必须指定书记(记录员)

使用检查表是可选

可能采用场景、演练或模拟的形式

生成潜在的缺陷记录和评审报告

在实践中可能从相当非正式到非常正式


技术评审

主要目的:获得共识、发现潜在缺陷

可能的进一步目的:评估质量和建立对工作产品的信心、产生新想法、激励和使作者

能够改进未来的工作产品、考虑替代实施

评审员应该是作者的技术同行,以及同一学科或或其他学科的技术专家

需要在评审会议之前进行个人准备

评审会议是可选的,最好由经过培训的促进者(主持人)(通常不是作者)主持

必须指定记录员,最好不是作者

使用检查表是可选

生成潜在的缺陷记录和评审报告


审查

主要目的:检测潜在缺陷,评估质量并建立对软件工作产品的信心,通过学习和根本

原因分析防止未来出现类似缺陷

可能的进一步目的:激励和使作者能够改进未来的工作产品和软件开发过程、达成共

遵循已定义的过程,基于规则和检查表,正式地记录输出

使用明确定义的角色,如第 3.2.2 节中规定的强制性角色,也可能包括专门的朗读

者(在评审会议期间朗读工作产品的人经常会用自己的话来解释,即描述。)

需要在评审会议之前进行个人准备

评审参与者是作者的同行或与工作产品相关的其他学科专家

使用已规定的入口和出口准则

必须指定书记(记录员)

评审会议由经过培训的促进者(主持人)(不是作者)引导

作者不能担任评审组长、朗读者或书记(记录员)

通常生成潜在的缺陷记录和评审报告

收集度量并用于改进整个软件开发过程,包括审查过程


3.2.4. 评审技术的应用

临时评审

基于检查表的评审

场景和演练的评审

基于视角


若本文有帮助到阅读本文的同学,欢迎点赞、关注、收藏,互相学习交流。

相关文章
|
2月前
|
算法 程序员
2024年有哪些话一听就知道一个程序员是个水货?(1),2024年最新面试真题及答案
2024年有哪些话一听就知道一个程序员是个水货?(1),2024年最新面试真题及答案
2024年有哪些话一听就知道一个程序员是个水货?(1),2024年最新面试真题及答案
|
2月前
|
分布式计算 Java 编译器
【软件设计师】程序语言设计考点
【软件设计师】程序语言设计考点
|
2月前
|
C语言 C++
从C语言到C++⑧(第二章_类和对象_下篇_续)笔试选择题和OJ题
从C语言到C++⑧(第二章_类和对象_下篇_续)笔试选择题和OJ题
25 0
|
2月前
|
算法 编译器 C语言
C语言面试考点之二
C语言面试考点之二
27 0
|
2月前
|
存储 算法 编译器
面试 --- C考点
面试 --- C考点
43 0
|
2月前
|
数据挖掘 测试技术 应用服务中间件
软件测试主要考点梳理以及真题讲解(附答案)
软件测试主要考点梳理以及真题讲解(附答案)
71 1
|
8月前
|
自然语言处理 测试技术 uml
ISTQB考点四
4.测试技术 4.1.测试技术分类 4.1.1. 测试技术分类和特点 黑盒测试技术(也称为行为的或基于行为的技术)基于对适当测试依据的分析(例如:正式 需求文档、规格说明、用例、用户故事或业务流程)。这些技术适用于功能和非功能测试。黑盒测 试技术关注在测试对象的输入和输出,而不考虑其内部结构。 白盒测试技术(也称为结构的或基于结构的技术)基于对架构、详细设计、内部结构或测试 对象代码的分析。与黑盒测试技术不同,白盒测试技术关注在测试对象的结构和处理过程。 基于经验的测试技术利用开发人员、测试员和用户的产品经验来设计、实施和执行测试。这 类技术通常与黑盒和白盒测试技术相结合。 4.2 .
41 1
|
8月前
|
敏捷开发 安全 测试技术
ISTQB考点一
1. 软件测试基础 1.1.什么是测试 1.1.1. 典型的测试目标 通过评估工作产品以防止缺陷,例如需求、用户故事、设计和代码 建立对被测对象质量级别的信心 发现缺陷和失效,从而降低软件质量不足的风险 根据被测组件或系统的环境、测试级别和软件开发生存周期模型的不同,测试目标会有所变化。 不同包括:  在组件测试时,尽可能多的发现失效,以便尽早识别和修复潜在的缺陷可能是其一个目标。 而另一个目标可能是增加组件测试时的代码覆盖率。  在验收测试时,确认系统能够按照预期工作并且满足用户需求可能是其一个目标。而另一 个测试目标可能是为利益相关方提供关于在给定时间发布系统的风险信息。 1.
41 0
|
8月前
|
敏捷开发 测试技术 项目管理
ISTQB考点五
5. 测试管理 5.1 测试组织  5.1.1独立测试 测试中的独立程度包括以下几类(独立性从低到高): 没有独立的测试员;唯一可用的测试形式是开发人员测试他们自己的代码 开发团队或项目团队内的独立开发人员或测试员;这可能是开发人员测试他们同事 的产品  组织内的独立测试团队或小组,向项目管理或企业执行管理层报告 来自业务组织或用户团体的独立测试员,或具有特定测试类型的专业知识的测试员, 这些特定测试类型包括,例如易用性、安全性、性能、法规/合规性、或可移植性 组织外部的独立测试员,无论是工作现场(内包)或现场外(外包) 测试独立性的潜在好处包括: 独立的测试员与开发人员相比更可能会识别出不
53 0
|
8月前
|
安全 测试技术 持续交付
ISTQB考点二
2. 软件开发生存周期中的测试 2.1.软件开发生存周期模型 2.1.1. 软件开发和软件测试 无论选择哪种软件开发生存周期模型,测试活动都应在生存周期的早期阶段开始,以符合测试 的尽早介入原则。 常见的软件开发生存周期模型,本大纲分类如下:  顺序开发模型  迭代和增量开发模型 顺序开发模型将软件开发过程描述为线性的、顺序的活动流。它是指开发过程中的任何阶段都 应该在完成前一阶段的基础上进行。从理论上讲,阶段之间没有重叠,但在实践中,都会受益于来 自下一阶段的早期反馈。 在瀑布模型中,开发活动(例如需求分析、设计、编码、测试)是一个接一个完成的。在该模型 中,只有在完成所有其他开发
40 0