为什么选择测试开发岗?
职业发展通道更广,高级的测试人员需要懂代码,我个人也喜欢写代码,做一些比较酷的东西。
自己的优缺点?
TODO
破坏性,证明程序有错,贯穿于整个软件的生命周期。
质量的纬度:功能性、易用性、兼容性、可靠性🌟、性能🌟、容量🌟、可测量性🌟、可维护性🌟、可扩展性🌟 (McCall 模型)
质量保证策略
如何以最少的人力、物力、时间达到最佳的测试效果?
策略、计划、方法规范、进度、资源
了解测试对象,确定测试范围,所需资源和日程安排
PDCA 计划-实施-检查-措施
黑盒测试方法?
系统测试
压力测试
容量测试
性能测试
安全测试
容错测试
测试用例
可复用性,有效性,可管理性,继承性,基础性
质量报告
测试覆盖率,缺陷分析,产品总体质量分析,过程分析
自动化
项目管理、团队管理
自动化测试的适用场景?
简单重复性的工作
mysql 和 postgresql 的区别?
一个号称最流行,一个号称最先进
PG 对事务的 ACID 支持性更好一点、对 SQL 支持更完善、复制逻辑完善、并发控制完善、性能更好
【重要】连接操作及语句?
集合的概念,交集,左集合+交集,右集合+交集,全集
INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN
SELECT students.id as sid, students.name as sname, students.class_id, classes.name as cname
FROM students
INNER JOIN classes
ON students.class_id = classes.id;
数据库事务及 ACID 特性?
一系列数据库操作构成的完整逻辑过程,ACID 是衡量事务的四个纬度:
A:原子性,要么都完成,要么失败,不可分割
C:一致性,事务执行开始前及结束后,数据库没有被破坏,例如约束、触发器
I:隔离性,多个事务可以并发执行
D:持久性,对数据对修改是永久的,持久化的过程中突然断电或宕机,重启后根据日志恢复
隔离级别:
索引
不建议索引的情况:
索引失效的坑:
参考文章 数据存储 1:数据库索引的原理及使用策略
浏览器输入一个域名,发生了什么?
手机打不开某个站点,如何排查?
为微信朋友圈点赞、朋友圈、发图片、发送表情功能设计测试用例?
TODO
测试一个朋友圈,如果A给B点赞,但是B没有看到A给B点赞可能的原因?对于一个不成熟的朋友圈,现在有十个人进行测试,该怎么确定是哪里的问题
TODO
最近看了什么书?
好久没看书了,都是应用开发。
tcp 协议,3次握手,4次挥手机制?
三次握手:SYN -> SYN + ACK -> ACK
四次挥手:
FIN -> ACK -> FIN -> ACK
ip 地址,第一个字节可以是 269 吗?
TODO
http 请求方式有哪些及区别?
get
post
head
(只要 header,不要 body )put
patch
delete
connect
trace
options
udp 和 tcp 区别?tcp 如何保证可靠性
UDP 无连接的、不可靠传输,需要自己处理超时和重传机制。
TCP 面向连接的、可靠的传输
拥塞控制?
TODO,这个比较难说
http 和 https 区别?
多了加密层,SSL / TLS
dns 协议?
分布式的数据库,地址解析器完成从域名到 IP 的转换,两个方法 gethostbyname
gethostbyaddr
。
应用层协议,地址解析器通过 UDP / TCP 与域名服务器通讯。
对于较大的数据包,超过 MTU,丢失率高
报文格式(查询和响应一样),二进制协议:
➜ ~ host -v www.dinorss.org
Trying "www.dinorss.org"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32025
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;www.dinorss.org. IN A
;; ANSWER SECTION:
www.dinorss.org. 30 IN CNAME dinorss.org.
dinorss.org. 30 IN A 170.106.33.139
Received 63 bytes from 192.168.31.1#53 in 371 ms
Trying "dinorss.org"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60658
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;dinorss.org. IN AAAA
Received 29 bytes from 192.168.31.1#53 in 7 ms
Trying "dinorss.org"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22018
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;dinorss.org. IN MX
;; AUTHORITY SECTION:
dinorss.org. 1 IN SOA ns21.domaincontrol.com. dns.jomax.net. 2020123000 28800 7200 604800 600
Received 100 bytes from 192.168.31.1#53 in 8 ms
A IP 地址
NS 域名服务器
CNAME 规范名称,别名
常用的命令?列出十个
find
grep
awk
ps
top
ls
sort
uniq
mv/rm
curl
ifconfig
source a.sh
和bash a.sh
区别
TODO
虚拟内存的概念
扩展物理内存,以运行比内存大的程序。
进程和线程区别
进程之间的环境(代码段、数据段、堆栈区)是隔离的。
线程则共享进程的环境信息
线程同步
TODO
进程间通讯方式?
系统调度
如何实现线程同步
加锁
实现多线程的方式
TODO
输入
China
,逆序输出
s[::-1]
思路,python 的切片功能
使用 python 求一个数组中,是否有两个数的相加,等于期望值,如果有,输出这两个数的索引。例如:
a = [1, 7, 9, 4, 53, 42] 期望值 62
输出:
2 4
def sum_add_index(l: list, sum: int) -> tuple:
for i, v1 in enumerate(l):
for j, v2 in enumerate(l[i+1:]):
if (v1 + v2) == sum:
return i, j + i + 1
return 0, 0
实现一个栈?
class Stack():
def __init__(self):
self.data = []
def push(self, el):
self.data.append(el)
def pop(self):
if self.data:
self.data.pop()
def __str__(self):
return str(self.data)
int 型数组排序加去重?
sorted(list(set(l)))
字符串去重?
''.join(set(s))
给定一个整数,找出重新排列后,下一个比它大的数字,例如输出 1234,输出 1243
至少有两个坑,如果重新排列组合的话,很可能会撑爆内存(试试对一个十位数进行排列🙂,有 n!
(阶乘)种可能),但是又不能简单的交换两个相邻数字,例如 12890,应该输出 12908 而不是 12980
TODO
给定一个只包含 ( ) { } [ ] 的字符串,判断是否闭合?
TODO
二叉树翻转?链表翻转
TODO
常用的排序算法?
选择排序,每次选一个最小值出来
冒泡排序,不断比较交换左右元素,每次选出最大的一个
插入排序,类比打牌,从未排序序列中取一个数,插入到已排序的序列中
快速排序,通过一次排序,将序列分为两部分,其中一部分比另一部分都要小,此时中轴元素有序
希尔排序,优化的插入排序,交换不相邻的元素。先让间隔 h 的分组有序,然后不断缩小 h,h/2,h/4 直到 1,有点二分的思想?
归并排序,分治思想,有点二分的思想
堆排序
计数排序,最大值和最小值差异小的情况
桶排序,先分桶,各自排序后合并
计数排序,先以个位数分桶排序,然后十位数、百位数
n:数据规模
k:”桶”的个数
In-place:占用常数内存,不占用额外内存
Out-place:占用额外内存
稳定性:排序后 2 个相等键值的顺序和排序之前它们的顺序相同
查找算法?
首先对目标进行排序
数据结构有哪些?
堆、栈、队列、链表、数组、树、图
7 升水容器和 11 升水容器怎么倒出 2 升?不借助其他容器
来回倒腾,思路?4 8 1 5 9 2
有1000瓶水,其中有1瓶水有毒,现有10只小白鼠,中毒反应在第七天显示出来,请问如何在第七天测试出哪一瓶水有毒?【问题有变种】
每只小白鼠的生死代表二进制的位 0 或者 1,10只能表达 1024 种状态。
难点是如何把 1000 瓶水混合配置成 10 瓶试剂,每一瓶试剂是 500 瓶水的混合。
以 8 瓶水,3 只小白鼠为例,水的编号:
000
001
010
011
100
101
110
111
试剂的配置:
5678
3478
2468
Copyright © 2015-2022 BY-NC-ND 4.0