1.软件的生命周期
可行性分析、需求分析、软件设计(详细设计和概要设计)、程序编码、软件测试、运行与维护
2.软件测试分类
按执行主体:开发方测试(又称验收测试或者α测试)、用户测试(又称β测试)、第三方测试
回归测试:
指当软件发生改变时,重新测试已经通过测试的测试区域,以检验已发现的bug有没有被正确修改,以及修改过程中有没有引发新的bug
3.软件测试模型
v模型和w模型
4.测试计划的目的
使测试工作顺利进行;使项目参与人员沟通更顺畅;使测试工作更系统化
5.测试计划的六要素
测试目的;测试范围;测试时间;测试文档;测试人员;测试技术
6.黑盒测试
一般指功能性测试
测试方法主要有:等价类划分、边界值分析、因果图、错误猜测法等
7.白盒测试
逻辑覆盖法、路径覆盖
8.自动化测试
1.为什么做接口测试?
可以发现很多在页面上操作发现不了的bug
2.怎么做接口测试?
3.没有接口文档怎么办?
自己用F12或者chrome抓包
4.数据依赖
5.分析bug是前端还是后端问题
6.依赖于第三方数据的接口如何进行测试?
mock
7.json和字典的区别?
json是字符串,字典是数据结构
8.测试数据怎么放?
.ini文件 .py文件
9.如何数据驱动?如何参数化
10.下个接口请求依赖上个接口的返回数据?
不同的接口封装成不同的函数或方法,需要的数据return出来,用一个中间变量a去接受,后面的接口传a就可以了
11.接口产生的垃圾数据如何清理?
后置操作,tearDown做数据清理
12.依赖登录的接口如何处理?
s=requests.session(),使用session自动关联,后面请求用s.get()和s.post()就可以自动关联cookies了
13.python如何连接数据库?
14.http常见状态码
200:一切正常
500:服务端错误,一般是后端代码问题
404:客户端错误,找不到资源等
15.range() 函数的使用
range(start, stop[, step]) range(5) 默认start为0
16.对文件的操作
with open('/path/to/file', 'r') as f: print(f.read())
17.python生成随机数
random.randint(a,b),生成区间内的整数
18.可变数据类型和不可变数据类型,并简述原理
不可变类型:数值、字符串、元组
对于不可变数据类型,改变了变量值,相当于是新建了一个对象,而对于相同值的对象,在内存中只有一个地址
可变类型:列表和字典
允许变量的值发生变化,即如果对变量进行append、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
a = 3 b = 3 print(id(a)) print(id(b)) c = [1,2] # c.append(3) d = [1,2] print(id(c)) print(id(d)) 输出结果: 1652976720 1652976720 2157664683208 2157664682760
19.s = "ajldjlajfdljfddd",去重并从小到大排序输出"adfjl"
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
s = "ajldjlajfdljfddd" s = set(s) s = list(s) s.sort(reverse=False) print(s) res = ''.join(s) print(res) 输出结果: ['a', 'd', 'f', 'j', 'l'] adfjl
20.用lambda实现两个数相乘
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
sum = lambda a,b:a*b print(sum(4,5)) 输出结果: 20
21.search和match的区别
https://www.cnblogs.com/wang-mengmeng/p/11305402.html
1.
https://github.com/taizilongxu/interview_python
1.数组倒序
2.字符串倒置
3.深拷贝与浅拷贝
4.fun(*args,**kwargs)中的*args,**kwargs什么意思?
*args用来发送一个非键值对的可变数量的参数列表给一个函数;
**kwagrs用来发送一个不定长度的键值对,作为参数传递给一个函数
5. 避免转义给字符串加哪个字母表示原始字符串? r
6.
五 持续集成 https://i-beta.cnblogs.com/posts?cateId=1262674
主要包括Jenkins的安装、分布式构建、远程换包、从代码仓库拉取代码、定时任务、持续集成测试脚本
https://i-beta.cnblogs.com/posts?cateId=1514743
七 计算机网络相关
-
TCP/IP协议四个层次组成,以及每个层的常用协议
应用层(相当于OSI的上面三层),常见协议:FTP TELNET
运输层,常见协议:TCP UDP
网络层,常见协议:ICMP IP IGMP
链路层(相当于OSI的下面两层),常见协议:ARP RARP
-
OSI七层模型
应用层
表示层
会话层
运输层
网络层
数据链路层
物理层
-
TCP协议三次握手
-
TCP协议四次挥手
-
TCP和UDP的区别(位于传输层)
tcp(传输控制协议) udp(用户数据报协议)