好未来 测试开发一面
时间 :8.8
职位: 测试开发工程师
结果: 一面通过
2021秋招面经汇总: 面经汇总
我的其他文章 : 分享汇总
自我介绍 介绍实习项目
能否介绍一个具体的项目接口
请给这个接口提供测试用例
主要就是从参数的类型,参数的不同值,还有一些边界条件来思考
算法题 859.亲密字符串
题意: 给定两个由小写字母构成的字符串 A
和 B
,只要我们可以通过交换 A
中的两个字母得到与 B
相等的结果,就返回 true
;否则返回 false
class Solution {
public:
bool buddyStrings(string A, string B) {
if(A.size() != B.size()) return false;
int first = -1;
int second = -1;
if(A == B){
unordered_set<int> s;
for(auto x : A){
if(s.count(x)) return true;
s.insert(x);
}
return false;
} else {
for(int i = 0; i < A.size(); i ++){
if(A[i] != B[i]){
if(first == -1){
first = i;
} else if(second == -1){
second = i;
} else {
return false;
}
}
}
if(first == -1 || second == -1) return false;
return A[first] == B[second] && B[first] == A[second];
}
}
};
针对上面的算法题设计一下测试用例
- 包含空字符串的
"ab" " "
- 完全相同的
"aa" "aa"
"ab" "ab"
- 交换一次
"ab" "ba"
"aabc" "aacb"
- 需要交换两次
"bcbc" "cbcb"
- 其他
"bcdf" "cedf"
假如上方的算法题的输入是根据网页上的输入框进行输入的,那么测试用例该是什么呢?
这个应该是考虑网页输入,还有网络,浏览器兼容,还有一些安全方面的因素
聊聊项目中如何优化的SQL语句吧
其实两方面吧,一方面是SQL语句优化,另一方面是通过建立索引去优化表结构
如何找到慢查询
慢查询日志
因为我有说SQL优化可以将JOIN查询拆分成单表查询,JOIN 工作放在内存里面做,所以面试官问了如果海量数据,内存中放不下该怎么办
这个不知道了。。。
写SQL,表中有学员ID, 学科,成绩。求每个学生的平均分
SELECT AVG(成绩) FROM 表名 GROUP BY (ID);
查询及格的科目的平均分
SELECT AVG(成绩) FROM 表名 WHERE 成绩 > 60 GROUP BY(ID);
Linux 知道什么命令
说了基本命令
Top 命令的参数都知道吗
# 时间 CPU负载信息
top - 13:47:32 up 68 days, 2:49, 1 user, load average: 0.09, 0.05, 0.07
# 正在运行的进程 睡眠的进程 停止的进程数 僵死的进程
Tasks: 119 total, 1 running, 84 sleeping, 0 stopped, 0 zombie
# CPU 总体信息
%Cpu(s): 1.3 us, 1.8 sy, 0.0 ni, 96.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
# 内存
KiB Mem : 4039176 total, 1719412 free, 458824 used, 1860940 buff/cache
# 交换空间
KiB Swap: 0 total, 0 free, 0 used. 3283360 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20972 root 10 -10 144656 26612 15288 S 1.3 0.7 752:57.40 AliYunDun
23174 root 20 0 41784 3708 3104 R 0.3 0.1 0:00.02 top
27661 root 20 0 183500 28396 3784 S 0.3 0.7 164:21.29 uwsgi
27662 root 20 0 183500 28396 3784 S 0.3 0.7 164:20.16 uwsgi
27663 root 20 0 183500 28396 3784 S 0.3 0.7 164:04.25 uwsgi
HTTP 协议和 HTTPS 协议的区别
- 端口不同:HTTP使用的是80端口,HTTPS使用443端口;
- HTTP(超文本传输协议)信息是明文传输,HTTPS运行在SSL(Secure Socket Layer)之上,添加了加密和认证机制,更加安全;
- HTTPS由于加密解密会带来更大的CPU和内存开销;
- HTTPS通信需要证书,一般需要向证书颁发机构(CA)购买
参考:Waking-Up
受教了:)
很棒hh
好未来测试都要面算法?
比不了比不了了
对 无论哪个公司测开 都要手撕代码的
测开也不一定是专职测试,好多是要开发测试框架,或者测试工具的,也得编程