3.1静态测试基础

2023-11-10

与需要运行被测软件的动态测试不同,静态测试依赖于对工作产品的手工检查(即评审)或对代码或其他工作产品的工具驱动的评估(即静态分析)。静态测试的两种类型都评估代码或被测的其他工作产品,而不是实际运行被测代码或工作产品。
静态分析对于安全关键的计算机系统(如航空、医疗或核软件)很重要,但静态分析在其他环境中也变得重要和普遍。例如:静态分析是安全测试的一个重要组成部分。静态分析也经常被纳入自动化构建和交付系统,例如在敏捷开发、持续交付和持续部署中。
3.1.1 静态测试可以检查的工作产品
几乎所有工作产品都可以使用静态测试(评审和/或静态分析)来检查,例如:
• 规格说明,包括业务需求、功能需求和安全需求
• 史诗、用户故事和验收准则
• 架构和设计规格说明
• 代码
• 测试件,包括测试计划、测试用例、测试规程和自动测试脚本
• 用户指南
• 网页
• 合同、项目计划、时间进度表和预算
• 可用于基于模型测试的模型,如活动图(见ISTQB-MBT基础级基于模型的测试人员扩展大纲和Kramer 2016)
评审可以应用于参与者能阅读和理解的任何工作产品。在有适当的工具支持的情况下,静态分析可以有效地应用于任何具有正式结构(通常是代码或模型)的工作产品,假如针对这些工作产品存在适当的静态分析工具。静态分析通过工具,甚至可以应用在评估用自然语言写的工作产品上,例如需求(例如拼写、语法和可读性检查)。
3.1.2 静态测试的收益
静态测试技术可以带来各种好处。软件开发生命周期早期应用静态测试,可以在动态测试之前及早发现缺陷(例如:在需求或设计规格说明评审、产品代办列表改进等方面)。早期发现缺陷通常比生命周期后期发现缺陷的修复的成本低得多,特别是与软件部署和实际使用后发现的缺陷相比。使用静态测试技术发现缺陷,然后迅速修复这些缺陷,对组织而言几乎总是比使用动态测试发现测试对象中的缺陷然后修复它们要便宜得多,尤其是在考虑与更新其他工作产品和执行确认和回归测试相关的额外成本时。
静态测试的其他好处包括:
• 在动态测试执行之前更有效地检测和修复缺陷
• 识别在动态测试中不易发现的缺陷
• 通过发现需求中的不一致、模糊不清、矛盾、遗漏、不准确和冗余,防止设计或编码中出现缺陷
• 提高开发生产率(例如:由于改进了设计,使代码更易于维护)
• 减少开发成本和时间
• 减少测试成本和时间
• 在整个软件生命周期内降低总的质量成本,因为在生命周期后期或交付运行后出现的失效较少
• 在参与评审过程中改善团队成员之间的沟通
3.1.3 静态测试和动态的区别
静态测试和动态测试具有共同目标(见1.1.1节),例如评估工作产品的质量和尽早发现缺陷。静态和动态测试通过发现不同类型的缺陷来相互补充。
两者的主要区别之一是静态测试直接发现工作产品中的缺陷,而不是识别软件运行时由缺陷造成的失效。缺陷可以在工作产品中存在很长时间而不会导致失效。缺陷所在的路径可能很少被执行或很难到达,因此构建和执行动态测试以发现缺陷是一件不容易的事情。静态测试可以以更少的工作量发现缺陷。
两者的另一个区别是静态测试可以用来改进工作产品的一致性和内部质量,而动态测试通常侧重于外部可见的行为。
与动态测试相比,通过静态测试更容易发现和修复的典型缺陷包括:
• 需求缺陷(例如:不一致、模糊不清、矛盾、遗漏、不准确和冗余)
• 设计缺陷(例如:算法或数据库结构效率低下、高耦合、低内聚)
• 编码缺陷(例如:未定义值的变量、已声明但从未使用的变量、无法到达的代码、重复的代码)
• 偏离标准(例如:不遵守编码标准)
• 不正确的接口规格说明(例如:呼叫系统使用的计量单位与被呼叫系统使用的计量单位不同)
• 安全漏洞(例如::易受缓冲溢出的影响)
• 测试依据可追溯性或覆盖率的不足或不准确(例如::针对验收准则缺少测试)
此外,大多数可维护性缺陷类型只能通过静态测试发现(例如:,不适当的模块化,组件的重用性差,代码在不引入新缺陷的情况下难以分析和修改)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

3.1静态测试基础 的相关文章

  • 【论文阅读】MPViT : Multi-Path Vision Transformer for Dense Prediction

    发表年份 2021 12 发表单位 Electronics and Telecommunications Research Institute ETRI South Korea 期刊 会议 CVPR 论文链接 https arxiv org
  • Servlet_01_介绍

    Servlet的作用是处理请求 服务器会把接收到的请求交给Servlet来处理 在Servlet中通常需要 1 接收请求数据 2 处理请求 3 完成响应 例如客户端发出登录请求 或者输出注册请求 这些请求都应该由Servlet来完成处理 S
  • ubuntu下学习c++(输出定义变量)

    2022 6 11 学习cout cin的使用方法以及变量的定义 include
  • 接口和类有啥区别:

    接口和类有啥区别 接口是一系列抽象方法的集合 接口中只有抽象方法 只有的意思就是 没有成员变量 除了静态常量 没有构造方法 因此不能被实例化 类只是一种抽象的数据类型 接口没有构造方法 一个类只能继承一个类 但是可以实现多个接口 接口中不能
  • 远处是风景,近处是人生

    常听到有人说 最近好累 想出去走走 换个地方透透气 如果去到大理 心情一定如花儿一般灿烂 如果去到内蒙 心情一定如草原一般辽阔 如果去到三亚 心情一定如大海一般坦荡 但实际上 改变你心情的从不是新的城市或者美丽的景色 是你愿意与生活和解的态
  • 网络常考题

    45 当数据接收者不能处理更多数据时 哪一层发出停止信息给发送者 A 网络层 B 传输层 C 会话层 D 表示层 B 49 在传输层采用了以下哪些方法来保证接收缓冲区不溢出 多选 A 数据分段 B 确认机制 C 流量控制 D 滑动窗口 E
  • Spring中@JsonFormat与@DateTimeFormat注解使用简介说明

    转自 Spring中 JsonFormat与 DateTimeFormat注解使用简介说明 下文笔者讲述Spring中JsonFormat和DateTimeFormat注解的简介说明 如下所示 JsonFormat和DateTimeForm
  • C语言编译执行的全过程

    编译 编译程序读取源程序 字符流 对之进行词法和语法的分析 将高级语言指令转换为功能等效的汇编代码 再由汇编程序转换为机器语言 并且按照操作系统对可执行文件格式的要求链接生成可执行程序 C源程序头文件 gt 预编译处理 cpp gt 编译程
  • 高光谱遥感数值建模技术及在植被、水体、土壤信息提取领域应用

    在高光谱影像中 结合纹理 表面粒度 风化程度 作物密度等辅助信息 能估计出多种地物及其上覆作物的状态参量 提高遥感高定量分析的精度和可靠性 如何通过构建遥感光谱反射信号与地表参数之间的关系模型来实现数值计算 是举办本次培训班的主要目的 针对
  • 校园网络系统服务器配置摘要,校园网网络应用服务器配置

    浅谈校园网网络应用服务器配置 摘要 以某校园网为例 在网络应用服务器设计这个环节中 我们分别用到了web服务器 ftp服务器 dns服务器 dhcp服务器 mail服务器 并且在一台已经安装了windows 2003 server的计算机上
  • 前端框架——React 学习总结,这篇7000字全解决

    React组件复用 React组件复用 把多个组件中部分功能相似或者相同的状态或者逻辑进行复用 复用 state和操作state的方法 复用的方式 render props模式 高阶组件 HOC render props模式 用childr
  • Mysql 时间转换 && 时间函数

    1 时间转换 涉及的函数 DATE FORMAT date format MySQL日期格式化函数 STR TO DATE str format MySQL字符串格式化为日期 UNIX TIMESTAMP MySQL其他数据转换为时间戳 F
  • Vue的antd多选下拉框增加全选操作

    因为antd的多选下拉框没有提供全选操作 我做了一个简易的全选操作 data return categoryList 存放获取到的分选数据 category 已选分类数据
  • QT信号槽的5种连接方式

    在面试中 这是一个经常被问到的问题点 也是刚刚上qt的工程师不会去注意的一个点 qt源代码定义的连接方式如下 1 Qt AutoConnection 一般信号槽不会写第五个参数 其实使用的默认值 使用这个值则连接类型会在信号发送时决定 如果
  • markdown编辑数学公式

    在输入数学公式的时候 需要在数学公式的前后加入 符号 将需要输入的公式加入到 中间 上下标 上标 下标 名称 数学表达式 markdown公式 上标 ab a b a b 下标 ab a b a b 分数 frac 第一个 写分子 第二个
  • React Native(RN)-组件生命周期

    生命周期简介 像 Android 开发一样 React Native RN 中的组件也有生命周期 Lifecycle 借用大神流程图 这张图很简洁直观地告诉我们 生命周期的整个流程以及阶段划分 第一阶段 getDefaultProps gt
  • 目标检测入门

    目录 R CNN 1 1提取候选区域 1 1 1合并规则 1 1 2多样化与后处理 1 2特征提取 1 2 1预处理 2 Fast RCNN 2 1RoI Pooling Layer Faster RCNN 结构 RPN anchor 目标
  • Junit中使用线程池不执行任务代码

    1 在test中使用线程池发送MQ 没有报错 没有执行线程池中的代码 2 查资料 junit框架只要主线程结束完成 单元测试就会关闭 导致线程池中的线程没有执行代码就被销毁关闭了 可以在主线程中sleep一段时间 或者用main方法
  • 稳定ORACLE的执行计划

    很多时候可能我们都希望CBO能够帮我们生成正确 高效的执行计划 但是很多时候事实并非如此 可能因为各种各样的原因 如 统计信息不正确或者CBO天生的缺陷等 都会导致生成的执行计划特别的低效 之前的一家公司有一台专门用于批量做数据校验清洗的数

随机推荐

  • 大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

    大学四年 看课本是不可能一直看课本的了 对于学习 特别是自学 善于搜索网上的一些资源来辅助 还是非常有必要的 下面我就把这几年私藏的各种资源 网站贡献出来给你们 主要有 电子书搜索 实用工具 在线视频学习网站 非视频学习网站 软件下载 面试
  • 'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

    vue时 报 vue cli service 不是内部或外部命令 也不是可运行的程序 或批处理文件 罪该万死 怎么能忘记 npm install 如果你下载的淘宝镜像 也可以cnpm install 转载于 https www cnblog
  • Java设计模式-状态模式

    1 概述 定义 对有状态的对象 把复杂的 判断逻辑 提取到不同的状态对象中 允许状态对象在其内部状态发生改变时改变其行为 例 通过按钮来控制一个电梯的状态 一个电梯有开门状态 关门状态 停止状态 运行状态 每一种状态改变 都有可能要根据其他
  • STM32F031串口(RS485)中断+DMA发送(预备知识)

    STM32F031串口 RS485 中断 DMA发送 前言 GPIO移植过程 与F1系列的一些区别 串口 DMA 前言 最近在搞STM32F031的项目 F0系列与常用的F1系列有一定区别 在开发过程中遇到一些问题 而且花了好长花间在搜寻解
  • js操作剪贴板讲解

    文章目录 复制 剪切 到剪贴板 Document execCommand Clipboard复制 Clipboard writeText Clipboard write copy cut事件 从剪贴板进行粘贴 document execCo
  • 【E2EL5】A Year in Computer Vision中关于图像增强系列部分

    http www themtank org a year in computer vision 部分中文翻译汇总 https blog csdn net chengyq116 article details 78660521 The M T
  • eclipse修改文字显示大小及html乱码修改编码格式

    1 修改字体大小 2 修改编码格式 html文件出现乱码时需要修改编码格式 备注 有时候修改后还会是乱码 重启eclipse即可
  • 2022年7月3日leetcode每日一题打卡——112.路径总和

    一 题目描述与要求 112 路径总和 力扣 LeetCode 题目描述 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 判断该树中是否存在 根节点到叶子节点 的路径 这条路径上所有节点值相加等于目标和 target
  • 基于YOLO-V5的结核杆菌目标检测系统【毕业设计,AI+医疗】

    项目背景 结核病 Tuberculosis TB 是由结核分枝杆菌 Mycobacterium tuberculosis 引起的一种慢性人畜共患病 它不受年龄 性别 种族 职业 地区的影响 人体许多器官 系统均可患结核病 其中以肺结核最为常
  • HBase Java 编程

    一 环境配置 1 引入Maven 库
  • JavaScript 中使用Ajax进行网络post请求和get请求

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 前言 使用Ajax进行网络请求 默认是异步请求 而且不需要刷新页面 就可以发送请求 获取服务端返回来的数据 一 Ajax的get请求 做
  • apache kafka配置中request.required.acks含义

    Kafka producer的ack有3中机制 初始化producer时的producerconfig可以通过配置request required acks不同的值来实现 0 这意味着生产者producer不等待来自broker同步完成的确
  • 算法--大数开方

    之前已找到比较好的大数乘法算法 现在我们来解决大数开方问题 如有大数n 求其开方x 则x与n必满足x x n 也就是说我们能遍历x找到n的开方 但是问题在于我们是不可能对大数遍历的 如果我们可以确定它的大致范围 仅仅测试几个不容易直接判断的
  • SpringBoot使用Rabbit多消费者削峰

    文章目录 场景 配置 生产者发送消息 消费者处理消息 场景 前端系统推送大批量数据进入我方系统进行处理 为了减轻我方系统的压力 并且充分发挥服务器的性能 提高处理效率 于是使用 Rabbit 做了限流处理 同时有多线程运行多个消费者处理任务
  • QGraphicsItem的缩放

    QGraphicsItem的缩放 QgarphicsItem是Qt视图体系中的项 QGraphicsItem本身是不支持鼠标拖动来缩放的 本文介绍如何通过更改鼠标事件来修改项的大小 本文所用Qt版本为Qt4 8 下文代码实现的功能为 按住s
  • LLVM+clang+VS Code 搭建 C++ 编译环境(windows)

    可参考LLVM clang VS Code 搭建 C 编译环境 windows
  • Bluetooth 蓝牙介绍(七):逻辑链路控制和适配协议规范(L2cap 协议)

    文章目录 前言 L2CAP 特性 前提 术语 常规操作 通道标识符 操作模式 数据包格式 CONNECTION ORIENTED CHANNELS IN BASIC L2CAP MODE CONNECTIONLESS DATA CHANNE
  • 【C++】返回值是类名和返回值是引用的区别

    返回非引用类型 函数的返回值用于初始化在调用函数时创建的临时对象 temporary object 如果返回类型不是引用 在调用函数的地方会将函数返回值复制给临时对象 在求解表达式的时候 如果需要一个地方存储其运算结果 编译器会创建一个没命
  • js中动态获取页面的script地址,并动态给他添加script标签和地址,解决页面白屏问题

    前言 业务逻辑 在vue中 遇到这样的情况 初始化加载太多js 导致页面白屏 为了解决这个情况 决定使用具体组件具体加载相应的cdn地址 为啥不用vue的按需加载呢 是因为我们项目对性能要求很高 但是按需加载后 引入的插件包 打包以后的大小
  • 3.1静态测试基础

    与需要运行被测软件的动态测试不同 静态测试依赖于对工作产品的手工检查 即评审 或对代码或其他工作产品的工具驱动的评估 即静态分析 静态测试的两种类型都评估代码或被测的其他工作产品 而不是实际运行被测代码或工作产品 静态分析对于安全关键的计算