测试
业务测试
code review
人工检查关注的内容:
1、配置文件
2、循环中止条件
3、第三方库
4、判断对象为空
常见工具
文档
关注的点:
1、确认
2、有eg
API
入参出参
返回值校验
异常场景
落值
数据入库
时效性
log
1、是否有错误日志
2、通过log观察代码逻辑
专项测试
接口自动化/部署自动化
性能/压力
压力指标如何设定
单接口压测和场景压测(场景化压测如何设置)
压测的策略?
压测数据(关注哪个数据)
机器指标:CPU 内存 IO
业务指标:各阶段耗时 请求数 QPS 空占比 错误占比 logerror对比 平均耗时
稳定性
长时间模拟真实用户访问系统观察指标
强依赖、弱依赖故障能否正常进行
降级处理
监控报警
批量
正常流量下 数据占比:空占比、错误占比
diff
相同请求针对不同版本不同环境测试结果对比
开发
语言栈
语法
java
python
底层原理
框架
springboot
hashmap
-1.7和1.8的区别和优化
-解决哈希碰撞
-hash表扩容
rpc
rpc http区别
1、rpc二进制流
2、rpc属于传输层
3、微服务,把服务名和ip映射
关于rpc问题:
1、什么是rpc,rpc远程过程调用,从远程计算程序上获取服务
2、rpc的优势:
可以自定义的TCP通信协议,报文体积小传输快
可以基于thrift实现高效的二进制传输
自带了负载均衡策略(?)
能做到自动通知,不影响上游(?)
中间件
mysql
-sql查询语句
-索引
-慢查询 explain
kafka
优势:解耦、缓冲、高可用、异步
吞吐量大的原因:partition机制(?)
redis
-数据存储
-数据时效性测试
算法
字符串
链表
树
排序
服务架构
微服务
设计模式
单例模式
//懒汉模式
public class Singleton1 {
private static Singleton1 instance = null;
private Singleton1() {
}
public static Singleton1 getInstanceA() {
if (null == instance) {
instance = new Singleton1();
}
return instance;
}
}
//饱汉模式
public class Singleton2 {
private static final Singleton2 instance = new Singleton2();
private Singleton2() {
}
public static Singleton2 getInstance() {
return instance;
}
}
//枚举模式
public enum Singleton {
INSTANCE;
public void doSomething(){
//todo doSomething
}
}
工厂模式
消费者/生产者
观察者