【测试开发】答疑篇 · 什么是软件测试

news2025/1/12 15:55:28

【测试开发】答疑篇

在这里插入图片描述

文章目录

  • 【测试开发】答疑篇
    • 1. 生活中的测试
    • 2. 什么是软件测试
    • 3. 为什么要有测试/没有测试行不行
    • 4. 软件测试和软件开发的区别
    • 5. 软件测试和软件调试之间的区别
    • 6. 软件测试的岗位
    • 7. 优秀测试人员具备的素质

【测试开发】答疑篇

软件不一定是桌面应用,这样太狭义了,也可以是其他,比如移动端应用、web应用…

所以软件这个定义,并不只是我们知道的一个桌面应用而已…

1. 生活中的测试

假如你的对象喜欢买衣服,陪他逛商城的时候,他挑了一件好看的衣服,穿在身上,你如果只会说句好看,那真的太low了,无论你的对象是男是女,都这样分析:

  1. 配色和搭配:他选择的衣服的颜色和款式与他的个人特点完美搭配,展现出他的时尚眼光和对细节的关注。
  2. 剪裁和版型:这件衣服的剪裁非常适合他的身材,突出了他的优点,并展现了他的自信和魅力。
  3. 材质和质量:这条衣服选用了高质量的材料,舒适度和耐用性都非常好,彰显了他的品味和对品质的追求。
  4. 细节设计:他选择的衣服上的细节设计非常精致,比如别致的纽扣、独特的图案或细腻的刺绣,展示了他的审美眼光。
  5. 时尚感:这件衣服不仅与潮流保持一致,还有自己独特的风格,使他在任何场合都显得与众不同。
  6. 个性表达:这条衣服反映了他的个性,并帮助他展示出内在的自信和独立精神。
  7. 穿着舒适度:他选择的衣服不仅外观出众,还非常舒适,这使得他在活动中自由自在、轻松愉快。
  8. 整洁和干净:这件衣服干净整洁,无论是颜色的保持还是细节的清洁,展现了他的细致和注重细节的态度。
  9. 衣着品味:这条衣服的选择体现了他对时尚和艺术的敏锐感知,展示出他的独特品味和审美观点。
  10. 自信与魅力:他穿着这件衣服时散发出的自信和魅力瞬间吸引了人们的目光,让他成为众人关注的焦点。

总之,这件衣服在各个方面都非常出色,凸显了他的独特魅力和品味,让他成为一个引人注目的人。

而这十个方面,就是大大小小不同的测试方面,我们 在做好几个测试,例如外观测试,材质测试,版型测试,舒适度测试…

  • 因为对象肯定不会只试一件衣服,应该挑选好几件进行测试,最终挑了一件~

在生活中,我们其实潜移默化地就在做大大小小的一些测试

2. 什么是软件测试

最常见的理解就是:软件测试就是找BUG,发现缺陷。

  • 但是,什么是缺陷呢?缺陷的界定是什么?

软件测试就是验证软件产品特性是否满足用户的需求。

  • 所以,并不是程序执行错误,执行异常才是缺陷,不符合产品特性和预期,不满足用户需求也是缺陷

我们可以看出以下两点:

  1. 测试试图验证软件是 “工作的”,也就是验证软件功能执行的 正确性
  2. 测试的活动是以测试人员 “预期结果” 为依据,这里的“预期结果”指的就是 需求定义

3. 为什么要有测试/没有测试行不行

举一个例子,“非常奇葩的操作”:

对于支付相关业务,一个新上任的领导(新官上任三把火) 说:“支付这块的代码这么写的像shi一样!?必须优化以下支付这块的代码”,然后开发者们就去coding了,理当交给测试人员测试,保证没问题后才能上线! 而这位0🔪并没有这么做,而是让产品直接上线!这就是他的那“一把火”!在产品上线之后,很快出现了问题,出现了大量的“xxx用户支付,支付失败”,这个情况及其恶劣,毕竟涉及的人那么多,让用户体验那么不好,最重要的是涉及钱!

在这里例子,可见测试是保障软件质量的,许多公司会称测试部门为“质量保障部”,是软件上线前的一道重要防线!

4. 软件测试和软件开发的区别

  1. 工作内容
    • 测试:写测试用例、执行、发送测试报告、编写自动化测试用例、开发相关的测试工具
    • 开发:通过不同的编程语言,最终做出软件
  2. 技能区别
    • 测试:技能广度掌握(外观是否好看,Web的UI自动化测试,APP的UI自动化,后端的接口进行测试,性能,安全,网络安全…),对于软件测试,有后端开发技能是加分项哦
    • 开发:技能深度掌握(Java后端工程师,因为开发需要写出高效的代码)
  3. 发展前景
    • 测试:初级测试工程师 -> 中级测试工程师 -> 高级测试工程师 -> 架构师 -> 项目经理…
    • 开发:初级开发工程师 -> 中级开发工程师 -> 高级开发工程师 -> 架构师 -> CTO…
  4. 工作环境
    • 基本上几个类型的工程师都在一起办公(划分办公区域),同一公司工作环境是一样的,同一职级办公环境是一样的
  5. 薪资
    • 通常情况下,大厂两者是差不多的,而中小厂测试偏低的

5. 软件测试和软件调试之间的区别

  1. 角色
    • 调试:开发者在开发过程中出现问题,进行一定的调试动作去解决问题
    • 测试:测试 + 开发执行(通常情况下,黑盒测试由测试人员执行,部分白盒测试、系统测试是由开发人员执行)
  2. 阶段
    • 调试:开发的过程中调试
    • 测试:没有代码测试就已经开始了,测试是伴随着软件的整个生命周期
  3. 目的
    • 调试:出现问题,解决问题
    • 测试:发现问题,提供解决方案
  4. 手段
    • 调试:debug,分析代码逻辑等各种手段,作为侦探…
    • 测试:等价类划分法,边界值法等各种手段,作为天罗地网,找到问题…

6. 软件测试的岗位

  1. 测试工程师
    • 功能测试比较多,设计测试用例,执行测试用例,涉及到的开发工作内容较少
  2. 测试开发工程师
    • 测试工程师的工作内容上,加了一些开发工作(开发测试用例,开发测试工具,开发出来的测试工具让测试人员用,提高效率)
    • 测试开发出来的软件和开发人员开发的软件有啥不一样?
      1. 开发人员开发的软件面向的对象是外部用户
      2. 测试开发开发出来的软件
  3. 游戏测试
  4. 软件测试
  5. 自动化测试
    • 设计自动化测试用例,开发自动化测试框架
  6. 性能测试(较难)
  7. 安全测试(较难)

7. 优秀测试人员具备的素质

技能:

  1. 编程能力(编写测试工具,自动化测试用例)
  2. 测试用例设计能力
  3. 技术快速学习的能力
  4. 业务快速学习的能力

非技能:

  1. 沟通与合作(一个项目一堆人写的)
  2. 文字表达能力(测试用例文字写出来的,编写测试文档,提出BUG以及解决方案)
  3. 抗压能力
  4. 责任感

文章到此结束!谢谢观看
可以叫我 小马,我可能写的不好或者有错误,但是一起加油鸭🦆

软件测试的学习就是以实践为主,理论为辅~


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

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

相关文章

公众号迁移线上公证如何办?

公众号账号迁移的作用是什么?只能变更主体吗?微信公众平台的帐号迁移功能可将原公众号的粉丝、文章素材、违规记录、留言功能、名称等迁移至新的公众号。通过迁移可以实现公众号的公司主体变更、粉丝转移、开通留言功能、服务号转为订阅号等作用。因此不…

Qt基于paintEvent自定义CharView

Qt基于paintEvent自定义CharView 鼠标拖动&#xff0c;缩放&#xff0c;区域缩放&#xff0c; 针对x轴&#xff0c;直接上代码 charview.h #ifndef CHARVIEW_H #define CHARVIEW_H#include <QWidget> #include <QPainter> #include <QPaintEvent> #inclu…

Kotlin使用infix关键字构建高可读性代码

自从Google推出Kotlin作为官方开发语言后&#xff0c;一堆像我这样的习惯Java开发的程序员从不习惯到爱上这门语言只用了很短的时间&#xff0c;相比于Java语言&#xff0c;kotlin集各家所长&#xff0c;可以使用更少的代码&#xff0c;实现更多更复杂的需求&#xff0c;而且可…

腾讯mini项目-【指标监控服务重构】2023-08-18

今日已办 watermill 将 key 设置到 message 中 修改 watermill-kafka 源码 将 key 设置到 message.metadata中 接入 otel-sdk 添加 middleware resolveUpstreamCtx 解析上游上下文&#xff0c;开启根Span添加 middleware middleware.InstantAck - 马上ACK&#xff0c;使得多…

怒刷LeetCode的第4天(Java版)

#【中秋征文】程序人生&#xff0c;中秋共享# 目录 第一题 题目来源 题目内容 解决方法 方法一&#xff1a;遍历字符串 方法二&#xff1a;有限状态机&#xff08;Finite State Machine&#xff09; 方法三&#xff1a;正则表达式 第二题 题目来源 题目内容 解决方…

机器学习——决策树/随机森林

0、前言&#xff1a; 决策树可以做分类也可以做回归&#xff0c;决策树容易过拟合决策树算法的基本原理是依据信息学熵的概念设计的&#xff08;Logistic回归和贝叶斯是基于概率论&#xff09;&#xff0c;熵最早起源于物理学&#xff0c;在信息学当中表示不确定性的度量&…

带你了解前后端分离的秘密-Vue【vue入门】

&#x1f3c5;我是默&#xff0c;一个在CSDN分享笔记的博主。&#x1f4da;&#x1f4da; &#x1f31f;在这里&#xff0c;我要推荐给大家我的专栏《Vue》。&#x1f3af;&#x1f3af; &#x1f680;无论你是编程小白&#xff0c;还是有一定基础的程序员&#xff0c;这个专栏…

js中事件委托和事件绑定之间的区别

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 事件绑定&#xff08;Event Binding&#xff09;⭐事件委托&#xff08;Event Delegation&#xff09;⭐ 选择事件绑定或事件委托⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本…

NVM安装及如何使用NVM

NVM是什么&#xff1f; nvm 全名 Node Version Manager&#xff0c;Node的版本管理工具 NVM能做什么&#xff1f; 安装 nvm 后&#xff0c;可以使用nvm的相关命令来管理和切换不同的 node 版本&#xff0c;方便开发 如何安装NVM 链接: NVM GitHub地址 如何使用 NVM 命令 …

R语言绘制PCA双标图

代码&#xff1a; setwd("D:/Desktop/0000/R") #更改路径#导入数据 df <- read.table("Input data.csv", header T, sep ",")# ----------------------------------- #所需的包: packages <- c("ggplot2", "tidyr"…

1.简单工厂模式

UML类图 代码 main.cpp #include <iostream> #include "OperationFactory.h" using namespace std;int main(void) {float num1;float num2;char operate;cin >> num1 >> num2 >> operate;Operation* oper OperationFactory::createOpera…

算法综合篇专题四:前缀和

"回忆里的我&#xff0c;比国王富有。奢侈的快乐~" 1、前缀和【模板】 (1) 题目解析 (2) 算法原理 #include <iostream> using namespace std;const int N 100010; // 可能出现溢出 long long arr[N],dp[N]; int n,q;int main() {cin >> n …

长胜证券:突破五日线什么意思?

随着股市的快速开展&#xff0c;越来越多的人开端了解和参与股票投资&#xff0c;但或许会遇到一些术语和概念&#xff0c;例如“打破五日线”&#xff0c;这是新手们需求了解的。本文将介绍“打破五日线”的概念及其意义&#xff0c;同时从不同视点剖析其意义和影响因素。 什…

记录wisemodel上传失败

参考&#xff1a;https://wisemodel.cn/docs/%E6%A8%A1%E5%9E%8B%E4%B8%8A%E4%BC%A0 第一种方法&#xff1a; git lfs install git clone https://oauth2:your_git_tokenwww.wisemodel.cn/username/my_test_model.git也就是用oauth2&#xff0c;然后再按照一般的方法传文件&a…

(三十三)大数据实战——Canal安装部署及其应用案例实战

前言 Canal 是一个开源的MySQL数据库binlog监听和解析框架&#xff0c;用于实时捕获 MySQL数据库的binlog 变更事件&#xff0c;并将其解析成易于消费的数据格式。Canal 可以实时监听 MySQL 数据库的 binlog&#xff0c;并即时捕获数据库的数据变更事件。Canal可以将捕获到的b…

C++ function<>和bind()

一、可调用对象 介绍两个概念&#xff1a;调用运算符和可调用对象 调用运算符 调用运算符&#xff0c;即&#xff1a;() 。跟随在函数名之后的一对括号 “()”&#xff0c;起到调用函数的效果&#xff0c;传递给函数的参数放置在括号内。 可调用对象 对于一个对象或者一个表…

位图+布隆过滤器+海量数据问题(它们都是哈希的应用)

一)位图: 首先计算一下存储一下10亿个整形数据&#xff0c;需要多大内存呢&#xff0c;多少个G呢&#xff1f; 2^3010亿&#xff0c;10亿个字节 byte kb mb gb 100000000个字节/1024/1024/10241G 所以10亿个字节就是1G&#xff0c;所以40亿个字节就是4G&#xff0c;也就是10个整…

Swing基本组件的用法(一)

语雀笔记&#xff1a;https://www.yuque.com/huangzhanqi/rhwoir/paaoghdyv0tgksk1https://www.yuque.com/huangzhanqi/rhwoir/paaoghdyv0tgksk1Java图形化界面: Java图形化界面学习demo与资料 (gitee.com)https://gitee.com/zhanqi214/java-graphical-interface Swing组件层次…

机器学习笔记 - 视频分析和人类活动识别技术路线简述

一、理解人类活动识别 首先了解什么是人类活动识别,简而言之,是对某人正在执行的活动/动作进行分类或预测的任务称为活动识别。 我们可能会有一个问题:这与普通的分类任务有什么不同?这里的问题是,在人类活动识别中,您实际上需要一系列数据点来预测正确执行的动作。 看看…

Python 多进程异常

这里写目录标题 1、捕获异常2、退出程序3、进程共享变量4、multiprocessing的Pool所起的进程中再起进程 1、捕获异常 https://zhuanlan.zhihu.com/p/321408784 try:<语句> except Exception as e:print(异常说明,e)1 捕获所有异常 包括键盘中断和程序退出请求&#xff0…