测试工程师面试常问的问题都有哪些

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试工程师面试常问的问题都有哪些相关的知识,希望对你有一定的参考价值。

比如,如何测试一个web的登录页面,如何测试一个电话机等等。

1、出几道题看你对自动化测试的是否了解,是否明白linux的基本指令, 给你一个页面,让你写case,java或者python的代码能力考察。

2、软件测试的流程,测试用例的设计(用例格式、设计思路),Bug的流程(生命周期),测试计划,软件测试过程中涉及的文档等等。

3、初级的一般无非就是功能测试多一些,比如软件测试整个流程是什么,测试设计,测试计划,测试用例编写方法,用例执行,跟踪管理,测试报告重点,还是用例的编写等等。

4、如果是中高级的话,接口测试,性能测试等等部分会问到一些,包括软件测试管理等等。

参考技术A

    你怎么看待测试这个行业

    如何测试一个web的登录页面

    如何测试一个电话机(真的经典,我刚毕业时候面试每家都问我这个)

    对自动化测试的了解

    linux的基本指令

    给你一个页面,让你写case

    java或者python的代码能力考察


1、2、3、6是基本测试工程师经常问的

如果其他几项你也有所了解,那么你的成功率会高一些

本回答被提问者采纳
参考技术B 软件测试面试前的最后一波恶补!不要打没有准备的仗。
想要拿到心仪的offer,光有相应的技术水平是不够的,还是要提前做好面试题的熟悉以及学习一些面试时的技巧,否则,就算是金子也很可能会被埋没了。
下面给详细讲讲一些面试中比较常见的题吧!
1、软件测试的流程是什么?
分析:每当hr问一个问题的时候,我们都必须在脑海里先想一下他是想通过这个问题获取哪些信息,做好了这步先行工作再回答就比较稳健了。如果有工作经验,那么直接按照公司流程去答就可以了,如果你刚转行或者是才实习,那就按下面的标准回答走就行了。
回答:项目经理将项目需求文档给到开发,开发记录文档内需求不明确或者遗漏点做好准备,然后在需求评审会议上,各开发人员提出自己的疑问并解决,需求评审最终得到一份需求规格说明书。(需求评审阶段)
评审通过后,开发这边的经理就开始编写开发计划,测试经理编写测试计划,计划评审通过后开发人员进行程序的开发,测试人员开始测试用例的编写。当项目的第一个版本出来后,开发负责第二个版本的迭代,而测试这边对项目进行测试并记录追踪管理bug,直到项目迭代完毕。(产品研发阶段)
项目迭代完毕并修复大部分的bug后,测试这边开始进行总结,最终产出一份测试报告书,记录此次的测试工作及项目存在的问题。(产品发布阶段)

2、测试用例主要有哪些元素?
分析:每家公司用的模板都不尽相同,所以内容也是多种多样的,你只需要把基本的元素回答出来就行了。
回答:测试用例的主要元素有:ID、标题、模块、预置条件、操作步骤、预期结果、实际结果、是否通过等等

3、软件测试有什么策略和阶段?
分析:策略就是你是以什么样的思路去测试,或者是通过什么样的技术或者步骤去执行等等。
回答 :软件测试的策略主要有:动态、静态测试;白盒、黑盒测试。测试阶段按照研发顺序分别是:单元测试、集成测试、系统测试,有些公司还会有验收测试;(单元测试开发在调试代码时就完成,集成测试也是,但是有时测试人员也需要进行集成测试;测试人员平时主要的工作就是系统测试,验收测试是客户参与进行的测试);

4、测试用例是什么?有什么作用?
回答:测试用例实际上就是预设好一个特定的场景,让软件再这个场景中运行,以检验程序是否给出正确反应,来衡量软件是否正确满足了客户需求。
作用:
1、避免盲目测试并提高测试效率;在软件版本更新之后只需要少量修改即可开展测试工作,提高工作效率,大幅度缩短测试周期。
2、可以直观看出哪些是测试重点,测试用例是测试工作的见证,可以看到测了哪些功能,又有哪些模块没有测。
3、测试用例是量化测试工作的方法之一。

5、你平时是怎么设计测试用例的?
分析:这个问题的点主要考察是否掌握测试用例设计方法,在回答之后,HR可能会继续追问某种设计方法的概念或者实例,这时举例说明即可;如:等价类划分法就是把程序的输入域划分成等价类,从每个部分中选取少数代表性数据当做测试数据。
回答:设计测试用例一般都会使用到等价类、边界值、场景/流程法、因果图还有错误推测法;
6、你们公司的需求评审是怎么进行的?
分析:需求评审,就是对客户需求,软件各个模块之间模糊的点进行审查,排除不理解或者没有考虑到的点。
回答:需求评审,在一些分工比较明确的公司,都是由PD负责,需求确认好后再下发到开发和测试部门;分工不怎么明确的公司可能就是开发测试产品等大家坐在一起共同探讨;评审形式一般分为线上和线下两种方式,负责人一般会提前把需求文档下发到大家手上供大家整理各自的疑惑点,为后续的评审会议做准备。
7、还有什么想要问我的吗?
分析:这个问题在每个面试的尾声都会被问到,如果你直接回答没有,会让hr有种你不在意这份工作的感觉,如果你问得多了又会显得面试之前没有做好充分的准备,所以问题一般控制在2-3个就差不多。
直接说没有,会让HR觉得你不关心这个岗位,问的多了又会显得面试之前没有做好充分的准备。所以问题一般控制在两到三个比较好。
回答:
1、公司的研发团队目前是什么规模?开发和测试分别有多少人?
2、公司今后的业务方向是什么?
3、如果我入职了,我的主要工作职责是什么?
以上!

java面试常问的问题分类 ,欢迎补充

 

大家可以补充常见问题,以下是几个老IT


Redis

  • 说说你对redis的理解

  • 在项目中为什要使用Redis?

  • 如果不用redis,你会选择什么框架来代替

  • 缓存如果使用不当会造成什么后果?

  • Redis都有哪些数据类型?分别在哪些场景下使用比较合适?

  • Redis 支持的数据类型有哪些?

  • 缓存雪崩和缓存穿透问题解决方案 ?

  • 如何保证缓存与数据库双写时的数据一致性?

  • Redis 持久化有几种方式?

  • redis 内存淘汰机制?

  • 为什么 Redis 需要把所有数据放到内存中?

  • Redis 集群方案应该怎么做?都有哪些方案?

  • Redis 集群方案什么情况下会导致整个集群不可用?

  • 使用过 Redis 分布式锁么,它是怎么实现的?

  • redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的memcached 效率要高?

  • Redis 常见的性能问题和解决方案

  • Redis 的数据淘汰策略有哪些

  • 使用 Redis 做过异步队列吗,是如何实现的

  • Redis 如何实现延时队列

  • 说说你使用redis的最佳实践

  • Redis 支持的 Java 客户端都有哪些?官方推荐用哪个?

  • Redis 回收进程如何工作的?

Mysql

  • 你是如何生成唯一键的?自增ID的作用是什么?

  • 你是如何理解mysql utf8的?

  • 说一下ACID是什么?

  • MySQL的内连接、左连接、右连接有什么区别?

  • 如何获取当前数据库版本?

  • 如何做 MySQL的性能优化?

  • mysql的事务是怎么理解的?

  • 哪些情况需要用到事务,哪些可以不必使用事务?

  • 为什么会有最左前缀原则 ?

  • 数据库索引为什么要使用B+树?

  • 如何实现mysql的读写分离?

  • MySQL主从复制原理的是啥?

  • 如何解决mysql主从同步的延时问题?

  • MySQL 用 limit 为什么会影响性能?

  • 说一下MySQL常用的引擎?

  • 说一下MySQL的行锁和表锁?

  • 说说如果性能不好,你会怎么做,如何优化?

  • 优化的步骤是什么?

  • 说说你使用Mysql的最佳实践

JAVA

  • String 和 StringBuffer、StringBuilder 的区别是什么?

  • Arraylist 与 LinkedList 异同?

  • Java的基本类型?

  • String 属于基础的数据类型吗?

  • Java中IO流分为几种?

  • BIO、NIO、AIO 有什么区别?

  • Files的常用方法都有哪些?

  • 如何理解线程的?线程和进程的区别子啊哪里

  • 哪些集合类是线程安全的?

  • Array 和 ArrayList 有何区别?

  • 如何实现数组和 List 之间的转换?

  • 并行和并发有什么区别?

  • 创建线程有哪几种方式?

  • 线程有哪些状态?

  • throw 和 throws 的区别?

  • HashMap 的工作原理是什么?

  • Hashmap 什么时候进行扩容呢?

  • heap 和 stack 有什么区别。

  • Java 集合类框架的基本接口有哪些?

  • 什么是迭代器 (Iterator)?

  • Iterator 和 ListIterator 的区别是什么?

  • Java 集合类框架的最佳实践有哪些?

  • 简述 Java 垃圾回收机制

  • 如何判断一个对象是否存活?(或者 GC 对象的判定方法)

  • 垃圾回收的优点和原理。并考虑 2 种回收机制

  • 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?

  • Java 中会存在内存泄漏吗,请简单描述

  • Synchronized 用过吗,其原理是什么?

  • 你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁?

  • 什么是可重入性,为什么说 Synchronized 是可重入锁?

  • JVM 对 Java 的原生锁做了哪些优化?

  • 为什么说 Synchronized 是非公平锁?

  • 什么是锁消除和锁粗化?

  • 线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?

  • 如何在 Java 线程池中提交线程?

  • 什么是 Java 的内存模型,Java 中各个线程是怎么彼此看到对方的变量的?

  • 请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性?

  • 既然 volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的?

  • 请对比下 volatile 对比 Synchronized 的异同。

  • 请谈谈 ThreadLocal 是怎么解决并发安全的?

  • 很多人都说要慎用 ThreadLocal,谈谈你的理解,使用 ThreadLocal 需要注意些什么?

  • 为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?什么是 CAS,它有什么特性?

  • 跟 Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同?

  • 那么请谈谈 AQS 框架是怎么回事儿?

  • 请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。

  • Java 中的线程池是如何实现的?

  • 创建线程池的几个核心构造参数?

设计模式

  • 请列举出在 JDK 中几个常用的设计模式?

  • 什么是设计模式?你是否在你的代码里面使用过任何设计模式?

  • Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式

  • 在 Java 中,什么叫观察者设计模式(observer design pattern)?

  • 使用工厂模式最主要的好处是什么?在哪里使用?

  • 举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?

  • 在 Java 中,为什么不允许从静态方法中访问非静态变量?

  • 在 Java 中,什么时候用重载,什么时候用重写?

  • 举例说明什么情况下会更倾向于使用抽象类而不是接口

消息队列MQ

  • 你在系统里用过消息队列吗?

  • 那你说一下你们在项目里是怎么用消息队列的?

  • 那你们为什么使用消息队列啊?

  • 那你说说用消息队列都有什么优点和缺点?

  • kafka、activemq、rabbitmq、rocketmq都有什么区别?

  • 那你们是如何保证消息队列的高可用啊?

  • 如何保证消息不被重复消费啊?如何保证消费的时候是幂等的啊?

  • 如何保证消息的可靠性传输啊?要是消息丢失了怎么办啊?

  • 那如何保证消息的顺序性?

  • 如何解决消息队列的延时以及过期失效问题?

  • 消息队列满了以后该怎么处理?

  • 为什么要使用 RabbitMQ?

  • RabbitMQ 应用场景?

  • MQ 的空间与时间解耦是什么?

  • 常用的主流消息中间件都有哪些?

  • 如何构建一个简单的生产者与消费者模型?

Netty

  • BIO、NIO和AIO的区别?

  • NIO的组成?

  • Netty的特点?

  • Netty的线程模型?

  • TCP 粘包/拆包的原因及解决方法?

  • 了解哪几种序列化协议?

  • 如何选择序列化协议?

  • Netty的零拷贝实现?

  • Netty的高性能表现在哪些方面?

  • NIOEventLoopGroup源码?

网络

  • 说说 TCP 三次握手和四次挥手?

  • Nginx 反向代理实现高并发的具体步骤是什么?

  • Nginx 搭建 Tomcat 集群的核心配置应该怎么写?

  • nginx服务器的web请求处理机制是怎么样的

  • 如何优化nginx?

Spring

  • 什么是 Spring 框架?Spring 框架有哪些主要模块?

  • 使用 Spring 框架能带来哪些好处?

  • BeanFactory 和 ApplicationContext 有什么区别?

  • 请解释 Spring Bean 的生命周期?

  • IoC 属于哪种设计模式?

  • 谈谈你对 Spring IoC 和 DI 的理解,它们有什么区别?

  • 简单谈谈IoC 容器的原理。

  • Spring Bean 的作用域之间有什么区别?

  • IoC 容器自动完成装载,默认的方式是?

  • Spring AOP 的原理是什么?都有哪些具体的应用场景?

  • Spring 框架中有哪些不同类型的事件?

  • FileSystemResource 和 ClassPathResource 有何区别?

  • Spring 框架中都用到了哪些设计模式?

  • Spring 有几种配置方式?

  • bean的scope有几种类型?请详细列举。

  • 说说 IoC中的继承和 Java 继承的区别。

  • IoC中car 对象的配置如下,现在要添加 user 对象,并且将 car 注入到 user 中,正确的配置是?

  • 请分别写出 IoC 静态工厂方法和实例工厂方法的配置。

  • IoC 自动装载有几种方式?

  • 请解释 Spring Bean 的自动装配?

  • 请解释自动装配模式的区别?

  • 如何开启基于注解的自动装配?

Spring MVC

  • 简单谈谈你对 MVC 的理解。

  • 什么是 Spring MVC ?简单介绍下你对 Spring MVC 的理解?

  • Spring MVC 的优点有哪些?Spring MVC

  • Spring MVC 的核心组件有哪些?

  • Spring MVC 的实现流程是什么?Spring MVC

  • Spring MVC 怎么样设定重定向和转发的?

  • 如何解决 POST 请求和 GET 请求的中文乱码问题?

  • @ModelAttribute 注解应该如何使用?

Spring Boot

  • 谈谈你对 Spring Boot 的理解?

  • Spring Boot 的优势是什么?为什么要使用 Spring Boot?

  • Spring Boot 的配置文件有几种格式?区别是什么?

  • 谈谈你知道的 Spring Boot 核心注解。

  • 如何自动开启 Spring Boot 各个组件?

  • Spring Boot 中 starter 的原理是什么?

  • Spring Boot 不能使用 XML 配置,这句话对吗?

  • 什么是 Thymeleaf?

Spring Cloud

  • 什么是 Spring Cloud?

  • Spring Cloud 和 Spring 之间有什么关联关系?

  • Spring Cloud 实现服务注册和发现的原理是什么?

  • Ribbon 和 Feign 有什么区别?

  • 为什么要使用 Spring Cloud 熔断器,它的作用是什么?

  • 什么是 Hystrix?

  • Eureka 和 ZooKeeper 有哪些区别?

  • 为什么要使用负载均衡?

  • Spring Cloud 实现服务注册和发现的具体流程是什么?

  • 为什么要使用 Spring Cloud ,它有哪些优势?

MyBatis

  • 简单谈谈你对 Mybatis 的理解?

  • 说说你项目中用到mybatis的架构?

  • 如果不用mybatis,你会选择什么框架来代替

  • MyBatis 有几种分页方式?

  • MyBatis 在实际项目开发中会与 Spring MVC 整合使用。

  • 除了和spring整合之外,你还和哪些框架做过整合,如何实现的?

  • MyBatis 接口绑定的优点是什么?

  • 实现 MyBatis 接口绑定分别有哪几种方式?

  • MyBatis 如何实现一对一关联关系?

  • MyBatis 如何实现一对多关联关系?

  • 说说 MyBatis 动态 SQL 的具体使用步骤?

  • MyBatis 与 Hibernate 的区别是什么?

  • MyBatis 如何实现模糊查询?

dubbo

  • dubbo是什么

  • dubbo能做什么

  • dubbo如何解决服务调用链过长的问题?

  • dubbo说说核心的配置有哪些?

  • dubbo集群容错怎么做?

  • dubbo在使用过程中都遇到了些什么问题?如何解决的?

  • dubbodubbo 和 dubbox 之间的区别?

  • dubbo默认使用的是什么通信框架,还有别的选择吗?

  • dubbo一般使用什么注册中心?还有别的选择吗?

  • dubbo默认使用什么序列化框架,你知道的还有哪些?

  • dubbo服务提供者能实现失效踢出是什么原理?

  • dubbo服务上线怎么不影响旧版本?

微服务

  • 谈谈你对微服务的理解。

  • 使用 layui 的数据表格组件展示业务数据,后台实体类应该如何定义?

  • JPA 和 Spring Data JPA 是一回事吗?

  • 如果要给项目添加权限管理系统,一般包含哪些需求?

  • 微服务分别有哪些优点,哪些缺点?

  • 谈谈微服务之间是如何实现通信的。

  • Spring Boot 如何集成 MyBatis?

  • 微服务架构的拆分都有哪些原则?

  • Feign 和 Ribbon+RestTemplate 的区别是什么?

  • 微服务中,那些做法你会觉得比较好(最佳实践)


以上是关于测试工程师面试常问的问题都有哪些的主要内容,如果未能解决你的问题,请参考以下文章

面试软件测试常问的4个问题,你Get了吗?

java工程师面试常问的多线程问题推荐

大厂面试常问的前端工程师面试手册,面试必备!

留学美国常见面试问题都有哪些

性能测试:性能测试岗位常见面试题

自动化测试工程师面试必问的异常处理