测试工程师的一些面试题目(python)和总结

(一)说明

1、记录自己面试测试工程师时遇到的一些编程题(python)。

2、回顾下面试的过程,做个总结。

(二)题目

1、输入:JSON {"a":"aa","b":"bb","c":{"d":"dd","e":"ee"}}   输出:字典 {‘a‘: ‘aa‘, ‘b‘: ‘bb‘, ‘d‘: ‘dd‘, ‘e‘: ‘ee‘}

 1 def conversion(n,the_dict):
 2     for key,value in n.items():
 3         #如果value的值是字典,递归
 4         if isinstance(value, dict):
 5             conversion(value,the_dict)
 6         else:
 7            the_dict[key] = value
 8     return the_dict
 9 #实际上JSON对象应该要先用 json.loads(r)解码,转换为python的字典
10 #但是这里如果这样直接输入这种格式的数据,会默认为字典对象,就不解码了
11 r = {"a":"aa","b":"bb","c":{"d":"dd","e":"ee"}}
12
13 the_dict = dict()
14 print(conversion(r,the_dict))

2、计算n!,例如n=3(计算3*2*1=6)

1 def factorial(n):
2     if n == 1:
3         return 1
4     return n*factorial(n-1)
5
6 print(factorial(5))

3、字符串分割,将列表数据合并为字符串。获取字典的key和value值

1 the_str = ‘12,33,44‘
2
3 #分割字符串,返回的是一个列表
4 the_list = the_str.split(‘,‘)
5 print(the_list)
6
7 #将列表合并为字符串,‘,‘可以指定不同元素之间的分隔符
8 print(‘,‘.join(the_list))
 1 the_dict = {‘a‘: ‘aa‘, ‘b‘: ‘bb‘, ‘d‘: ‘dd‘, ‘e‘: ‘ee‘}
 2
 3 #迭代字典的key值和value值
 4 for key,value in the_dict.items():
 5     print(key)
 6     print(value)
 7 #迭代字典的key值
 8 for key1 in the_dict.keys():
 9     print(key1)
10
11 #迭代字典的value值
12 for value1 in the_dict.values():
13     print(value1)

4、有一个列表,每个元素存放学生姓名、成绩,按学生成绩从优到差排序。

因为没限制用什么排序算法,所以我是用选择排序去实现的

 1 def student_achie(A):
 2     for i in range(len(A)):
 3         key = i
 4         for j in range(i+1,len(A)):
 5             if A[key].split(‘:‘)[1] < A[j].split(‘:‘)[1]:
 6                 key = j
 7         A[key],A[i] = A[i],A[key]
 8     return A
 9
10 #学生姓名及学生成绩
11 stu = [‘张三:20‘,‘李四:70‘,‘王五:88‘,‘李六:40‘,‘王吉:55.5‘,]
12
13 print(student_achie(stu))

5、有一个列表,每个元素存放学生姓名、成绩,计算学生的总成绩。

1 #计算学生总成绩
2 def total_achie(A):
3     if len(A) == 1:
4         return float(A[0].split(‘:‘)[1])
5     return float(A.pop().split(‘:‘)[1]) + total_achie(A)
6 #学生姓名及学生成绩
7 stu = [‘张三:20‘,‘李四:70‘,‘王五:88‘,‘李六:40‘,‘王吉:55.5‘,]
8
9 print(total_achie(stu))

6、实现斐波那契数列(第一项和第二项都是1,后面的都是前面2项相加),并打印前10项

 1 def fibonacci(n):
 2     the_list = []
 3     for i in range(n):
 4         if i == 0:
 5             the_list.append(1)
 6         elif i == 1:
 7             the_list.append(1)
 8         else:
 9             the_list.append(the_list[i-1] + the_list[i-2])
10     return the_list
11 #输出[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
12 print(fibonacci(10))

7、算法性能主要受哪些因素影响?(我先回答了空间复杂度和时间复杂度),然后他问对算法的稳定性有了解吗

当时我只回了受空间复杂度和时间复杂度影响。稳定性不了解。算法我还没学到性能分析这一块,短时间内应该也还没打算在上面花时间,所以这题没答案,先记着,等有空了再研究下。

8、id ="info" 的div的xpath表达式

//div[@id="info"]

9、还有一些sql题目和基础的理论知识就不说了,不会太难(别问一些比较偏门或我平时基本用不上的知识点应该没什么问题),sql基本就到多表关联查询。(面试前复习下join on 、group by、order by、having的用法基本就够用了,有的可能需要转格式to_data() to_char(),因为最近大半年比较少写sql,不复习下很容易犯一些低级错误)

10、还有一个Oracle的递归查询没写出来,这个确实得好好研究下。

11、还有其他问了一些selenium的元素定位那些,没有问太难的。

(三)总结

       第一个,面试感觉自己在梦游,根本没有发挥出应有的水平,一些会的也没在自我介绍和对话中体现出来(还有一个很简单的题目竟然没写出来)。现在想想主要是:

1、没有认真的做好准备,没有去复习一些基础知识,刚离职心态还没调整过来(刚来深圳找房子、找工作说实话有点累,状态一般),态度不够端正。

2、平时写代码、sql一般都是有大概思路就直接写,写完后测试下行不行,哪里有问题就调试修改下,什么函数/方法不懂或忘记了,百度或谷歌查查资料(除了一些比较难的,基本是看下就懂了)。但是面试的时候,直接在纸上写,这时候感觉离开了IDE和网络确实很不习惯。

后面认真复习下基础知识,2次面试后,成功拿到offer。第二次面试python的编程笔试和面试题应该基本正确(可能有点小问题),没过的原因感觉主要是他们想招一个熟悉Android自动化的,并且要负责维护他们的自动化测试框架、给别人解答他们自动化测试框架的一些问题,熟练使用Linux、adb命令,查看、分析日志等等,这工作我暂时确实没法胜任。

总结:

1、自我介绍、谈谈自身的优势、对加班的看法(发现这3个问题好像基本都有)不是口才特别好的话,最好先在纸上写一个版本,面试的时候不用临时组织语言。

2、不要太看重面试,放松心态,就把这当成和朋友间的一次谈话,你会发现你会表现得更好。表现出自己的正常水平就行了,这样面试不过也是好事,因为确实代表你没能力胜任这项工作。

3、面试前复习下一些基础知识,把一些比较常见的编程题、最常用的一些方法在纸上写一遍。

4、其他或许该想想怎么避免谈到自己不擅长的知识点,将谈话的重点拉到自己擅长的技术上来。

5、感觉编程的题目一般不会太难,一般都是考一些基础,然后根据你的简历问一些问题。(但是很尴尬的却是,第一次时用IDE几分钟可以敲出来的代码,在纸上偏偏写不出来,这种情况一般都是一些关键又很简单的函数/方法忘记了)所以面试前,最好花一些时间复习一下(基本的数据类型整型、浮点数、字符串、列表、字典、集合和一些常用的函数/方法等)。

原文地址:https://www.cnblogs.com/simple-free/p/9404125.html

时间: 2024-09-29 21:03:55

测试工程师的一些面试题目(python)和总结的相关文章

java工程师联通XX面试题目

什么是“长连接”和“短连接”? 所谓短连接指建立SOCKET连接后发送后接收完数据后马上断开连接,一般银行都使用短连接解释2长连接就是指在基于tcp的通讯中,一直保持连接,不管当前是否发送或者接收数据.而短连接就是只有在有数据传输的时候才进行连接,客户-服务器通信/传输数据完毕就关闭连接.解释3长连接和短连接这个概念好像只有移动的CMPP协议中提到了,其他的地方没有看到过.通信方式各网元之间共有两种连接方式:长连接和短连接.所谓长连接,指在一个TCP连接上可以连续发送多个数据包,在TCP连接保持

测试工程师进阶面试题目大合集

很多软件测试工程师在面试的时候都会遇到考官给的各种各样的面试题,这也反应了测试工程师对企业的重要性,面试通常分为以下几个方面,由于篇幅有限,在这里就只给大家分享一些比较常见的问题. 一. 自我介绍 这里我不分享如何自我介绍,比我话术之类,相信大家都比我熟悉套路,这里分享几个细节 1.自我介绍时需要有底气 有些同学明明技术很厉害,但是一面试就紧张,一直低头,不敢直视面试官,更为紧张者都说不出话,这样的表现面试官不会觉得你是紧张,反而是觉得你是没能力的表现,所以要有底气,自信很重要. 2.自我介绍时

美资软件公司JAVA工程师电话面试题目

面试必备基础题目(虽然不一定常用, 仅用于面试, 面试就是把人搞的都不会然后砍价, 当然您可以讲我可以查资料完成, 但是面试的时候就是没道理的, 起码我是经常看到这些题). 如何把一段逗号分割的字符串转换成一个数组?request.getAttribute() 和 request.getParameter() 有何区别?response.sendRedirect() 和 forward() 区别?<%@include file="xxx.jsp"%>和 <jsp:in

python测试工程师高端基础面试题整理

面试总括篇 技术技能 开发语言:python 数据库:mysql 操作系统;linux 网络协议基础 测试技能:自动化(UIselenium+接口)+性能 业务知识 测试工程师执业规划 初级-->中级-->高级-->资深或者测试经理(汇报+组内协调+部门协调) 面试类型 技术面试:广博的技术面+专精的技术方向 项目面试:为团队做了什么+为项目做了什么+为公司做了什么 综合素质面试:团队协作能力+团队管理能力+核心竞争能力(学习能力) 精彩的自我介绍 深刻的第一印象 优秀的语言表达能力 亲

测试开发面试题目汇总一

测试开发面试题目汇总 1. 项目经验 2. 测试的过程 3. 京东登录页面怎么测? 4. 如果一个普通用户,他的百度首页打不开,问题怎么定位?写出定位流程. 5.问简历上的第一个项目的详细情况,包括测试用例怎么写?怎么判断测试通过?项目的原理? 6.如果是做功能测试,能接受吗? 7.说一下你们工作中的测试流程 8.用她的手机给我看了下百度贴吧的发帖功能的界面,给我张纸,让我写出测试点(只需要考虑内容,表情,添加图片,@功能),写完讲一遍逻辑. 9  针对发朋友圈这个功能设计你的测试用例,请给出用

python面试题目

问题一:以下的代码的输出将是什么? 说出你的答案并解释. class Parent(object): x = 1 class Child1(Parent): pass class Child2(Parent): pass print Parent.x, Child1.x, Child2.x Child1.x = 2 print Parent.x, Child1.x, Child2.x Parent.x = 3 print Parent.x, Child1.x, Child2.x 答案是 1 1

PYTHON 一些基础面试题目总结

PYTHON 一些基础面试题目总结http://www.bieryun.com/1191.html 1.       Python是如何进行内存管理的? 答:从三个方面来说,一对象的引用计数机制,二垃圾回收机制,三内存池机制 一.对象的引用计数机制 python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数. 引用计数增加的情况: 1,一个对象分配一个新名称 2,将其放入一个容器中(如列表.元组或字典) 引用计数减少的情况: 1,使用del语句对对象别名显示的销毁 2,引用超出作

测试工程师面试工作感悟

首先致敬祖国母亲,祝福祖国繁荣昌盛.人民富足安康! 十一值班,闲暇之余总结一下最近测试团队面试的一些感想,供各位参考: 简单的做一下自我介绍,6年测试经验,担任过十人以上测试主管,后期进入物联网新零售领域,现在一家国有企业,负责组建一支测试团队.因此在最近一两个月除了测试项目前期的测试框架准备工作,基本上就是各类招兵买马的面试工作. 首先谈一下团队人员招聘工作: 招聘对象1(功能性测试):2-5年工作经验的测试工程师,要求掌握基本测试理论,熟悉软件测试流程及其规范文档的编写,有较强的自学能力:

测试工程师,选择python还是java?

问:“你平时工作中,用java多还是用python多”? 答:“都还可以,根据具体的场景选择不同的语言”. 问:“比如说呢”? 答:“开发自己的测试平台,肯定会选择java:在centos服务器跑一些脚本,会选择python或shell:某些压测场景,追求高并发,可能会选择go语言”. 问:“我java和python都学了一些基础知识,不知道该选择哪种语言”. 答:“可以先选择一门你相对擅长的语言,先开始用起来”. 这是前两天,一位身边的小伙伴和我的对话. 相信有这样疑问的人不在少数,就是自己到