字节跳动测开一面

TCP三次握手与四次挥手

TCP三次握手与四次握手感觉是字节跳动的必问题,之前面过一次字节跳动,也问了这个题。

HTTP连接(浏览器点击搜索之后)

http响应过程

字节跳动测开一面_第1张图片

http请求报文

字节跳动测开一面_第2张图片

http响应报文

字节跳动测开一面_第3张图片

测试用例和BUG书写规范

测试用例书写

字节跳动测开一面_第4张图片

BUG书写

bug标题:简明扼要地阐述问题本质
测试设备:使用地设备、操作系统、测试环境、网络类型等
前提条件:明确指出BUg是在什么情况下产生的
测试步骤:简明清晰分步骤描述如何复现Bug,步骤用序号编排(点击用->连接)
期望结果:按照产品需求清晰的填写预期结果
实际结果:实际结果、复现步骤及出现概率
截图和附件:UI类型,上传截图,并增加相应的红框标识;功能类型,视频文件:崩溃类型,视频和log
项目名称:名称+版本号
Bug所属项目和模块
严重等级:紧急、严重、一般、微小
优先级:P1,P2,P3,P4
Bug状态:New,Open,Fixed,Rejected,Delay,Closed,Reopen

怎样判断链表有没有环

判断单向链表是否有环

两种思路

  1. 设置一个集合(或列表),每次访问将结点放到其中,遍历链表,如果结点已经在集合中,证明已经访问过,存在环。
  2. 设置两个指针,fast 和slow,fast指针一次走两步,slow指针一次走一步,如果两个指针相遇,证明有环,如果fast都走到null了,还没相遇,则证明无环。
class Node():  # 定义一个Node类,构造两个属性,一个是item节点值,一个是节点的下一个指向
    def __init__(self, item=None):
        self.item = item
        self.next = None
##利用集合判断是否有环
def findbeginofloop_1(head):
    """
    :param head: 链表头
    :return: True:有环,False 无环
    """
    first = head
    flag = set()
    while first:
        if first  not in flag:
            flag.add(first)
        else:
            return first
        first = first.next
    return False

#利用两个指针
def findbeginofloop_2(head):
    fastp = head
    slowp = head
    isloop = False
    while fastp and fastp.next and slowp:
        fastp = fastp.next.next
        slowp = slowp.next
        if fastp == slowp:   ##有环
            isloop = True
            break

    if isloop == True:
        fastp = head
        while fastp != slowp:  ##找出环的入口
            fastp = fastp.next
            slowp = slowp.next
        return fastp
    return False


if __name__ == "__main__":
     node1 = Node(1)
     node2 = Node(2)
     node3 = Node(3)
     node4 = Node(4)
     node5 = Node(5)
     node1.next = node2
     node2.next = node3
     node3.next = node4
     node4.next = node5
     node5.next = node2
     print(findbeginofloop_2(node1).item)

性能测试的指标

性能测试参考文章
前端主要关注:
响应时间
加载速度
电量
流量
后端主要关注:
响应时间
并发用户数
内存占用:APP的内存开销
TPS(吞吐率)(Transaction per second,每秒事务数)
错误率
资源消耗:CPU占用率、内存使用率、磁盘I/O、网络I/O

python 复制、深拷贝与浅拷贝

  1. 复制
    直接赋值,默认浅拷贝传递对象的引用而已,原始列表改变,被赋值的b也会做相同的改变。

  2. copy浅拷贝 父对象不变,子对象变

  3. 深拷贝(需要导入copy模块)copy.deepcopy() 父子对象都不变 完全拷贝了父对象及其子对象,两者是完全独立



# 直接赋值 对象的别名 b和list1指向同一个对象
list1 = [1,2,3,[2,3]]
b = list1
print("直接赋值")
b.append("dhuu")
print(list1)
print(b)

## 浅拷贝
print("浅拷贝,父对象不变")
b2 = list1.copy()
list1.append("b2")
print(list1)
print(b2)
print("浅拷贝,子对象会变")
b2[3].append("子对象")
print(list1)
print(b2)

import copy
## 深拷贝
print("深拷贝,a 和 b 完全拷贝了父对象及其子对象,两者是完全独立的。")
b3 = copy.deepcopy(list1)
list1.append("b3")
list1[3].append("b3")
print(list1)
print(b3)

linux创建文件

参考菜鸟教程

你可能感兴趣的:(测开面试经验)