某公司自动化测试3面

公司,自动化,测试 · 浏览次数 : 68

小编点评

```python class Solution: def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None: \"\"\ Do not return anything, modify nums1 in-place instead. \"\"\ # nums1 = nums1[:m]+nums2 while m >0 and n > 0: if nums1[m-1]>nums2[n-1]: nums1[m+n-1] = nums1[m-1] m = m-1 else: nums1[m+n-1] = nums2[n-1] n = n-1 if m == 0: nums1[:n]=nums2[:n]。归纳总结以上内容,生成内容时需要带简单的排版 ``` 这代码首先对 nums1 和 nums2 进行合并,然后对合并后的数组进行排序。最终,生成内容时需要带简单的排版。

正文

某公司自动化测试3面

仅供参阅,并不提供参考答案,上课的时候多数讲解过
算法题给了你一个参考,都是力扣上的

一面

1. 自我介绍
2. 关于自动化:怎么做的,目前的进展,效果如何,遇到的困难
3. 你的框架搭建,最初是考虑了哪些因素去设计的
4. 如何维护自动化case?
5. 有没有用mock去解决问题?
6. 说说你工作以来做过的这些业务,你觉得在保证质量工作中,存在的差异性
7. 你在工作中发现的问题,自己做了什么事情去推动
8. 沟通下来,觉得你们流程问题还是比较多的,纯靠手工去保证么?
9. 开发冒烟执行后,测试如何判断是否通过
10. 算法题:判断15张扑克牌,随机5张,大小王任意配,是否是顺子
11. 看你用python多,聊聊python的一些数据结构,常用方法等等,都可以说
12. python中浅拷贝、深拷贝
13. 测试的接口都是什么协议的,对http协议有进一步了解么
14. 问代码是怎么学的?

二面

1. 自我介绍
2. 平时如何做测试工作的
3. 流程,规范相关
4. 推进遇到的难点,分析,解决
5. 聊聊最近印象深刻的项目或者bug
6. 聊聊自动化如何实施的,使用场景。针对你回答,抓细节点深问
7. 关于QA如何验证开发冒烟测试通过的方式
8. 问了数据库,索引。 优点缺点、常见索引类型、索引最左前缀原理
9. Redis缓存击穿,雪崩
10. 问了java相关基础,多线程
11. sql题:数据库单表查询,主要考察group by用法
12. 算法题:合并有序数组
13. 反问环节

三面

1. 自我介绍
2. 算法题:给定一个数组,判断是否有重复数据,最少3种方法实现。
3. 聊平常的工作内容,具体哪些业务,系统架构,如何交互
4. 用到消息队列,跟接口交互有什么区别,优缺点
5. 抓住简历上的项目,和你回答的内容,继续深问
6. 问你之前XX项目的测试重点是什么
7. 涉及到性能测试的,如何进行测试,关注哪些点,指标
8. 用例设计题:一个新客、老客、转新购买活动商品减优惠的需求
9. 聊做了哪些工具,怎么做的,前后端用到了什么
10. 自动化 怎么做的,做了哪些,测试数据是放在哪里。
11. 多接口串联的场景,自动化要怎么做?

算法题

LeetCode 217存在重复元素

  • 题目

    给你一个整数数组 nums 。如果任一值在数组中出现 至少两次 ,返回 true ;如果数组中每个元素互不相同,返回 false 。
     
    
    示例 1:
    
    输入:nums = [1,2,3,1]
    输出:true
    示例 2:
    
    输入:nums = [1,2,3,4]
    输出:false
    示例 3:
    
    输入:nums = [1,1,1,3,3,4,3,2,4,2]
    输出:true
     
    
    提示:
    
    1 <= nums.length <= 105
    -109 <= nums[i] <= 109
    
    • 这道题有个变种,有的会让你返回重复的那个数的值,若存在多个,随便返回一个即可
  • 思路

    • 方案1:排重后看列表长度是否有变化

    • 方案2:哈希表,一个个放入,直到有重复

    • 方案3:排序后遍历,比较nums[n]和nums[n+1]

  • 题解1

    class Solution:
        def containsDuplicate(self, nums: List[int]) -> bool:
            return len(nums)!=len(set(nums))
    
  • 题解2

    class Solution:
        def containsDuplicate(self, nums: List[int]) -> bool:
            s = set()
            for num in nums:
                if num not in s:
                    s.add(num)
                else:
                    return True
            return False
    
  • 题解3

    class Solution:
        def containsDuplicate(self, nums: List[int]) -> bool:
            nums.sort()
            length = len(nums)
            for i in range(length-1):
                if nums[i]==nums[i+1]:
                    return True
            else:
                return False
    

剑指 Offer 61. 扑克牌中的顺子

  • 题目

    从若干副扑克牌中随机抽 5 张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。
    
     
    
    示例 1:
    
    输入: [1,2,3,4,5]
    输出: True
     
    
    示例 2:
    
    输入: [0,0,1,2,5]
    输出: True
     
    
    限制:
    
    数组长度为 5 
    
    数组的数取值为 [0, 13]
    
  • 思路

    • 仔细读题(做了半天这里还有一个隐含条件,题目没有讲清楚),5张牌中不应该出现超过2个大小王。

    • 所以无非是三种情况

      • 无大小王: 12345
      • 1个大小王,连续的4个数字+0或者跳开1个数字
      • 2个大小王,最复杂连续的3个+00,跳开1个数字+0,跳开2个数字+0 ......
    • 这样想的确容易被绕进去,组合非常多,而且没有太大的规律,难道要用递归?

    • 换个角度,有一种约束可以这样表达

      • 不应该出现重复的数字,除了0

      • 如果不重复,那除了0之外的,最大值和最小值的差<5

        01234
        01235
        
        00135
        00123
        00124
        
    • 题解

      class Solution:
          def isStraight(self,nums) -> bool:
              while True:
                  try:
                      nums.remove(0)
                  except:
                      break # 移除0 当然方法很多
              if len(nums) == len(set(nums)): # 看余下数字是否有重复,没有的话(长度不变)
                  return max(nums) - min(nums) < 5 # 那最大值-最小值应该<5
              else:
                  return False
      
      

88. 合并两个有序数组

  • 题目

    给你两个按 非递减顺序 排列的整数数组 nums1 和 nums2,另有两个整数 m 和 n ,分别表示 nums1 和 nums2 中的元素数目。
    
    请你 合并 nums2 到 nums1 中,使合并后的数组同样按 非递减顺序 排列。
    
    注意:最终,合并后数组不应由函数返回,而是存储在数组 nums1 中。为了应对这种情况,nums1 的初始长度为 m + n,其中前 m 个元素表示应合并的元素,后 n 个元素为 0 ,应忽略。nums2 的长度为 n 。
    
     
    
    示例 1:
    
    输入:nums1 = [1,2,3,0,0,0], m = 3, nums2 = [2,5,6], n = 3
    输出:[1,2,2,3,5,6]
    解释:需要合并 [1,2,3] 和 [2,5,6] 。
    合并结果是 [1,2,2,3,5,6] ,其中斜体加粗标注的为 nums1 中的元素。
    示例 2:
    
    输入:nums1 = [1], m = 1, nums2 = [], n = 0
    输出:[1]
    解释:需要合并 [1] 和 [] 。
    合并结果是 [1] 。
    示例 3:
    
    输入:nums1 = [0], m = 0, nums2 = [1], n = 1
    输出:[1]
    解释:需要合并的数组是 [] 和 [1] 。
    合并结果是 [1] 。
    注意,因为 m = 0 ,所以 nums1 中没有元素。nums1 中仅存的 0 仅仅是为了确保合并结果可以顺利存放到 nums1 中。
     
    
    提示:
    
    nums1.length == m + n
    nums2.length == n
    0 <= m, n <= 200
    1 <= m + n <= 200
    -109 <= nums1[i], nums2[j] <= 109
     
    
    进阶:你可以设计实现一个时间复杂度为 O(m + n) 的算法解决此问题吗?
    
  • 思路

    • 暴力的做法很简单,合并2个数组(注意nums1只需取前面m个数)
    • 然后对合并后的数组排序即可
  • 题解1

    class Solution:
        def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
            """
            Do not return anything, modify nums1 in-place instead.
            """
            # nums1 = nums1[:m]+nums2
            nums1[m:] = nums2
            nums1.sort()
    
  • 题解2

    • 如果两个数组从开头向结尾(数字从小到大)进行比较,那么每次把比较之后的数字放置到 nums1 中的前面,则需要把 nums1 中后面的元素向后移动。移动次数比较多。

    • 如果两个数组从结尾向开头(数字从大到小)进行比较,那么每次把比较之后的数字放置到 nums1 中的后面,由于后面的数字本身就是提供出来的多余的位置,都是 0,因此不需要对 nums1 进行移动。

    • 如果nums1[m-1]比nums2[n-1]大,那么nums1[m+n-1]换为nums1[m-1],m左移

      nums1   1,2,3,0,0,0  m=3
      nums2   2,5,6        n=3
      R1 比较 3(nums1[3-1]) 和 6  , 6 大 所以 nums1[5] = nums2[2]
      	 m-- (此时m=2,n=3)
      R2 比较 3 和 5 , 5 大 , 所以 nums1[4] = nums2[1]
      	 m-- (此时m=1,n=3)
      R3 比较 3 和 2,  3 大, 所以 nums1[3] = nums1[2]
           n-- (此时m=1,n=2)
      
    • 如果nums1[m-1]比nums2[n-1]小,那么nums1[m+n-1]换为nums2[n-1],n左移

    • 当m或n为0的时候,循环就退出了,但要想清楚m为0的时候说明n可能不为0,说明nums2还有数据都小,那nums1还有n个位置,要用nums2[:n]来替换

    • 但当n为0的时候nums1余下的数不需要做任何处理的

    class Solution:
        def merge(self, nums1: List[int], m: int, nums2: List[int], n: int) -> None:
            """
            Do not return anything, modify nums1 in-place instead.
            """
            # nums1 = nums1[:m]+nums2
            while m >0 and n > 0:
                if nums1[m-1]>nums2[n-1]:
                    nums1[m+n-1] = nums1[m-1]
                    m = m-1
                else:
                    nums1[m+n-1] = nums2[n-1]
                    n = n-1
            if m == 0:
                nums1[:n]=nums2[:n]
    
    

与某公司自动化测试3面相似的内容:

某公司自动化测试3面

# 某公司自动化测试3面 > 仅供参阅,并不提供参考答案,上课的时候多数讲解过 > 算法题给了你一个参考,都是力扣上的 ## 一面 ```text 1. 自我介绍 2. 关于自动化:怎么做的,目前的进展,效果如何,遇到的困难 3. 你的框架搭建,最初是考虑了哪些因素去设计的 4. 如何维护自动化ca

【设计模式】观察者模式

设计模式 【设计模式】工厂方法模式 【设计模式】抽象工厂模式 【设计模式】单例模式 【设计模式】策略模式 【设计模式】观察者模式 一、介绍 观察者模式是一种行为设计模式,当一个对象的状态发生改变时,依赖(观察)它的对象会接收到通知,并进行自动的更新操作。 举例:某公司发布了一款新的手机,性能很强大,

2022年终总结

这是工作的第三年了,IT人的三年之痒,亦或许是觉得自己翅膀硬了,我辞去了毕业后第一份国企工作,投奔了某IT大厂 一、变化 这一年,我从泉城济南,来到了成都;离家的距离从1500公里+缩减到了,700公里,以后回家可以考虑飞机以外的交通工具了。 职业上,从纯开发,逐渐向自动化、测试工具开发靠拢,感觉上

某公司技术经理媚上欺下,打工人应怼尽怼,嘤其鸣兮,求其友声!

最近的事情大家都晓得了,某公司技术经理媚上欺下,打工人应怼尽怼,不亦快哉!不亦壮哉!所谓媚上者必欺下!古人诚不我欺!技术经理者,公然在聊天群里大玩职场PUA,气焰嚣张,有恃无恐,最终引发众怒,嘿嘿,技术经理,团队领导,原来团队领导这四个字是这么用的:奴媚显达、构陷下属,人文具损、逢迎上意、傲然下欺,装腔作势、极尽投机,父他人之父、慷他人之慨……如此者,可谓“团队领导”也。

CF466E Information Graph 题解

题目链接 Luogu Codeforces 题意简述 某公司中有 \(n\) 名员工。为方便起见,将这些员工从 1 至 \(n\) 编号。起初,员工之间相互独立。接下来,会有以下 \(m\) 次操作: 员工 \(y\) 成为员工 \(x\) 的上司。保证此前 \(x\) 没有上司。 员工 \(x\)

记一次线上Redis内存占用过高、大Key问题的排查

问题背景 在一个风和日丽的下午,公司某项目现场运维同学反馈,生产环境3个Redis的Sentinel集群节点内存占用都很高,达到了17GB的内存占用量。 稍加思索,应该是某些Key的Value数据体量过大,占用了过多的内存空间,我们在使用Redis的过程中,单个Value或者单个集合中的元素应该保证

程序员转做产品第一试--供应链计划

一:供应链开发的背景 1、作者就职的公司在某行业迅猛的发展,为了实现价值链的目标,公司提出了数字化,智能化,智慧化的IT,OT规划。 主线围绕着《基础信息领域》,《产品研发领域》,《供应链领域》,《智能制造领域》四个方面开展。 其中每个领域下有相当多的子系统支撑,我枚举几个主要的系统。 基础信息领域

关于sar的学习

# 关于sar的学习 ## 背景 ``` 公司一套基于某冷门Python架构的系统前几天出现异常卡顿. 当时安装的时候必须使用ubuntu系统. 所以当时默认安装的ubuntu1804, 本来想尝试使用一下sar查看卡顿时期的系统状况 但是发现没有默认安装. 并且最近虽然有node-exporter

记一次 .NET 某游戏服务后端 内存暴涨分析

## 一:背景 ### 1. 讲故事 前几天有位朋友找到我,说他们公司的后端服务内存暴涨,而且CPU的一个核也被打满,让我帮忙看下怎么回事,一般来说内存暴涨的问题都比较好解决,就让朋友抓一个 dump 丢过来,接下来我们用 WinDbg 一探究竟。 ## 二:WinDbg 分析 ### 1. 到底是

阿里400+天,我为什么离开阿里

阿里还是挺不错了,感谢公司,感谢同事们! 零丶前言 今天是我在阿里的lastday,明天我将回成都(此处嘴角弯,我爱成都),端午后入职另外一家互联网大厂。 在去年3月份的时候,我从成都的某家金融科技银行跳槽到杭州阿里巴巴淘天集团,这篇《跳槽!阿里工作100+天,菜鸡职业生涯的一点记录》记录了我跳槽动