See You Again

常用测试开发面试题

职业发展类

为什么选择测试开发岗?

职业发展通道更广,高级的测试人员需要懂代码,我个人也喜欢写代码,做一些比较酷的东西。

软素质

自己的优缺点?

TODO

基本测试理论

破坏性,证明程序有错,贯穿于整个软件的生命周期。
质量的纬度:功能性、易用性、兼容性、可靠性🌟、性能🌟、容量🌟、可测量性🌟、可维护性🌟、可扩展性🌟 (McCall 模型)

质量保证策略

如何以最少的人力、物力、时间达到最佳的测试效果?

策略、计划、方法规范、进度、资源

了解测试对象,确定测试范围,所需资源和日程安排

PDCA 计划-实施-检查-措施

黑盒测试方法?

系统测试

压力测试
容量测试
性能测试
安全测试
容错测试

测试用例

可复用性,有效性,可管理性,继承性,基础性

质量报告

测试覆盖率,缺陷分析,产品总体质量分析,过程分析

自动化

项目管理、团队管理

自动化测试的适用场景?

简单重复性的工作

数据库类

mysql 和 postgresql 的区别?

一个号称最流行,一个号称最先进
PG 对事务的 ACID 支持性更好一点、对 SQL 支持更完善、复制逻辑完善、并发控制完善、性能更好

【重要】连接操作及语句?

集合的概念,交集,左集合+交集,右集合+交集,全集
INNER JOIN、LEFT OUTER JOIN、RIGHT OUTER JOIN、FULL OUTER JOIN

  1. SELECT students.id as sid, students.name as sname, students.class_id, classes.name as cname
  2. FROM students
  3. INNER JOIN classes
  4. 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,丢失率高

报文格式(查询和响应一样),二进制协议:

  1. ~ host -v www.dinorss.org
  2. Trying "www.dinorss.org"
  3. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32025
  4. ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 0
  5. ;; QUESTION SECTION:
  6. ;www.dinorss.org. IN A
  7. ;; ANSWER SECTION:
  8. www.dinorss.org. 30 IN CNAME dinorss.org.
  9. dinorss.org. 30 IN A 170.106.33.139
  10. Received 63 bytes from 192.168.31.1#53 in 371 ms
  11. Trying "dinorss.org"
  12. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60658
  13. ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
  14. ;; QUESTION SECTION:
  15. ;dinorss.org. IN AAAA
  16. Received 29 bytes from 192.168.31.1#53 in 7 ms
  17. Trying "dinorss.org"
  18. ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22018
  19. ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
  20. ;; QUESTION SECTION:
  21. ;dinorss.org. IN MX
  22. ;; AUTHORITY SECTION:
  23. dinorss.org. 1 IN SOA ns21.domaincontrol.com. dns.jomax.net. 2020123000 28800 7200 604800 600
  24. Received 100 bytes from 192.168.31.1#53 in 8 ms

A IP 地址
NS 域名服务器
CNAME 规范名称,别名

linux 操作系统

常用的命令?列出十个

find grep awk ps top ls sort uniq mv/rm curl ifconfig

source a.shbash a.sh 区别

TODO

虚拟内存的概念

扩展物理内存,以运行比内存大的程序。

进程和线程区别

进程之间的环境(代码段、数据段、堆栈区)是隔离的。
线程则共享进程的环境信息

线程同步

TODO

进程间通讯方式?

系统调度

如何实现线程同步

加锁

实现多线程的方式

TODO

算法类

输入 China,逆序输出

  1. s[::-1]

思路,python 的切片功能

使用 python 求一个数组中,是否有两个数的相加,等于期望值,如果有,输出这两个数的索引。例如:
a = [1, 7, 9, 4, 53, 42] 期望值 62
输出:
2 4

  1. def sum_add_index(l: list, sum: int) -> tuple:
  2. for i, v1 in enumerate(l):
  3. for j, v2 in enumerate(l[i+1:]):
  4. if (v1 + v2) == sum:
  5. return i, j + i + 1
  6. return 0, 0

实现一个栈?

  1. class Stack():
  2. def __init__(self):
  3. self.data = []
  4. def push(self, el):
  5. self.data.append(el)
  6. def pop(self):
  7. if self.data:
  8. self.data.pop()
  9. def __str__(self):
  10. return str(self.data)

int 型数组排序加去重?

  1. sorted(list(set(l)))

字符串去重?

  1. ''.join(set(s))

给定一个整数,找出重新排列后,下一个比它大的数字,例如输出 1234,输出 1243

至少有两个坑,如果重新排列组合的话,很可能会撑爆内存(试试对一个十位数进行排列🙂,有 n! (阶乘)种可能),但是又不能简单的交换两个相邻数字,例如 12890,应该输出 12908 而不是 12980

TODO

给定一个只包含 ( ) { } [ ] 的字符串,判断是否闭合?

TODO

二叉树翻转?链表翻转

TODO

常用的排序算法?

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 只小白鼠为例,水的编号:

  1. 000
  2. 001
  3. 010
  4. 011
  5. 100
  6. 101
  7. 110
  8. 111

试剂的配置:

  1. 5678
  2. 3478
  3. 2468

反问环节

2021-01-18 喜欢

Copyright © 2015-2021 BY-NC-ND 4.0

回到顶部 ↑