软件测试学习心得-3

2023-11-03

一.静态技术与测试过程

  1. 静态测试不以测试数据的执行而是对测试对象的分析过程
  2. 静态测试存在于软件生命周期的各级测试。如,需求分析、概要设计、 详细设计及组件测试、集成测试和系统测试的阶段或层级。
  3. 静态测试的方法,主要有人工(手工)评审与==静态分析(人工或机器自 动检测)==两大类。通常可分别采用一种方法或混合使用两种方法。
  4. 静态测试中的评审(或审查)的基本思想和目标是对软件缺陷或错误的一种预防措施。因而软件技术文档的审查是静态测试的主要任务之一。
  5. 静态测试的技术方法构成和说明。
    静态技术和测试过程

静态测试和动态测试的区别

与动态测试相比,静态测试更容易发现如下问题:与标准之间的偏差、需求的遗漏和错误、设计的缺陷、软件可维护性差和错误的接口说明等,而这些文档往往在动态测试过程中作为重要的测试依据。如果这些作为动态测试依据的文档的质量无法保障,则动态测试本身的质量也就值得怀疑,更无法有效保障被测对象的质量

二.评审

评审类型是多样化的,采取什么样的评审类型由评审的目标决定,评审目标可以是发现缺陷、增加理解、培训测试人员和团队其他成员或对讨论和决定达成共识等。

正式评审过程

正式的评审过程由6个阶段组成:计划阶段、预备会阶段(Kick Off Meeting )、个人准备阶段、评审会议阶段、返工阶段和跟踪结果阶段

  1. 计划阶段:为了有效开展评审活动,首先需要进行评审计划
  2. 预备会阶段:假如评审计划中无法明确一些事情和注意事项,有时候在评审计划之后,还需要召开评审预备会。
  3. 个人准备阶段:评审员明确了评审目的和各自的任务之后,接下来进入个人准备阶段
  4. 评审会议阶段:加入满足了评审的入口准则,就可以进入评审会议阶段
  5. 返工阶段:返工阶段的主要活动是修改发现的缺陷,通常由作者负责返工工作
  6. 跟踪结果阶段:跟踪结果阶段的主要活动包括检查缺陷是否已经修改、收集度量和检查出口准则

角色与职责

角色 经理或管理者 主持人 作者 评审员 记录员
职责 经理或管理者决定文档或者代码是否需要进行评审,若需要,则在项目计划中保留和分配足够的时间和资源。同时,在评审结束之后判断是否达到评审的目标。经理选择评审对象并确保基础文档和必需的资源可用,以及确定主持人和评审员的人选 主持人负责文档或文档集的评审活动,其主要的职责包括制定评审计划、召开评审会议和跟踪评审结果,以及负责和评审有关的管理工作,确保评审有序进行从而达到期望的目标。主持人的另一个重要职责是收集评审数据和发布评审报告,用于软件开发和测试过程以及评审过程的改进。主持人还需要进行评审员不同观点之间的协调 作者是提交评审的文档的创建者。如果多个人参与文档的创建,该文档的主要负责人可以指定为作者,由他负责该角色相关的职责和任务 评审员一般是指具有专门技木或业务背景的人员,也称为检验员(Checker)、审查员(Inspector),他们在必要的准备后,标识和描述被评审对象存在的问题(缺陷)。他们是涉及评审对象内容相关技术方面的专家 记录员记录所有在评审会议中提出的不足 问题(包括采取的措施、决定和建议等),以及在会议过程中标识的末解决的问题。记录员必须能够以简短和准确的方式记录评审中发现的问题,抓住评审过程中讨论的中心思想,清晰地表达问题

评审类型

类型 非正式评审 走查 技术评审 审查
特点 1.没有正式的过程 2.可以由程序员的同行们或技术负责人对设计和代码进行评审3.评审结果可以文档化4.评审者不同,评审作用可能会不同4.其主要目的是以较低的成本获得收益 1由作者召集开会2.以情景、演示的形式开展走查活动,并且以同行参加的方式进行3.开放式模式4.评审会议之前的准备、评审报告 发现的问题和记录员(不是作者本人)都不是必需的5.在实际情况中可以是非常正式的,也可能是非正式的6.其主要目的是学习、增加理解、发现缺陷 1.对发现的缺陷需要进行文档化。2.需要同行和技术专家的参与3.没有管理者参与的同行评审4.理想情况下由专门接受过培训的主持人(不是作者本人)来主持5.会议之前需要进行准备6.可以使用检查表、评市报告、发现的问题列表等7.在实际情况中可以是非常正式的,也可能是非正式的8.其主要目的是讨论、评估、发现缺陷,解决技术问题,检查与规格及标准的符合程度 1.由专门接受过培训的主持人(不是作者本人)来主持2.通常是同行检查3.定义工不同的角色4.引人了度量5.根据人口准则、出口准则和检查表定义正式的评审过程6.会议之前需要进行准备7.需要审查报告和发现问题列表8.有正式的跟踪过程9.可以进行过程改进10.其主要目的是发现缺陷

三.静态分析和工具支持

所谓静态测试(static testing)就是不实际运行被测软件,而只是静态地检查程序代码、界面或文档中可能存在的错误的过程。
从概念中我们可以知道,其包括对代码测试界面测试文档测试三个方面:
对于代码测试,主要测试代码是否符合相应的标准和规范。
对于界面测试,主要测试软件的实际界面与需求中的说明是否相符
对于文档测试,主要测试用户手册和需求说明是否符合用户的实际需求

编译器分析工具

主要用途是通过编译器分析工具可以发现编程语言语法错误,并且以错误或警告的方式进行报告。很多的编译器也会产生其他的信息,并且执行其他的检查

规范标准一致性

主要用途是通过静态分析工具还可以检查测试对象是否与规范、标准相一致,例如是否遵循了编程规范和标准。

数据流分析

数据流分析主要是通过检查程序代码中的数据流来发现数据流异常。需要注意的是数据流分析通常发现的是数据流异常,不一定是缺陷。异常指的是由于不一致而可能导致的失效,也可能是代码的冗余。异常是一种风险,可能会触发系统的失效。

除此之外,数据流根据每个变量的使用情况定义了三种不同的变量状态:

  1. 己定义(D-Defined):变量已经赋值,表示此变量有确定的值
  2. 被引用(R-Referenced),读取或使用变量的值,表示此变量的值被使用了
  3. 未定义(U-Undefined):命名了变量,但还没有对变量赋值,或己经释放了变量(模块或函数结束时),此时的变量没有确定的值

控制流分析

假如将程序的结构以控制流图的方式表示,控制流图中的节点代表代码中的可执行语句。可以将没有分支的顺序系列语句表示为一个节点,因为这一系列语句在程序执行时其控制流并不会发生变化。假如执行这系列语句的第一句,系列内的其他语句也一定会被执行到。

圈复杂度

圈数可以用来测量程序代码结构的复杂度,所以也称作圈复杂度。
圈数计算的控制流图
对于程序或程序模块的控制流图 G,它的圈复杂度(圈数)可以通过下面的公式计算得到:

v(G) = e -n + 2

其中:
v(G)为控制流图G 的圈数,
e为控制流图中的边数;
n为控制流图的节点数。

图 3-1 表示了程序模块的控制流,它是可以被调用的函数。圈数的计算式如下。

v(G) = e -n + 2 = 17 - 13 + 2 = 6

其中e为控制流图的边数= 17,n为控制流图的节点数= 13,计算得到的圈数为6

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

软件测试学习心得-3 的相关文章

随机推荐

  • java高qps接口设计_高并发后端设计-限流篇

    系统在设计之初就会有一个预估容量 长时间超过系统能承受的TPS QPS阈值 系统可能会被压垮 最终导致整个服务不够用 为了避免这种情况 我们就需要对接口请求进行限流 限流的目的是通过对并发访问请求进行限速或者一个时间窗口内的的请求数量进行限
  • leetcode刷题:最大子序积

    1 题目 题解 实现上面的过程 class Solution public int maxProduct vector
  • 删除gitlab上的分支

    好久没有更新了 今天记录一下删除gitlab上的分支的操作 登录仓库后 依次点击 project gt home gt Readme gt repository gt branches 会看到所有master和所有分支 点击右侧删除即可 看
  • 剑指Offer(一):二维数组中查找最大值

    题目 这个题目说的是 给你一个二维数组 matrix 和一个目标值 target 你要在数组里找到这个目标值 然后返回它的行 列下标 如果找不到 则返回 1 1 这个数组的每一行都是从左向右递增 每一列都是从上到下递增 和 二维数组的二分搜
  • 首届《产业数字化金铲奖》榜单来袭

    出品 产业家 2021年 产业数字化是绝对的主题 在这个变幻莫测的一年里 越来越多的企业开始寻求数字化转型方向 它们在工业 农业 医疗 教育等等方向都在努力作出自己的数字化尝试 个体寻找数字进化之路 企业构建新的技术底层 产业定义互联网下半
  • 相机的坐标系转换(1)

    前言 常言道 工欲善其事 必先利其器 如欲明其理 必先定其义 后一句是我编的 不过 这句话还是有道理的 如果要想明白相机的坐标系之间的转换 那么必须明白相机有哪几个坐标系 并对它们下一个明确的定义 只有这样 我们接下来的工作才好开展 正文
  • Rose(双机热备)服务配置

    安装步骤省略 下面只讲配置 1 一般会设置两个job iis 及 sql 此次选择的是SqlServer 版本没有要求 大概流程是 两台服务器 都有不同的ip 内网或者外网 然后虚拟一个ip出来 比如 服务器A 192 168 100 1
  • Leetcode每日一题:面试题02.02.kth-node-from-end-of-list-lcci(返回倒数第k个节点)

    思路 典型得快慢指针问题 快指针与慢指针中间隔着k 2个节点 那么同时 快慢指针 当快指针指向链表结尾节点时 慢指针指向倒数第k个节点 struct ListNode int val ListNode next ListNode int x
  • Java:基于注解对类实例字段进行通用校验

    前言 后台服务处理前端的请求时 会有这样的一种需求 即校验请求中的参数是否符合校验规则 校验参数是否符合的一种方法是 罗列请求参数 基于校验规则一个一个的校验参数 如果存在不符合的 就返回字段值不符合规则的提示 通过就向下执行 这种方法是可
  • CSS线性渐变linear-gradient

    线性渐变是多种颜色沿着一条直线即渐变线过渡 发生渐变依靠渐变线和色标 其中渐变线来控制发生渐变的方向 色标包括颜色值和位置来控制渐变的色彩变化 创建一个线性渐变 需要指定两种颜色 还可以实现不同方向 指定为一个角度 的渐变效果 如果不指定方
  • 文件上传-.user.ini的妙用

    小伙伴们大家好 本期为大家带来的是 user ini在文件上传漏洞中的妙用 目录 user ini user ini的妙用原理 利用 user ini的环境 实战演示 1 先尝试直接上传webshell 2 看是否能够上传除php和png外
  • img标签和p标签是行内元素还是块级元素?以及p标签中可以放img标签吗?

    img标签 行内块元素 类似于 inline block 可以被p标签包裹 比如p是居中 图片也中了 p标签 块级元素 默认宽度占满一行 HTML p 是段落标签 除了可以添加文字内容外 完全可以添加其他html标签也包括IMG图片标签 其
  • 十大热门编程语言的介绍

    小编给大家分享一篇关于现阶段十大热门编程语言的文章 经过流行的搜索引擎 如谷歌 必应 雅虎 维基百科 亚马逊 YouTube和百度 用于计算评级 得出十大热门编程语言排行榜的榜单 根据百度百科以及网上查阅总结分析以上十大热门编程语言的介绍
  • 安全体系建立标准

    随着我国企业信息化的普及 信息化给我国企业带来积极影响的同时 也带来了信息安全方面的消极影响 一方面信息化在企业发展的过程中 对节约企业成本和达到有效管理起到了积极的推动作用 另一方面伴随着全球信息化和网络化进程的发展 与此相关的信息安全问
  • mysql中索引的null值问题

    在mysql中 对含有null值的索引列 以及is null is not null的查询条件是否会走索引这点 网上有很多说法 为此我自己单独做了个实验 首先创建两张表 一张表所有字段默认为null 另一张表所有字段默认为not null
  • QWidget(长文)

    一 描述 1 QWidget 是用户界面的原子 它从窗口系统接收鼠标 键盘和其他事件 并在屏幕上绘制自己的表示 每个小部件都是矩形的 它们按Z顺序排序 小部件由其父部件和它前面的小部件剪裁 2 未嵌入父窗口小部件的 QWidget 称为窗口
  • springboot发布dubbo服务注册到nacos

    目录 dubbo注册服务到nacos的pom依赖 使用dubbo发布rest服务报错 解决403 unknown user错误 如何把dubbo服务注册到nacos指定的命名空间 dubbo消费端 dubbo发布rest服务 启动报错 解决
  • 集合Set和List相互转换

    import java util public class Set3 public static void main String args Random rand new Random red 6 1 33 Set
  • 谷歌带来Cloud Spanner更新:查询自省、新可用区域和多区域配置

    在最近的一篇博文中 谷歌宣布了Cloud Spanner 一个全局分布式NewSQL数据库 的一些增强功能 谷歌基于用户要求进行了更新 带来了查询自省改进 新可用区域和新的多区域配置 谷歌Cloud Spanner是一种将关系数据库结构优势
  • 软件测试学习心得-3

    静态技术 一 静态技术与测试过程 静态测试和动态测试的区别 二 评审 正式评审过程 角色与职责 评审类型 三 静态分析和工具支持 编译器分析工具 规范标准一致性 数据流分析 控制流分析 圈复杂度 一 静态技术与测试过程 静态测试不以测试数据