初识软件测试

目录

一、什么是测试

1. 生活中的测试场景

2. 为什么需要软件测试

3. 软件测试定义 

二、测试的岗位有哪些

1. 软件测试开发工程师

2. 测试工程师

🌴高频面试题:

三、软件测试和开发的区别

1. 工作内容

2. 难易程度上

3. 工作环境

4. Money

5. 其他不同

🌴高频面试题

四、优秀的软件测试人员具备的素质

1. 综合能力

1.1 沟通能力

1.2 快速学习能力

1.3 开发能力

1.4 文字能力

2. 掌握自动化测试技术

3. 测试用例的设计能力

4. 探索性思维

5. 兴趣

6. 责任感和压力

🌴高频面试题


一、什么是测试

1. 生活中的测试场景

场景一

举一个日常生活案例,商场买衣服,买衣服的整个过程中都伴随着测试行为

外观测试:初筛选,走进门店,先挑衣服,测试是否存在符合个人审美的衣服

试穿测试:选择尺码,测试试穿之后衣服对个人的外观是否有提升

面料测试:纯棉、涤纶、布料....

价格测试:询价,心理预期是200以下

购买衣服,交易完成


场景二

对某款购物软件进行测试

启动测试:点击软件图标,测试软件是否可以正常打开

搜索测试:点击输入框,输入关键词,点击搜索

商品测试:点击商品进入详情页

购物测试:点击购买下单成功

......


场景三

对一个C++程序进行测试

测试代码逻辑是否符合预期:

a = 1, b = 2, 返回的 c 是否等于3

a = 1, b = -2,返回的 c 是否等于-1

a = -1, b = 2,返回的 c 是否等于1

a = -1, b = -2,返回的 c 是否等于-3

.....

由此可见,测试不仅在日常生活中以及学习中都处处可见。

2. 为什么需要软件测试

企业为何需要招聘大量的测试人员呢?

        企业最终的目的是“盈利”,互联网企业借助软件/系统来跟用户交互从而获得盈利,也就是说企业的受众群体主要是广大的使用用户,而用户的使用感受将直接影响企业的盈利,若产品质量太差将导致大量用户的流失,所以企业非常重视测试。

3. 软件测试定义 

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

二、测试的岗位有哪些

测试的岗位主要分为以下两个方面:

1. 软件测试开发工程师

        工作重心为可测试性以及通用测试基础框架。编写单元测试框架和自动化测试框架。软件测试开发工程师关注质量提升和测试覆盖率。

2. 测试工程师

        与软件测试开发工程师关系密切,但把用户放在第⼀位来思考。测试工程师组织整体测试实践,并进行分析总结,驱动测试执行,构建端到端的自动化测试。

然而我们在投递简历时,会看到各种各样的测试名称,形如BOSS直聘网站提供的测试岗位名称:

不同的企业对于测试的命名不同,不管是测试工程师、功能测试、移动端测试、客户端测试等等都是测试岗位,性质要么是测试工程师,要么是测试开发工程师。


🌴高频面试题:

软件测试开发工程师和测试工程师的区别?

相同点:

        1.都统称为测试人员

        2.对产品质量负责,保障产品的质量

不同点:

        测试开发比测试多“开发”二字,而这个开发并不是指业务开发,因为业务开发是开发人员的主要职责,这里的开发指的是需要开发测试效率工具,通过效率工具来提升测试效率和测试质量,比如我们的自动化、性能测试等就属于效率工具 。 

三、软件测试和开发的区别

1. 工作内容

开发人员:

  1. 通过⼀些编程语言,如C,C++,C#,Java,Python,PHP实现软件的特性
  2. 修改BUG


测试人员:

  1. 编写测试用例,执行测试用例,发现软件的缺陷,验收缺陷...
  2. 利用测试工具保障软件的质量

2. 难易程度上

开发:

  • 应届生要求掌握语言基础、开发框架、数据库、数据结构、Linux等课程
  • 在职人员还需掌握更多中间件如:Redis、rabbitMQ、ES等
  • 要求掌握以上技术并能运用在代码开发中

测试:

  • 应届生要求掌握语言基础、开发框架、数据库、数据结构、Linux等课程
  • 掌握测试技能:测试概念、设计测试用例、执行测试等
  • 在职人员还需掌握更多中间件如:Redis、rabbitMQ、ES等

总结:

        开发广度小,专业度高。测试广度大,专业度相对较低,大型互联网企业对测试人员的专业要求可能跟开发差不多。

3. 工作环境

        很多公司,测试人员和开发人员都是坐在⼀个办公楼层的不同区域,所以他们的工作环境,工作设备基本都是⼀样的。

4. Money

中小企业总体比研发低,自动化等专业测试和研发基本无差距。大厂研发测试薪资基本无差别。

以下是从某网站根据提供的样本统计出来的软件测试和开发的平均校招薪资。

5. 其他不同

测试人员经常会进行测试动作,而开发人员进行调试动作,调试和测试的含义如下:

维度调试测试
目的调试的任务是定位并且解决程序中的问题测试的任务是发现程序中的缺陷
参与角色主要由开发⼈员完成测试主要是由测试⼈员和开发⼈员来执行,黑盒测试主要由测试⼈员完成、单元/集成测试主要是由开发⼈员执行
执行阶段开发阶段测试贯穿整个软件开发生命周期

🌴高频面试题

走测试岗位为什么还要学习开发知识?

1)测试人员也需要编写代码,如自动化测试、性能测试、开发测试效率工具等。测试人员需要能够看懂代码、了解开发框架。

2)学好开发知识能够提高软件测试质量。通过查看代码中数据的走向能够更好的从代码层面去发现问题。

四、优秀的软件测试人员具备的素质

1. 综合能力

1.1 沟通能力

        测试工程师的沟通能力会直接影响工作开展的效率。良好的沟通能力是测试工程师获得更好发展的“敲门砖”(面试、工作都需要沟通)

        面试的时候,有些铁子就存在明明知道是什么,却怎么都表达不出来或者表达不清楚,导致面试评价比较差。

1.2 快速学习能力

对不同的业务需求和功能的快速学习和理解能力

  • 未来大家大概率都会经历跳槽,不同的公司,业务不⼀样,所以测试人员需要具备快速学习业务的能力。

对于测试新技术和新方法的学习能力

  • 计算机行业发展迅速,每一个技术人员需要时刻保持⼀个学习新技术的能力,不断提升自己,从而适应业界的需求

对不同语言的快速学习能力

  • 大多数人在工作之前基本掌握⼀到两门语言,然后实际在工作中,可能需要接触其他的语言,比如PHP、GO、Python等。

1.3 开发能力

        测试人员除了保障项目质量之外,也需要针对当前业务开发效率⼯具,来提升测试效率和质量。如自动化、性能测试等就是效率工具。

1.4 文字能力

        测试人员需要编写各项文档,如测试计划、测试用例、测试报告等等。

2. 掌握自动化测试技术

        自动化测试技术在测试领域中占有举足轻重的地位,掌握自动化测试技术,可以将测试人员从大量重复性的手工劳动中解放出来,这样可以把更多的精力花在更多类型的测试上。

我们经常听到自动化一词,那到底什么是自动化呢?

  • 在日常生活中,自动洗手液的出现,避免了人们按压瓶子动作,在疫情阶段使用自动洗手液有效减少了交叉感染的风险。
  • 在农业上,自动洒水器的出现,大面积的土地也能够实现快速、均匀的洒水。
  • 在交通上,交通灯的出现。使得交通有序进行,极大减少了堵车或其他事故的概率。
  • 在测试中,我们常常会见到接口自动化、UI自动化(web自动化、移动端自动化),接口自动化能够自动的去请求接口并校验接口返回属性是否符合预期结果;UI自动化能够自动在界面或者移动端上模拟人的行为进行操作,并检查元素和操作等是否符合预期结果。

3. 测试用例的设计能力

        测试用例设计能力是指,无论对于什么类型的测试,都能够设计出高效地发现缺陷,保证产品质量的优秀测试用例。

如何提高测试用例设计的能力?

  1. 掌握设计测试用例的方法
  2. 阅读好的测试用例设计案例
  3. 多写多练,积累,总结

4. 探索性思维

        测试工程师在执行测试的过程中不断学习被测系统,结合自己的经验,知识,直觉, 进行系统的错误猜测和逻辑推理,整理和分析出更多有针对性的的测试关注点。 探索性思维的质量取决于测试人员的经验。

5. 兴趣

        兴趣是就业择岗的重要因素之⼀,选择了但是仍然对个人的⼯作性质不感兴趣,可想而知,这样的选择也不会走的太远。

6. 责任感和压力

        责任感是任何工作的都需要的,对于测试工作者而言:

        测试往往是产品质量的最后的把关者;由于测试工作成效很难衡量,测试用例执行、bug数目的多少都无法说明产品的质量是否合格;虽然在敏捷模型中团队中每个人都需要对产品质量负责,但是产品的测试质量是跟测试人员那密切相关的。所以,责任感是最重要的测试必备素质之⼀。

        压力,测试工作者,特别是属于互联网行业需要能够抗住各种压力。

🌴高频面试题

为什么走测试岗位而不走开发岗位?

回答思路:岗位工作性质分析 + 个人性格/爱好 + 个人职业规划三个方面阐述。

  • 个人兴趣爱好:从性格和兴趣出发,测试工作需要测试人员具备良好的耐心、细心,接触了测试内容后对测试工作产生浓厚兴趣。
  • 岗位性质:不管是测试还是测试开发都统称为测试人员,测试人员主要以保障项目测试质量为主,通过开发⼀些测试效率工具来提高测试效率。而软件开发主要以业务编码为主。
  • 个人职业规划:大学期间就树立了走测试方向的目标,今后将继续提高测试和开发能力,争取在测试领域做出一番有影响力的事务。

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

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

相关文章

【WPF】桌面程序开发之xaml页面绑定数据模型详解

使用Visual Studio开发工具,我们可以编写在Windows系统上运行的桌面应用程序。其中,WPF(Windows Presentation Foundation)项目是一种常见的选择。然而,对于初学者来说,WPF项目中xaml页面的布局设计可能是一…

java项目之在线考试与学习交流网页平台源码(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的在线考试与学习交流网页平台。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: 基于JAVA语言…

C++数据结构-树的概念及分类介绍(基础篇)

1.什么是树 树是数据结构中的一种,其属于非线性数据结构结构的一种,我们前文所提到的数据结构多数都是线性的,这也是较为简单的数据结构,而接下来的树与图均属于非线性数据结构,也是概念极多的一类。 树是由结点或顶…

OSS对象资源管理

1、登录aliyun 1.1、什么是OSS?有什么用? OSS 是“Object Storage Service”的缩写,中文常称为“对象存储服务”。OSS 是一种互联网云存储服务,主要用于海量数据的存储与管理。 相较于nginx,OSS更灵活,不…

yolov8 pose姿态关键点识别动物姿态识别

导言 介绍了 Tiger数据集,这是一个专为姿势估计任务设计的多功能数据集。该数据集由来自YouTube 视频的 263 张图片组成,其中 210 张用于训练,53 张用于验证。它是测试姿势估计算法和排除故障的绝佳资源。 尽管虎姿态数据集只有 210 张图像…

AT89C51 Intel HEX手工结构分析 反汇编工具

在不查询格式情况下分析确定 Intel HEX 格式 Hex文件内容 :0300000002090BE7 :0C090B00787FE4F6D8FD7581080208F63C :01091700419E :1008F60078087C007D007BFF7A0979177E007F01EE :050906001208D080FE84 :10080000E709F608DFFA8046E709F208DFFA803EDA :1008100088828C83E709F0…

9.15 BFS中等 133 Clone Graph review 138 随机链表的复制

133 Clone Graph //错误代码class Solution { public:Node* cloneGraph(Node* node) {//邻接表、BFS---》类似于二叉树的层次遍历if(!node || !node->val) return node;//构造队列queue<Node*> prev;prev.push(node);//构造新的图结点列表vector<Node*> adjList…

用Spring Boot搭建的读书笔记分享平台

第1章 绪论 1.1课题背景 计算机的普及和互联网时代的到来使信息的发布和传播更加方便快捷。用户可以通过计算机上的浏览器访问多个应用系统&#xff0c;从中获取一些可以满足用户需求的管理系统。网站系统有时更像是一个大型“展示平台”&#xff0c;用户可以选择所需的信息进入…

framework解决权限不足无法安装apk

文件浏览器中安装apk权限不足 源码位置 base/services/core/java/com/android/server/uri/UriGrantsManagerService.java

java数据结构----图

图的存储结构: 代码实现 public class Graph {// 标记顶点数目private int V;// 标记边数目private int E;// 邻接表private Queue<Integer>[] adj;public Graph(int v) {V v;this.E 0;this.adj new Queue[v];for (int i 0; i < adj.length; i) {adj[i] new Queu…

初中(7-9年级)数学-人教版视频全套

文章目录 一、紧贴教材&#xff0c;内容全面二、生动讲解&#xff0c;易于理解三、灵活学习&#xff0c;随时随地四、获取方式 初中数学人教版视频全套&#xff0c;专为使用人教版教材的学生打造。通过高清视频、生动讲解和精准辅导&#xff0c;帮助学生轻松掌握数学知识点&…

系统架构设计师教程 第5章 5.2 需求工程 笔记

5.2 需求工程 ★★★★★ 软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。 软件需求包括3个不同的层次&#xff1a;业务需求、用户需求和功能需求(也包括非功能需求)。 (1)业务需求 (business requirement) 反映了组织机构或客户对系统、产品高层次的目标…

电信网络携手大模型:AI赋能网络运维的新范式

当电信网络用上大模型&#xff0c;会带来怎样的体验&#xff1f; 过去&#xff0c;网络出现问题时&#xff0c;运维人员需要依赖经验反复排查&#xff0c;找到“病根”后再“对症下药”。但在大模型的加持下&#xff0c;问题的解决方式发生了颠覆性的改变。 如今&#xff0c;…

java项目之基于工程教育认证的计算机课程管理平台(源码+论文)

项目简介 基于工程教育认证的计算机课程管理平台的主要管理员可以管理教师&#xff0c;可以对教师信息修改删除以及查询操作&#xff1b;可以对通知公告信息进行添加&#xff0c;修改&#xff0c;删除以及查询操作&#xff1b;可以对学生信息进行添加&#xff0c;修改&#xf…

算法刷题:300. 最长递增子序列、674. 最长连续递增序列、718. 最长重复子数组、1143. 最长公共子序列

300. 最长递增子序列 1.dp定义&#xff1a;dp[i]表示i之前包括i的以nums[i]结尾的最长递增子序列的长度 2.递推公式&#xff1a;if (nums[i] > nums[j]) dp[i] max(dp[i], dp[j] 1); 注意这里不是要dp[i] 与 dp[j] 1进行比较&#xff0c;而是我们要取dp[j] 1的最大值…

Linux操作系统入门(一)

Linux操作系统是开源的类Unix操作系统内核&#xff0c;由林纳斯托瓦兹在1991年创建。 Linux操作系统以其强大的性能、稳定性和开放性&#xff0c;赢得了全球用户的广泛认可&#xff0c;从服务器到个人电脑&#xff0c;从超级计算机到嵌入式设备&#xff0c;都有它的身影。作为…

进阶岛 任务3: LMDeploy 量化部署进阶实践

进阶岛 任务3&#xff1a; LMDeploy 量化部署进阶实践 任务&#xff1a;https://github.com/InternLM/Tutorial/blob/camp3/docs/L2/LMDeploy/task.md 使用结合W4A16量化与kv cache量化的internlm2_5-1_8b-chat模型封装本地API并与大模型进行一次对话&#xff0c;作业截图需包…

URP 线性空间 ui资源制作规范

前言&#xff1a; 关于颜色空间的介绍&#xff0c;可参阅 unity 文档 Color space URP实现了基于物理的渲染&#xff0c;为了保证光照计算的准确&#xff0c;需要使用线性空间&#xff1b; 使用线性空间会带来一个问题&#xff0c;ui资源在unity中进行透明度混合时&#xff…

Python版《天天酷跑+源码》,详细讲解,手把手教学-python游戏开发

天天酷跑游戏 游戏效果: 游戏主要是躲避障碍物&#xff0c;这里也添加了金币&#xff0c;增加一点积分的娱乐性&#xff0c;人物设置是三条命&#xff0c;障碍物有6种&#xff0c;包括金币&#xff0c;障碍物随机生成&#xff0c;碰到障碍物掉一滴血&#xff0c;没血了结束游戏…

STL之stack

stack容器 - 先进后出” - stack是堆栈容器&#xff0c;是一种的容器。 - 头文件&#xff1a;#include <stack> stack的push()与pop()方法 stack.push(elem);//往栈头添加元素 stack.pop();//从栈头移除第一个元素 stack<int> stkInt; stkInt.push(1);stkInt…