认识软件测试 - 软实力面试题

devtools/2025/1/19 15:11:05/

目录

1. 什么是测试

1.1 简单认识测试

1.2 为什么需要测试

1.3 软件测试的定义

2. 测试的岗位有哪些

2.1 面试题 [HR 面]: 测开和测试的区别是什么?

3. 软件测试 和 软件开发

3.1 测试和调试的区别

3.2 面试题: 走测试岗位为什么还要学开发知识? 

4. 优秀软件测试人员具备的素质

4.1 综合能力

4.2 掌握自动化测试技术

4.3 测试用例的设计能力

4.4 探索性思维

4.5 兴趣

4.6 责任感和压力

4.7 面试题 

4.8 面试题: 为什么走测试而不是开发?


1. 什么是测试

1.1 简单认识测试

简单来说, 测试就是给程序找 bug, 还要把程序中那些难以发现, 隐藏很深的 bug 找出来.

测试在我们生活中也是很常见的, 比如说我们去商场买衣服:

  1. 外观测试: 要挑选符合个人审美的衣服
  2. 试穿测试: 选择合适的尺码, 去试衣服
  3. 材质测试: 考虑衣服材质是否透气舒服
  4. 价格测试: 询问价格是否符合预算

在程序中也是一样的, 我们来看以下实现除法功能的代码:

打眼一看, 没问题~ 第二眼, 好像有点问题... 第三眼, 怎么全是 bug!!

在这个方法中, 形参 x 和 y 是没有限制的, 这是一个非常大的问题.

用户可能给除数赋的值是 0, 也可能赋的值越界(超出 int 范围), 也可能赋的值是一个字符, 或者一个字符串.... 这都会导致程序崩溃. 也就是说, 这个代码全是 bug!!

而找出代码的 bug, 就是测试人员的任务.

1.2 为什么需要测试

一个互联网企业, 是通过 "软件产品" 来跟用户交互来直接/间接的拉动用户消费, 从而获得盈利的.

如果一个软件质量太差(例如出现闪退, 功能故障, 卡顿等 bug), 那么将流失大量用户, 企业也就无法获利.

软件测试, 是为了找出代码的 bug, 提高软件质量. 这样以来, 就能够提高用户的满意度, 从而吸引更多的用户使用, 从而实现企业的盈利.

1.3 软件测试的定义

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

这里的 "特性" 包含以下方面:

  1. 功能
  2. 性能
  3. 界面
  4. 易用性

2. 测试的岗位有哪些

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

  1. 软件测试开发工程师: 工作内容是 测试 + 开发, 但中心仍然是测试. 大约 90% 的时间都在做测试工作, 剩余的 10% 在开发测试效率工具(如自动化, 性能测试, 覆盖率....)
  2. 测试开发工程师: 工作内容是 纯测试. 并且测试操作基本是手工测试, 即 "点点点".

测开 和 测试, 都统称为 测试. 并且这两者的工作重心都是做 业务测试.

注意: 纯测试的岗位只在一些小厂中存在, 重大厂基本都是测开.

2.1 面试题 [HR 面]: 测开和测试的区别是什么?

两者相同点:

  1. 都是测试人员, 工作重心都是测试
  2. 都是对产品质量负责, 保证产品质量

不同点:

  • 测试开发比测试 多 "开发" 二字, 但测开所做的开发不是 业务开发, 而是开发测试效率工具.

3. 软件测试 和 软件开发

3.1 测试和调试的区别

测试人员的测试操作, 和开发人员的调试操作, 有什么区别?

调试测试
目的发现并解决程序中的问题发现程序中的问题
参与角色开发人员全体项目组成员. 但主要是测试人员. 
执行阶段开发阶段贯穿于软件开发的整个生命周期, 当软件需求提起的那一刻, 测试就已经开始了.

3.2 面试题: 走测试岗位为什么还要学开发知识? 

  1. 因为测试人员也需要具备开发能力, 比如开发测试效率工具.
  2. 学习开发知识, 能够从代码层面发现程序问题, 更好的进行测试, 提高测试质量.

4. 优秀软件测试人员具备的素质

4.1 综合能力

  1. 沟通能力: 和产品经理沟通产品功能; 和开发人员沟通代码内容(涉及的框架, 中间件...)
  2. 快速学习能力: 学习新语言, 新工具; 适应新环境
  3. 开发能力: 开发测试效率工具
  4. 文字能力: 编写测试用例; 描述程序问题; 编写测试报告...

4.2 掌握自动化测试技术

自动化测试可以代替人力进行测试.

当一个产品进行版本更新后, 新版本肯定是需要支持旧版本的功能的.

所以需要对新版本中的旧版本功能也进行测试, 而每发行一个新版本就需要对旧版本的内容重新进行测试, 重新进行相同的测试操作. 如果每次都由测试人员手工完成, 就很浪费时间了.

而如果借助自动化, 让机器自动进行重复性的测试操作, 将极大的节省人力和时间的消耗. 让测试人员把更多的精力花在更多类型的测试上。

因此, 自动化技术, 是中大厂必不可少的技术事务. 

4.3 测试用例的设计能力

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

4.4 探索性思维

探索性思维的高低取决于测试人员的经验. 在测试过程中不断进行学习, 结合自己的经验, 直觉, 知识, 进行系统的错误猜测和逻辑推理.

4.5 兴趣

兴趣是就业择岗的重要元素之一.

4.6 责任感和压力

测试工程师是产品质量最后的把关者.

因此, 测试工程师必须对产品心怀极高的责任感.

此外, 测试工程师(包括互联网各行业)应具备良好的抗压能力.

以上内容(4.1 - 4.6)均是优秀测试人员应具备的素质.(面试解题模版)

4.7 面试题 

  1. 你觉得自身有哪些优势?
  2. 你怎么认为自己可以胜任测试工作?
  3. 相比于其他候选人, 你觉得自己强在哪里?

以上问题均可以根据上述 "优秀测试人员应具备的素质" 来回答.

4.8 面试题: 为什么走测试而不是开发?

  1. 兴趣和性格: 我对于测试具有浓厚的兴趣. 并且, 测试工作需要耐心, 细心, 我认为我挺符合的.
  2. 岗位性质: 测试不仅有测试工作, 还需要开发一些效率工具, 既有测试也有开发, 我很喜欢.
  3. 个人职业规划: 大一时我就确立了要走测试方向的目标, 一直坚持测试方向的学习, 希望能够在测试领域做出一些成绩.

END


http://www.ppmy.cn/devtools/151842.html

相关文章

stm32控制直流电机程序

在STM32微控制器上控制直流电机通常涉及使用PWM(脉宽调制)信号来调节电机的速度,并通过GPIO(通用输入输出)端口来控制电机的启动、停止和方向。以下是一个简化的STM32控制直流电机的程序示例,该程序使用STM…

向harbor中上传镜像(向harbor上传image)

向 Harbor 中上传镜像通常分为以下几个步骤: 1、登录 Harbor 2、构建镜像 3、标记镜像 4、推送镜像到 Harbor 仓库 1、登录 Harbor 首先,确保你已经能够访问 Harbor,并且已经注册了账户。如果还没有 Harbor 账户,你需要先注册一…

Jenkins质量门禁设计方案的深入探讨

Jenkins作为一个开源的自动化服务器,它通过简化持续集成和持续交付流程,使得软件测试变得更加高效。质量门禁设计方案结合了Jenkins的以下几项核心功能: 持续集成(CI) :通过自动化构建和测试,提…

c++ string

1 sting 基本概念 string 基本概念 本质:string是c风格的字符串,而string 本质上是一个类string 和char* 的区别: char * 是一个指针 string 是一个类,类内部封装了char*,管理这个字符串,是一个char* 数组…

函数(函数的概念、库函数、自定义函数、形参和实参、return语句、数组做函数参数、嵌套调用和链式访问、函数的声明和定义、static和extern)

一、函数的概念 •C语⾔中的函数:⼀个完成某项特定的任务的⼀⼩段代码 •函数又被翻译为子函数(更准确) •在C语⾔中我们⼀般会⻅到两类函数:库函数 ⾃定义函数 二、库函数 1 .标准库和头文件 •C语⾔的国际标准ANSIC规定了⼀…

python基础-推荐8个常用的Python GUI图形界面开发框架

在Python中,GUI(图形用户界面)开发框架为开发者提供了创建交互式应用程序的工具。以下是八款常用的Python GUI图形界面开发框架及其简要代码讲解: CSDN大礼包:《2024年最新全套学习资料包》免费分享 1. Tkinter 简介…

iOS - TLS(线程本地存储)

从源码中,详细总结 TLS (Thread Local Storage) 的实现: 1. TLS 基本结构 // TLS 的基本结构 struct tls_data {pthread_key_t key; // 线程本地存储的键void (*destructor)(void *); // 清理函数 };// 自动释放池的 TLS class Autorelease…

windows 搭建flutter环境,开发windows程序

环境安装配置: 下载flutter sdk https://docs.flutter.dev/get-started/install/windows 下载到本地后,随便找个地方解压,然后配置下系统环境变量 编译windows程序本地需要安装vs2019或更新的开发环境 主要就这2步安装后就可以了&#xff0…