我的测试工程师面试题一
1、产品生命周期
整个生存周期包括计划(定义)、开发、运行(维护)三个时期,每个时期又划分为若干个阶段。每个阶段有明确的任务。
周期模型有:瀑布模型,V模型,W模型等。
周期生命阶段:
- 用户需求
- 需求分析
- 产品设计
- 编码
- 产品测试
- 运行维护
2、列表li1 = [2,3,5,2,3,67,43,12,34,43],写出两种去重方法
1 """方法一:set方法去重""" 2 li2 = list(set(li1)) 3 print(li2)
结果:[2, 67, 3, 5, 34, 43, 12]
1 """方法二:for循环去重""" 2 li3 = [] 3 for i in li1: 4 if i not in li3: 5 li3.append(i) 6 print(li3)
结果:[2, 3, 5, 67, 43, 12, 34]
3、列表li = [34,23,24,56,12,65] 正向排序,倒序输出
1 li = [34,23,24,56,12,65] 2 for i in range(len(li)-1): 3 for j in range(len(li)-i-1): 4 if li[j] > li[j+1]: 5 li[j], li[j+1] = li[j+1], li[j] 6 print(li) 7 newli = list(reversed(li)) 8 print(newli)
1 li1 = sorted(li) 2 newli1 = list(reversed(li1)) 3 print(newli1)
其他方法参考https://www.cnblogs.com/lovele-/p/9214111.html
4、python的数据类型有哪些?
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
详细描述参考菜鸟教程--python3基本数据类型:https://www.runoob.com/python3/python3-data-type.html
5、list、set、tuple、dict的区别,以及他们的查找速度,为什么?
区别:
https://www.cnblogs.com/qinguodong/p/10882576.html
https://www.cnblogs.com/maruobo/p/9669463.html
查找速度:
无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
4、SQL查询
表1--student表:s_id-学号,s_name-姓名,s_birth,s_sex
表2--score分数表:s_id学号,c_id-课程号,s_score--分数
表3--course课程表:c_id课程号,c_name课程名称,t_id教师编号
表4--teacher教师表:t_id教师编号,t_name教师姓名
1)查询出平均分大于60的学生的学号,平均分
1 SELECT s_id,AVG(s_score) as avg from score 2 GROUP BY s_id HAVING avg>60;
2)查询出“叶平”老师教的学生的学号,姓名
1 SELECT s_id,s_name FROM student WHERE s_id IN ( 2 SELECT s_id FROM score WHERE c_id IN ( 3 SELECT c_id FROM course WHERE t_id = ( 4 SELECT t_id FROM teacher WHERE t_name="叶平" 5 )));