这里写目录标题
- 答案对错自辨,文明观看,有错给我说我改
- 1.白盒测试/黑盒测试
- 2.测试流程
- 3.bug流程
- 4.压力测试
- 5.selenium原理
- 6.选取元素方法
- 7. servlet生命周期
- 8. Java线程池
- 9.状态码
- 10.抽象类/接口
- 11.sql查询id重复的人
- 12.单例模式
- 14.你了解的测试
- 15.求学生总数
- 16Linux,常用指令
- 17.hashmap的结构
- 18.treemap的key值是否可以为空
- 19. 怎么启动一个线程
- 20. 实现多线程有哪几种方式,继承Thread类和实现runnable接口有什么区别
- 21.创建线程的方法
- 22.自己测试怎么考虑设计测试用例
- 23.对测开的理解
- 24.知道哪些测试工具
- 25.postman怎么用的,用过哪些功能
- 26.对自动化测试的了解
- 27什么样的情况适合做web自动化测试,什么时候不适合
- 28需求临上线发现个bug,开发说不要紧,怎么办
- 29. 怎么生成测试报告
- 30HTML报告
- 31输入url到显示页面的过程
- 32.postman接口测试,调用接口权限之前如何进行身份认证
- 33. 测试工程师具备哪些能力
- 34.1个客户端500个用户,500个客户端500个用户,客户端同时对服务器施压,有什么区别?
- 35.场景题:携程10月1日9:30上线一个跟团游秒杀活动,10点活动截至,测试重点是什么(性能测试,服务器能否承载预估的人流量)
- 36手撕:输出字典
- 37.手撕:冒泡或快排
- 38.JAVA三大特性
- 39序 选择排序
- 40.强引用弱引用
- 40.软件质量怎么把关
- 41自动化测试框架
- 42、计算机网络里有哪些协议
- 43.让你测一款浏览器,一周内完成任务,你如何规划测试流程
- 44.给你50个测试用例,时间很紧,你怎么选择浏览器版本并如何规划测试任务完成最终交付(这个问题一直在挖,疯狂的试探,整个流程一直在针对这个问题问我如何进行)
- 45场景题:测试微信转发消息功能
- 46.题:10000以内能被自身每一位数字整除的数字
- 47.质数
- 50.测试用例去冗余
- 51http协议有哪些方法以及作用
- 52get和post的区别是什么
- 53.浏览器里cookie、session和token的区别
- 54.mysql里有哪些锁
- 55错误推测法如何理解
- 56 设计测试用例:页面上有一个搜索框和搜索按钮,下方是搜索结果列表展示的各个产品信息(包括预定按钮、价格、产品名称、标签等)、底部的翻页按钮(上一页、下一页、第一页、第二页...、最11后一页)
答案对错自辨,文明观看,有错给我说我改
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