📅  最后修改于: 2023-12-03 15:21:22.715000             🧑  作者: Mango
最近我参加了Yugabyte的SDET面试,与大家分享一下我的体验。
面试整个过程分为三个部分:考察语言熟练度的编程测试、手写代码测试、以及技术面试。
编程测试主要考察了我的Java编程技能,主要是考察类的继承、方法的重载与重写,以及线程。
以下是一个例子:
class Animal {
public void move() {
System.out.println("Animals can move");
}
}
class Dog extends Animal {
public void move() {
System.out.println("Dogs can walk and run");
}
}
public class TestDog {
public static void main(String args[]) {
Animal a = new Animal(); // Animal 对象
Animal b = new Dog(); // Dog 对象
a.move(); // 执行 Animal 类的方法
b.move(); // 执行 Dog 类的方法
}
}
输出结果:
Animals can move
Dogs can walk and run
手写代码测试主要考察我的编程能力和算法思维。
以下是一个例子:
public class Solution {
public int maxSubArray(int[] nums) {
int max_so_far = nums[0];
int curr_max = nums[0];
for (int i = 1; i < nums.length; i++) {
curr_max = Math.max(nums[i], curr_max + nums[i]);
max_so_far = Math.max(max_so_far, curr_max);
}
return max_so_far;
}
}
这道题的思路是用动态规划算法,用两个变量记录最大子数组和以及当前子数组和,每次取较大值。
技术面试主要考察我的测试经验和能力,包括自动化测试、性能测试、安全测试等方面。
以下是一些可能会被问到的问题:
Yugabyte的SDET面试是一个相对综合的面试流程,主要考察了我的编程能力、算法思维、以及测试经验和能力。通过这个面试过程,我对于Java编程和测试方面的知识都有了更深入的认识,对于我的职业发展也有很大的启示。