测试面试中,关于Python更喜欢考什么?

前面的文章中,聊质量内建测试平台化工程比较多,最近同学找我聊天,因为各种原因被裁了,在不多的面试机会中很多人又挂了,其中一个点是编程这块没自信,甚至面试官刚出题,一些同学就是直接说能不能跳过,所以今天这篇就面向初中级测试,聊聊面试中,关于Python的考点喜欢问什么?

前言:

不要去杠编程在你的测试工作中用不到,如果你总是相信这一点而不去学习代码,最终会让你没有工作,这只是时间问题;说的更直白一点,允许你工作用不到,但不允许你不会,行不?

测试面试中Python考察什么?

大家对面试中手撸算法多少是有些忌惮的;关于算法我认为可以分为两种,第一类是关注于数学逻辑的,比如红黑树、二叉树等;第二种更倾向于语法的考察,python中比如装饰器,比如单词中字母的数量统计,反转之类,还有些简单的排序,而对于一般业务测试来说,语法的考察往往是重点。

我喜欢问什么?

面试过很多候选人,现在基本上简历上都会写熟悉Python,如果你写了,我一般都会问,当然简历里看不出来你会编程我一般不会约面试,可能有一些人会问:难道测试最重要的是编程吗?不是最重要,但要你有种这个基本能力,我需要你即插即用的完成一些工具或者脚本,如果你不具备这方面能力,我会怀疑你的学习能力和知识平移能力不够,而面对海量的简历,hr往往会看学历去筛选,作为技术面试官,我看编程能力,很正常,大家时间都宝贵,往往都会用性价比最高的方式工作。

对于业务测试工程师来说我不会去考一些复杂的算法,意义不大,我更倾向于你对Python语法的熟悉程度,往往一些相对简单的题目我会更看重你实现的简洁程度。

举个例子,比如让你定义一个列表,顺序产生10个数字,下面两种实现方式,看后高下立判了吧,列表推导式无疑是加分的

第一种


numbers = []
for number in range(10):
    numbers.append(number)
print(numbers)

第二种

numbers = [number for number in range(10)]
print(numbers)

上面就是一个简单的例子,这就是一个语言熟练程度问题,面试中不会直接这么问,一般的考题我举几个例子:

列表解析:打印20以内的偶数

numbers = [number for number in range(20) if number % 2 == 0]
print(numbers)
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

如用一行代码生成[1,4,9,16,25,36,49,64,81,100]

[x * x for x in range(1,11)]

集合解析式,它基本与列表解析式相同。不同之处在于集合解析式不包含重复项。可以通过使用花括号取代方括号来创建集合解析式:

string = "cctester"
unique_string = {letter for letter in string}
print(unique_string)
{'c', 'r', 't', 'e', 's'}

关于为何这么输出不用解释吧?衍生题目是去掉列表中的重复元素

a = list(set(a))

字典解析式:

string = "i am cctester"
word_order = {el: ind+1 for ind, el in enumerate(string.split())}
print(word_order)
{'i': 1, 'am': 2, 'cctester': 3}

字典考题衍生:统计字母出现的次数;

def count_str(str):
   dic={}
   for i in str:
       dic[i]=str.count(i,0)
   return dic

今天就聊这些,如果我招一个业务测试上述都比较熟练,代码基本功是通过的,而这些在面试当中,并不是拼智商,其实就在于平时有没有用过,有没有真正去理解,写这篇文章也不在于给你面试突击,可以测试一下Python基本技能,编程还是需要基本功和时间的。后续大家还想聊什么,可以留言。

敲字不易,如果此文章对你有帮助的话,点个赞收个藏来个关注,给作者一个鼓励。也方便你下次能够快速查找

你可能感兴趣的:(软件测试,测试工程师,面试,自动化测试,python)