一些测开面试题及答案(个人梳理)

本文整理了测试开发面试中常见的问题,涵盖白盒测试与黑盒测试、测试流程、bug处理、压力测试、selenium原理、线程池、HTTP状态码等多方面,旨在帮助读者理解和准备测开面试。同时,文章还讨论了测试工具如postman的使用,自动化测试的适用场景,以及如何应对紧急bug等情况。
摘要由CSDN通过智能技术生成

这里写目录标题

答案对错自辨,文明观看,有错给我说我改

1.白盒测试/黑盒测试

1.1白盒测试

  • 测试程序的内部的逻辑,结构的实现,是否实现了相应的功能。
  • 单元测试:Junit框架
  • 语句覆盖
  • 逻辑覆盖(判定覆盖,条件覆盖,判定组合,条件组合,判定和条件组合)
  • 路径覆盖
  • 循环覆盖

1.2黑盒测试

  • 不关心软件内部代码的逻辑,结构实现,只关心输入和输出
  • 等价类划分法,边界值分析法 ,因果图法,正交实验法,场景设计法,错误推测法

2.测试流程

  • 第一种答案:1、测试需求分析阶段;2、测试计划阶段;3、测试设计阶段;4、测试执行阶段;5、测试评估阶段。
  • 第二种答案::单元测试、集成测试、确认测试、系统测试、验收测试

3.bug流程

  • 1.测试人员发现bug

  • 2.描述bug
    测试版本
    测试环境(设备,系统)
    测试步骤
    测试数据
    预期结果
    实际结果
    附件(错误截图,错误日志)
    测试方案,

  • 3.开发人员确认是否是bug,是的话修改bug,并改bug状态为已经解决

  • 4.不是的话 ,退回给测试人员并描述退回原因,或为设计如此,或为外部原因,或者不能重现。

  • 5、 开发人员修改完成的bug,由测试人员进行验证,确认修改正确,关闭bug。

  • 6、 验证未通过的bug重新激活,开发人员继续修改,直至验证通过,关闭bug。

  • 7、 测试人员需要对开发人员退回的bug进行确认。

  • 8、 确认不是bug关闭。

  • 9、 如与开发人员意见不一致,认为是bug,需提交项目负责人仲裁。

  • 10、项目负责人确认是bug由开发人员修改,不是bug由测试人员关闭。

参考: bug流程处理

4.压力测试

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
源于:性能与压力测试

响应时间
tps(HTTP per second)
吞吐量
系统运行时占用的系统资源的情况

5.selenium原理

2.selenium原理(3个)
1.测试脚本:python,java编写脚本程序
2.浏览器驱动:不同的驱动对应不同的版本
3.浏览器:IE,Firefox,Chrome,Safari
参考自此处

6.选取元素方法

定位元素的方式
1.id
2.name
3.class-name
4.tag-name
5.link-text
6.partial link text
7.xpath
8.css selector

7. servlet生命周期

1、初始化阶段 , 调用init()方法; 2、响应客户请求阶段, 调用service()方法; 3、终止阶段, 调用destroy()方法。

8. Java线程池

(1)降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。

(2)提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。

(3)提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。
参考此处

9.状态码

1**:请求正在处理

2**:请求成功
200:请求正在处理
204:请求处理成功,但没有任何资源返回给客户端,常用于单向通信
206: 请求成功,响应报文中包含由 Content-Range 指定范围的实体内容

3**:重定向,需要附加操作已完成请求
301:永久重定向,表示请求的资源已经永久的搬到了其他位置
302:临时重定向,表示请求的资源临时搬到了其他位置
303表示请求资源存在另一个URI,应使用GET定向获取请求资源
303功能与302一样,区别只是303明确客户端应该使用GET访问
304:资源已找到,但不满足条件

4**:客户端错误
400:请求存在语法或者参数错误,服务器不理解
403:对请求资源的访问被禁止
404:服务器找不多请求的资源

5**:服务器错误
500:服务器执行请求的时候出错
503:服务器无法处理请求,服务器正在维护或者超负载运行。
源自: 面试问题:常见的http状态码

10.抽象类/接口

一、继承(抽象类/普通类)类与实现接口的区别
1、继承抽象类,必须重写抽象类中所有抽象方法。
2、继承普通类,可以重写也可以不重写父类的方法。
3、实现接口则必须实现接口中的所有方法。(接口中的方法均为抽象方法)。

二、抽象类、接口的区别
1、类要被子类继承,接口要被子类实现。
2、接口里不能定义普通变量,而抽象类中可以,接口只能定义公共的静态常量。
3、抽象类里可以没有抽象方法,可以有普通方法,就算全是普通方法也没关系。
4、普通类和抽象类(它的实例化方式并不是通过普通的new方式来创建对象,而是通过父类的应用来指向子类的实例间接地实现父类的实例化,因为子类在实例化之前,一定会先实例化它的父类。)可以实例化,接口不可以实例化。
原文链接: 原文链接

11.sql查询id重复的人

select * from [表A] where id in (select id from [表A] group by id having count(id) >1 )

12.单例模式

13.1定义

  • 是一种设计模式,在代码中有些对象应该只有一个实例,就称为“单例”
  • eg:数据库的DataSource应该就是一个单例
  • 有些负责加载数据到内存的类也应该是单例
  • 强制性某个类只有一个实例

13.2实现

  • 主要依托于static关键字,静态成员

13.2.1饿汉模式

/**
 * User:yang
 */
public class ThreadDemo16 {
   
    //饿汉模式
    //实例创建出现在类加载阶段
    static class Singleton {
   
        //希望是单例类,只有一个实例

        //县创建一个成员,保存唯一的实例
        private static Singleton instanse = new Singleton();

        //在提供方法获取实例
        public static Singleton getInstance() {
   
            return instanse;
        }

        //把构造方法私有,防止其他代码创建实例
        private Singleton() {
   
        }
    }

    public static void main(String[] args) {
   
//如何获取这个实力
        Singleton singleton=Singleton.getInstance();
    }
}

13.2.2懒汉模式

/**
 * User:yang
 */
public class ThreadDemo17 {
   
    //懒汉模式
    //创建实例是在第一次使用getinstance的时候,比饿汉模式迟
    static class Singleton {
   
        private static Singleton instance = null;

        public static Singleton getInstance() {
   
            if (instance == null) {
   
                instance = new Singleton();
            }
            return instance;
        }

        private 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值