软件测试入门:静态测试
什么是静态测试
顾名思义,这里的静态是指程序的状态,即在不执行代码的情况下检查软件应用程序中的缺陷。进行静态测试是为了仅早在开发的早期阶段发现程序缺陷,因为这样可以更快速地识别缺陷并低成本解决缺陷,它还有助于查找动态测试过程找不到的缺陷。与静态测试对应的是动态测试(Dynamic Testing),它指在代码执行过程测试应用程序。
静态测试技术的两种类型
人工检查:指人工完成的代码的分析,也称为CodeRreview。
工具自动分析:自动化分析基本上是借助于工具完成的静态分析。
什么是测试评审?
静态测试中的评审是为了发现任何程序设计中的潜在缺陷而进行的活动。评审的另一个好处是,帮助所有团队成员都了解项目本身,有时想法的多样性可能会产生出色的建议。项目文件直接由项目相关人员检查,并找出大家对统一需求理解的差异性。
评审可以为四个部分:
非正式评审
演示
技术评审
审查
在评审过程中,参与者分别是:
主持人:执行入场检查,跟进返工,指导团队成员,安排会议。
作者:负责修复发现的缺陷并提高文档质量
抄写员:在评审过程中记录缺陷并参加评审会议
审稿人:检查材料是否有缺陷并检查
经理:决定执行评审,并确保达到评审过程的目标。
在静态测试中更容易发现的缺陷类型为:
违背(编码)标准
代码可维护性差
代码存在缺陷
需求缺失
接口规范不一致
通常,在静态测试中发现的缺陷是变量未声明、边界逻辑处理考虑不全面、语法错误、接口设计不一致等因素引起的。
现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。
如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受
可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛
分享他们的经验,还会分享很多直播讲座和技术沙龙
可以免费学习!划重点!开源的!!!
qq群号:822269834【暗号:csdn999】
为什么要进行静态测试?
由于以下原因:
早期更容易发现缺陷和修复
缩短开发时间
降低测试成本和时间
为了提高开发效率
降低测试阶段出现缺陷的概率
静态测试测试内容是什么
在“静态测试”中,对以下内容进行测试
单元测试用例
业务需求文档(BRD)
用例
系统/功能要求
原型
原型规格文件
数据库字段字典电子表格
测试数据
需求跟踪矩阵文件
用户手册/培训指南/文档
测试计划策略文档/测试用例
自动化/性能测试脚本
如何进行静态测试
要做静态测试,它可以通过以下方式完成:
进行检查过程以完全检查应用程序的设计
对要审核的每个文档使用清单,以确保所有审核均被完全覆盖
执行静态测试的各种活动是:
用例需求验证:它验证是否标识了所有最终用户操作以及与之关联的任何输入和输出。用例越详细和透彻,测试用例就越准确和全面。
功能需求验证:确保功能需求标识所有必要的元素。它还查看数据库功能,接口列表以及硬件,软件和网络要求。
架构评审:所有业务级别的流程,例如服务器位置,网络图,协议定义,负载平衡,数据库可访问性,测试设备等。
原型/屏幕模型验证:此阶段包括需求和用例的验证。
字段字典验证:UI中的每个字段都定义得足够好,可以创建字段级别的验证测试用例。字段用于检查最小/最大长度,列表值,错误消息等。
静态测试技术有哪些
非正式评审
演示
技术评审
审查
静态分析
数据流
控制流
静态测试的工具有哪些
静态测试的工具如下:
Checkstyle
Soot
SourceMeter
Sonar
静态测试的技巧
静态测试的一些技巧:
只专注于真正重要的事情
明确计划和跟踪审核活动。通常将软件演练和检查综合到同行的评论中
解决人员问题
持续改进流程和工具
通过消除测试执行中的主要延迟,可以减少测试成本和时间
概括
静态测试是为了尽早发现缺陷。
静态测试不能替代动态测试,两者都会发现不同类型的缺陷
评审是进行静态测试的有效技术
最后感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和关注,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
相关文章:
软件测试入门:静态测试
什么是静态测试 顾名思义,这里的静态是指程序的状态,即在不执行代码的情况下检查软件应用程序中的缺陷。进行静态测试是为了仅早在开发的早期阶段发现程序缺陷,因为这样可以更快速地识别缺陷并低成本解决缺陷,它还有助于查找动态测…...
力扣labuladong一刷day30天二叉树
力扣labuladong一刷day30天二叉树 文章目录 力扣labuladong一刷day30天二叉树一、654. 最大二叉树二、105. 从前序与中序遍历序列构造二叉树三、106. 从中序与后序遍历序列构造二叉树四、889. 根据前序和后序遍历构造二叉树 一、654. 最大二叉树 题目链接:https://…...
【云原生-K8s】检查yaml文件安全配置kubesec部署及使用
基础介绍基础描述特点 部署在线下载百度网盘下载安装 使用官网样例yamlHTTP远程调用安全建议 总结 基础介绍 基础描述 Kubesec 是一个开源项目,旨在为 Kubernetes 提供安全特性。它提供了一组工具和插件,用于保护和管理在 Kubernetes 集群中的工作负载和…...
LeetCode力扣每日一题(Java):20、有效的括号
一、题目 二、解题思路 1、我的思路 我看到题目之后,想着这可能是力扣里唯一一道我能秒杀的题目了 于是一波操作猛如虎写出了如下代码 public boolean isValid(String s) {char[] c s.toCharArray();for(int i0;i<c.length;i){switch (c[i]){case (:if(c[i]…...
解决Flutter运行报错Could not run build/ios/iphoneos/Runner.app
错误场景 更新了IOS的系统版本为最新的17.0, 运行报以下错误 Launching lib/main.dart on iPhone in debug mode... Automatically signing iOS for device deployment using specified development team in Xcode project: GN3DCAF71C Running Xcode build... Xcode build d…...
配置Smart Link主备备份示例
目录 实验拓扑 组网需求 配置思路 配置步骤 1.配置VLAN信息 2.在SwitchA上创建Smart Link备份组,并指定端口角色 3.使能回切功能并设置回切时间 4.使能发送Flush报文功能 5.使能接受Flush报文功能 验证配置结果 实验拓扑 组网需求 如上图所示,…...
03-微服务架构构建之微服务拆分
文章目录 前言一、微服务拆分的原则二、微服务拆分的时机三、微服务拆分的方法总结 前言 微服务架构是将一个单体应用程序拆分为一个个独立且保持松耦合的服务的一种架构方式,每个服务有着独立的数据库并且能独立运行部署。微服务架构的构建过程中,第一…...
Linus:我休假的时候也会带着电脑,否则会感觉很无聊
目录 Linux 内核最新版本动态 关于成为内核维护者 代码好写,人际关系难处理 内核维护者老龄化 内核中 Rust 的使用 关于 AI 的看法 参考 12.5-12.6 日,Linux 基金会组织的开源峰会(OSS,Open Source Summit)在日…...
快速排序的新用法
普通快排 简介 快速排序是一种高效的排序算法,利用分治的思想进行排序。它的基本原理是在待排序的n个数据中任取一个数据为分区标准,把所有小于该排序码的数据移到左边,把所有大于该排序码的数据移到右边,中间放所选记录&#x…...
利用乔拓云SAAS系统,快速、高效搭建小程序
a-service,软件即服务)系统来搭建他们的微信小程序。SAAS系统作为一种创新的软件应用模式,将软件作为一种服务提供给用户,为用户提供了更高效、更便捷的解决方案。本文将探讨为什么越来越多的商家选择使用乔拓云这种SAAS系统搭建小…...
Kubernetes(K8s 1.27.x) 快速上手+实践,无废话纯享版
文章目录 1 基础知识1.1 K8s 有用么?1.2 K8s 是什么?1.3 k8s 部署方式1.4 k8s 环境解析 2 环境部署2.1 基础环境配置2.2 容器环境操作2.3 cri环境操作2.4 harbor仓库操作2.5 k8s集群初始化2.6 k8s环境收尾操作 3 应用部署3.1 应用管理解读3.2 应用部署实…...
非常抱歉的通知
非常感谢有这么多的同志向我提问一些问题,也非常感谢很多的同志可以看我的学习文章,这次大概有四五个月没有上csdn,看到了许多同志的疑问和慰问,我也很感动,但是由于我自己以及其他的原因,我现在打算以考编…...
rust 包模块组织结构
一个包(package)可以拥有多个二进制单元包及一个可选的库单元包。随着包内代码规模的增长,你还可以将代码拆分到独立的单元包(crate)中,并将它作为外部依赖进行引用。 RUST提供了一系列的功能来帮助我们管…...
深入浅出:HTTPS单向与双向认证及证书解析20231208
介绍: 网络安全的核心之一是了解和实施HTTPS认证。本文将探讨HTTPS单向认证和双向认证的区别,以及SSL证书和CA证书在这些过程中的作用,并通过Nginx配置实例具体说明。 第一部分:HTTPS单向认证 定义及工作原理:HTTPS单向认证是一…...
水利安全监测方案——基于RTU200的解决方案
引言: 水资源是人类赖以生存的重要基础,对于保障水利系统安全运行以及应对自然灾害起着关键作用。为了实现水利安全监测的目标,我们提出了基于RTU200的解决方案。本方案将结合RTU200的可靠性、灵活性和高效性,为您打造一个全面的…...
安卓开发学习---kotlin版---笔记(一)
Hello word 前言:上次学习安卓,学了Java开发,简单的搭了几个安卓界面。这次要学习Kotlin语言,然后开发安卓,趁着还年轻,学点新东西,坚持~ 未来的你会感谢现在努力的你~ 主要学习资料:…...
挑选在线客服系统的七大注意事项
越来越多的企业开始注重客户服务,所以在线客服系统也逐渐成为了电商企业不可或缺的一部分。然而在挑选在线客服系统的过程中,蛮多企业会遇到各种各样的问题,这就导致了最终选择的系统并不适合自己企业的需求。接下来我将提醒大家挑选在线客服…...
剧本杀小程序搭建:打造线上剧本杀新体验
剧本杀是一款以角色扮演为主的游戏,一度成为了年轻人的最喜爱的社交游戏。在剧本杀市场需求下,剧本杀规模也迅速上升。今年第一季度,剧本杀市场规模环比增长47%,市场整体消费水平逐渐呈上升趋势。 随着剧本杀的不断发展ÿ…...
机器学习实战:预测波士顿房价
前言: Hello大家好,我是Dream。 今天来学习一下机器学习中一个非常经典的案例:预测波士顿房价,在此过程中也会补充很多重要的知识点,欢迎大家一起前来探讨学习~ 一、导入数据 在这个项目中,我们利用马萨诸…...
基于个微机器人的开发
简要描述: 下载消息中的动图 请求URL: http://域名/getMsgEmoji 请求方式: POST 请求头Headers: Content-Type:application/jsonAuthorization:login接口返回 参数: 参数名必选类型说明…...
程序员学习方法
https://www.zhihu.com/question/24187324 https://www.zhihu.com/question/505750740 windows系统: 如何业余开展 Windows 系统的学习? - 知乎 wifi工作原理: WiFi的工作原理是什么? - 知乎 发...
VUE+THREE.JS 点击模型相机缓入查看模型相关信息
点击模型相机缓入查看模型相关信息 1.引入2.初始化CSS3DRenderer3.animate 加入一直执行渲染4.点击事件4.1 初始化renderer时加入监听事件4.2 触发点击事件 5. 关键代码分析5.1 移除模型5.2 创建模型上方的弹框5.3 相机缓入动画5.4 动画执行 1.引入 引入模型所要呈现的3DSprite…...
cpu 300% 爆满 内存占用不高 排查
top查询 cpu最高的PID ps -ef | grep PID 查看具体哪一个jar服务 jstack -l PID > ./jstack.log 下载/打印进程的线程栈信息 可以加信息简单分析 或进一步 查看堆内存使用情况 jmap -heap Java进程id jstack.log 信息示例 Full thread dump Java HotSpot(TM) 64-Bit Se…...
Halcon 简单的ORC 字体识别
文章目录 仿射变化识别 仿射变化 将图片进行矫正处理 dev_close_window() read_image(Image,C:/Users/Augustine/Desktop/halcon/image.png) *获取图片的大小 get_image_size(Image, Width, Height) *仿射运算获取图片的角度对图片进行矫正 *选中图片的区域 gen_rectangle1 (Re…...
12月7日作业
使用QT模仿一个登陆界面(模仿育碧Ubisoft登录界面) #include "myqq.h"MyQQ::MyQQ(QWidget *parent): QMainWindow(parent) {this->resize(880,550); //设置窗口大小this->setFixedSize(880,550); //固定窗口大小this->setStyleShee…...
【腾讯云HAI域探密】- AIGC应用助力企业降本增效之路
一、前言: 近年来,随着深度学习、大数据、人工智能、AI等技术领域的不断发展,机器学习是目前最火热的人工智能分支之一,是使用大量数据训练计算机程序,以实现智能决策、语音识别、图像处理等任务。 作者也是经过了以上…...
云原生之深入解析如何限制Kubernetes集群中文件描述符与线程数量
一、背景 linux 中为了防止进程恶意使用资源,系统使用 ulimit 来限制进程的资源使用情况(包括文件描述符,线程数,内存大小等)。同样地在容器化场景中,需要限制其系统资源的使用量。ulimit: docker 默认支持…...
Django的Auth模块
Auth模块 我们在创建好一个Django项目后执行数据库迁移命令会自动生成很多表 其中有auth_user等表 Django在启动之后就可以直接访问admin路由,需要输入用户名和密码,数据参考的就是auth_user表,并且必须是管理员才能进入 依赖于a…...
敏捷开发方法
理解: 极限编程(XP):敏捷开发的典型方法之一,是一种轻量级(敏捷)、高效,低风险、柔性、可预测的、科学的软件开发方法,它由价值观、原则、实践和行为4个部分组成。其中4大…...
vue 前端实现login页登陆 验证码
实现效果 // template <el-form :model"loginForm" :rules"fieldRules" ref"loginForm" label-position"left" label-width"0px" class"login-container"><span class"tool-bar"></sp…...
深圳小语种网站建设/网站设计公司苏州
在近期的一个月中能够说是自己自从学习英语以来付出最多的一个月了,单单从时间 说:假设没有极其特殊的事情,每天都能保证4个番茄的有效学习时间,而且在这一个多 月中每天早晨都坚持晨读,先不说自己在水平上有了多么大的…...
制作网站建设的公司/巩义网络推广公司
目录 简介 全局最优化 局部优化 有约束优化问题 代码实现 简介 凸优化,或叫做凸最优化,凸最小化,是数学最优化的一个子领域,研究定义于凸集中的凸函数最小化的问题。 在金融学和经济学中,凸优化起着重要作用&am…...
东莞网站推广运营公司/怎么制作网页
修改BIOS部份,请看你的主板说明书,找AHCI相关项即可。如果你打开了AHCI模式后进行系统安装,XP需要准备好驱动磁盘,或者你使用WIN7PE下克隆亦可。安装win7可免以上手续。如果你用Native IDE模式安装了系统,后来想更改为…...
网站建设与管理专业介绍/网络营销推广公司有哪些
今天尝试建Java通过JDBC连接到MySQL上,测试成功了,总结一下连接的具体方法。 Fristly:首先必须要安装有JDK(JDK在官网可下,我用的是JDK1.8.0_60),安装时注意环境变量的配置。 Second:下载安装MySQL,安装过程…...
建立一个网页需要多少钱/怎么做好网站搜索引擎优化
前面的几篇文章我们简单介绍了ROS的一些基本操作和数据获取的实现。下面,我们将更深入地研究ROS的数据传递,因为这关系到能不能真正把ROS用于实际的工程项目中。 如果工程只用ROS搭建,那么是不需要用到命题所说的LCM的。但如果ROS只是整体系统的一部分,则需要利用内存共享…...
传奇私服广告网站怎么做/接app推广接单平台
1.视图view视图是一个虚拟表,其内容由查询定义。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。视图的优点:①简化了操作,把经常使用的数据定义为视图。②安全性,用户只能查询和修改能看到的数据。③逻辑上…...