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. 评审技术的应用

临时评审

基于检查表的评审

场景和演练的评审

基于视角


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

目录
打赏
0
1
1
0
2
分享
相关文章
数据并非都是正态分布:三种常见的统计分布及其应用
这篇文章除了介绍线性模型在减肥app预测中的不切实际性,还探讨了不同统计分布在体重管理和数据分析中的应用。文章提到了正态分布和泊松分布,前者常用于描述围绕平均值对称分布的连续数据,如体重;后者适合计数数据,如体重变化次数。正态分布以其钟形曲线闻名,泊松分布则描述独立事件的数量。文章还简要介绍了卡方分布在检验分类变量关系时的作用。最后,文章指出了在线性回归中假设数据正态分布的原因,包括便于统计推断和最小化估计误差。
1043 5
表格存储(Tablestore)支持 Serverless 低成本向量检索服务
在当今 GPT 技术盛行的时代,大模型推动了向量检索技术的迅猛发展。向量检索相较于传统的基于关键词的检索方法,能够更精准地捕捉数据之间的语义关系,极大提升了信息检索的效果。特别是在自然语言处理、计算机视觉等领域,向量能够将不同模态的数据在同一空间中进行表达和检索,推动了智能推荐、内容检索、RAG 和知识库等应用的广泛普及。阿里云表格存储(Tablestore)的多元索引提供了向量检索能力。表格存储是一款 Serverless 的分布式结构化数据存储服务,诞生于 2009 年阿里云成立时,主要特点是分布式、Serverless 开箱即用、按量付费、水平扩展和查询功能丰富和性能优秀等。
695 17
Vue和React有什么区别
【8月更文挑战第28天】Vue和React有什么区别
925 0
|
11月前
|
优化Maven镜像配置:使用阿里云加速依赖下载
更新Maven镜像配置至关重要,尤其使用阿里云仓库时。在`settings.xml`中加入特定镜像配置可显著提升依赖下载速度。示例配置指定了阿里云镜像ID、替代表态仓库、安全的URL、默认布局及启用版本管理。需定位至用户目录下的`.m2/`文件夹编辑`settings.xml`,添加镜像信息后保存测试。若下载仍慢,考虑网络状况或备选镜像。多镜像设置时需注意避免冲突。
1564 3
【EMNLP2024】阿里云人工智能平台 PAI 多篇论文入选 EMNLP2024
阿里云人工智能平台 PAI 的多篇论文在 EMNLP2024 上入选。论文成果是阿里云与华南理工大学金连文教授团队、复旦大学王鹏教授团队共同研发。EMNLP 是人工智能自然语言处理领域的顶级国际会议,聚焦于自然语言处理技术在各个应用场景的学术研究,尤其重视自然语言处理的实证研究。该会议曾推动了预训练语言模型、文本挖掘、对话系统、机器翻译等自然语言处理领域的核心创新,在学术和工业界都有巨大的影响力。此次入选标志着阿里云人工智能平台 PAI 在自然语言处理和多模态算法能力方面研究获得了学术界认可。
分布式事务之最终一致性实现方案
分布式事务之最终一致性实现方案
218 0
【一文搞懂PGSQL】6. PostgreSQL + pgpool-II 实现读写分离
本文介绍了如何使用 PostgreSQL 和 pgpool-II 实现读写分离。pgpool-II 支持连接池、负载均衡等功能,适用于多种模式。文中详细描述了安装、配置及启动过程,并提供了示例命令,帮助读者快速搭建并验证读写分离环境。通过配置 `pgpool.conf` 文件指定监听地址、端口及节点信息等参数,确保系统的高效运行与故障转移。
jupyter notebook主题(界面优化)及代码自动补全
jupyter notebook主题(界面优化)及代码自动补全
838 0
使用Python调用API接口获取拼多多商品数据:一篇详细说明文章
拼多多是中国著名的电商平台之一,提供了丰富的商品信息和购物服务。为了更好地利用拼多多的数据资源,我们可以使用Python编程语言调用拼多多的API接口,获取商品数据并进行处理和分析。本文将详细介绍如何使用Python完成这一任务,包括API的基本概念、接口调用流程、代码实现和数据处理等方面的内容。
时序预测 | MATLAB实现基于GRU门控循环单元的时间序列预测-递归预测未来(多指标评价)
时序预测 | MATLAB实现基于GRU门控循环单元的时间序列预测-递归预测未来(多指标评价)
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问