软件测试入门:静态测试

news2024/11/19 21:18:46

什么是静态测试
顾名思义,这里的静态是指程序的状态,即在不执行代码的情况下检查软件应用程序中的缺陷。进行静态测试是为了仅早在开发的早期阶段发现程序缺陷,因为这样可以更快速地识别缺陷并低成本解决缺陷,它还有助于查找动态测试过程找不到的缺陷。与静态测试对应的是动态测试(Dynamic Testing),它指在代码执行过程测试应用程序。

静态测试技术的两种类型
人工检查:指人工完成的代码的分析,也称为CodeRreview。
工具自动分析:自动化分析基本上是借助于工具完成的静态分析。
什么是测试评审?
静态测试中的评审是为了发现任何程序设计中的潜在缺陷而进行的活动。评审的另一个好处是,帮助所有团队成员都了解项目本身,有时想法的多样性可能会产生出色的建议。项目文件直接由项目相关人员检查,并找出大家对统一需求理解的差异性。

评审可以为四个部分:

非正式评审
演示
技术评审
审查
在评审过程中,参与者分别是:

主持人:执行入场检查,跟进返工,指导团队成员,安排会议。
作者:负责修复发现的缺陷并提高文档质量
抄写员:在评审过程中记录缺陷并参加评审会议
审稿人:检查材料是否有缺陷并检查
经理:决定执行评审,并确保达到评审过程的目标。
在静态测试中更容易发现的缺陷类型为:

违背(编码)标准
代码可维护性差
代码存在缺陷
需求缺失
接口规范不一致
通常,在静态测试中发现的缺陷是变量未声明、边界逻辑处理考虑不全面、语法错误、接口设计不一致等因素引起的。

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:822269834【暗号:csdn999】

为什么要进行静态测试?
由于以下原因:

早期更容易发现缺陷和修复
缩短开发时间
降低测试成本和时间
为了提高开发效率
降低测试阶段出现缺陷的概率
静态测试测试内容是什么
在“静态测试”中,对以下内容进行测试

单元测试用例
业务需求文档(BRD)
用例
系统/功能要求
原型
原型规格文件
数据库字段字典电子表格
测试数据
需求跟踪矩阵文件
用户手册/培训指南/文档
测试计划策略文档/测试用例
自动化/性能测试脚本
如何进行静态测试
要做静态测试,它可以通过以下方式完成:

进行检查过程以完全检查应用程序的设计
对要审核的每个文档使用清单,以确保所有审核均被完全覆盖
执行静态测试的各种活动是:

用例需求验证:它验证是否标识了所有最终用户操作以及与之关联的任何输入和输出。用例越详细和透彻,测试用例就越准确和全面。
功能需求验证:确保功能需求标识所有必要的元素。它还查看数据库功能,接口列表以及硬件,软件和网络要求。
架构评审:所有业务级别的流程,例如服务器位置,网络图,协议定义,负载平衡,数据库可访问性,测试设备等。
原型/屏幕模型验证:此阶段包括需求和用例的验证。
字段字典验证:UI中的每个字段都定义得足够好,可以创建字段级别的验证测试用例。字段用于检查最小/最大长度,列表值,错误消息等。
静态测试技术有哪些
非正式评审
演示
技术评审
审查
静态分析
数据流
控制流

静态测试的工具有哪些
静态测试的工具如下:

Checkstyle
Soot
SourceMeter
Sonar
静态测试的技巧
静态测试的一些技巧:

只专注于真正重要的事情
明确计划和跟踪审核活动。通常将软件演练和检查综合到同行的评论中
解决人员问题
持续改进流程和工具
通过消除测试执行中的主要延迟,可以减少测试成本和时间
概括
静态测试是为了尽早发现缺陷。
静态测试不能替代动态测试,两者都会发现不同类型的缺陷
评审是进行静态测试的有效技术
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1294435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CubeMx HAL STM32H750 1ms

关于STM32的定时器都通用 timer(单位US)(分频值*重装值) / 定时器所在总线的时钟频率(单位MHZ) 1000us 1 ms

Vue3拖拽功能【VueDraggablePlus】

一、介绍 由于 Sortablejs 的 vue3 组件一直没有更新,已经跟 vue3 严重脱节,所以诞生了这个项目,这个组件是基于 Sortablejs 的,所以如果你想了解更多关于 Sortablejs 的信息,可以查看Sortablejs 官网。VueDraggableP…

netty源码:(9)ChannelId

ChannelId代表了一个Channel的全局标识符。它提供了asShortText和asLongText两个方法来返回对应的字符串

毅速3D打印随形透气钢:透气与形状完美结合

随着科技的飞速发展,3D打印技术已经逐渐渗透到我们生活的各个角落。从简单的塑料玩具到复杂的汽车零部件,再到高精度的医疗器械,3D打印以其独特的优势正在改变着世界的生产方式。今天,我们一起了解一下毅速3D打印随形透气钢技术&a…

Java se之类和对象

目录 类的定义格式如何去自定义this的引用如何初始化对象构造方法的定义和使用 类的定义格式 class ClassName{ //属性(成员变量) //行为(成员方法) } 1>变量与方法 1.成员变量:普通成员变量 静态成员变量 2.成员方法:普通成员方法 静态成员方法 其中的静态变量与方法,在后…

AtCoder ABC周赛2023 11/4 (Sat) D题题解

目录 原题截图: 题目大意: 主要思路: 注意事项(很多人再这个地方掉坑): 代码: 原题截图: 题目大意: 给你两个数组(A和B)长度都为n,然你求出一…

外汇天眼:什么时段做外汇交易最好,有所谓的“最佳时间点”吗?

在外汇交易的时候,很多手动交易的投资者不知道到底什么时间段操作交易最适合自己。 我们在进行选择最佳交易时间的时候,一定要明白各时间段的全球各个市场的交易状况,这样你才能分配好自己的时间。 当然在通过技术分析与基本分析选择好币种后…

快速入门FastAPI中的Field参数

快速入门FastAPI中的Field参数 在构建RESTful API时,定义资源模型是至关重要的。FastAPI是一个用于构建API的现代Python web框架,它使用Pydantic库来处理数据验证和模型。在这个过程中,Field 参数起着关键的作用。 本教程将向您介绍如何在F…

Hive HWI 配置

前言 1、下载安装好hive后,发现hive有hwi界面功能,研究下是否可以运行,于是使用hive –service hwi命令启动hwi界面报错。 启动hwi功能 2、访问192.168.126.110:9999/hwi,发现访问错误 一、HWI介绍 HWI(Hive Web Int…

“构建智慧城市,共享美好生活“2024杭州国际智慧城市展览会

智慧城市作为当今社会发展的必然趋势,正在被越来越多的企业和观众所关注。为了进一步推动智慧城市的发展,2024杭州智慧城市展览会将于4月份在杭州国际博览中心盛大召开。目前,招商工作已近半程,大批国内外知名企业踊跃报名&#x…

如何评估和提高网页速度?

页面内容的加载速度称为页面的网站速度或加载速度。拥有快速的网站加载时间对于搜索引擎优化至关重要。页面加载时间受多个变量影响,包括虚拟主机和页面大小。桌面版和移动版网站之间也存在性能差距。了解页面速度如何影响搜索引擎优化,从何处获取衡量工…

基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析(一)——创建Glue

1 通过Athena查询s3中的数据 此实验使用s3作为数据源 ETL: E extract 输入 T transform 转换 L load 输出 大纲 1 通过Athena查询s3中的数据1.1 架构图1.2 创建Glue数据库1.3 创建爬网程序1.4 创建表1.4.1 爬网程序创建表1.4.2 手动创建表 1…

Linux---网络时间服务器

本章主要介绍网络时间服务器。 使用chrony配置时间服务器配置chrony客户端向服务器同步时间 时间同步的必要性 一些服务对时间要求非常严格,例如,下图所示的由三台服务器搭建的ceph集群。 这三台服务器的时间必须保持一致,如果不一致&am…

dockerfile简单实践部署(jenkins,wordpress)

实现部署jenkins的流程 配置java环境,导入jenkins包,运行命令 java -jar jenkins包,这里为了减少进入jenkins的web端安装插件,将插件提前部署到容器内。 制作dockerfile 创建镜像所在的文件夹和Dockerfile文件 mkdir /test cd …

谷歌正式发布最强 AI 模型 Gemini

2023年12月6日,谷歌公司宣布推出其被认为是规模最大、功能最强大的人工智能模型 Gemini。 Gemini将分为三个不同的套件:Gemini Ultra、Gemini Pro和Gemini Nano。 Gemini Ultra被认为具备最强大的能力,Gemini Pro则可扩展至多任务&#x…

Flask template+Vue +项目中include引入其他模版(其他模版也会用到vue)的使用探索

项目背景是:团队的历史项目,是flask tmeplate写的前段页面。然后我在一个页面A.html中引入了vue文件,使用了vueelement_ui技术。现在想在此A页面中插入另外一个页面B.html的内容(试图tab分开),因为入口只有…

matplot绘图时图像太大报错但能保存

matplot绘图时,图像太大,可能在jupyter里面报错,但是图像可以保存。 报错:Image size of 12237479x675 pixels is too large. It must be less than 2^16 in each direction. 在这里插入图片描述

数字图像处理(实践篇)十九 漫水填充

目录 一 漫水填充算法--FloodFill 二 涉及的函数 三 实践 一 漫水填充算法--FloodFill FloodFill漫水填充算法就是选中与种子点相连接的区域,利用指定颜色进行区域颜色填充。可以通过设置连通方式或像素的范围控制填充的效果。通常是用来标记或者分离图像的一部…

(c语言进阶)联合

一.定义 联合体与结构体极其相似&#xff0c;只不过联合体的所有成员是共用同一块内存的。 二.联合体大小的计算 联合体共用内存的大小为联合体成员大小的最大值来定 #include<stdio.h> union Un {int a;char c; }; int main() {union Un u;printf("%zu",s…

Leetcode—213.打家劫舍II【中等】

2023每日刷题&#xff08;五十二&#xff09; Leetcode—213.打家劫舍II 算法思路 实现代码 class Solution { public:// 左闭右开int rob1(vector<int>& nums, int start, int end) {int n nums.size();int f0 0, f1 0, new_f 0;for(int i start; i < end…