1、测试用例设计
一、划分等价类
(1)有效等价类,有意义的输入数据构成的集合,检验程序是否实现规格说明预先规定的功能和性能。
用例尽可能多的覆盖尚未被覆盖的有效等价类。直到所有的有效等价类都被测试用例覆盖。
(2)无效等价类,不合理、无意义的输入数据构成的集合,检验程序的容错能力。
用例覆盖一个且仅一个尚未被覆盖的无效等价类。直到所有的无效等价类都被测试用例所覆盖。
二、边界值
三、判定表
1、确定规则数,条件数为n,规则个数= 2^n
2、列出所有条件桩和动作桩
3、填入条件、动作对应的结果
4、简化判定表,合并相似规则
四、业务流程(正常流程、异常流程)
五、正交表(根据水平、因子选取正交表)
2、unittest的工作原理
Test case:一个完整的测试单元,体现在Setup(测试环境的准备)、run(测试执行)、teardown(测试环境的还原)。
Test suite(集合或套件):多个测试用例的集合,测试套件或测试计划
Test Loader:用来加载 testcase 到 testsuite 中的。
Test runner:执行测试用例,测试结果会保存到TextTestResult实例中。
Test fixture:一个测试用例环境的搭建和销毁,主要是setUp() 和 setDown()方法。
3、装饰器的原理
Python中的变量名和对象是分离的,变量名可以指向任意一个对象。
从本质上,装饰器起到的就是这样一个重新指向变量名的作用,让同一个变量名指向一个新返回的可调用对象,从而达到修改可调用对象的目的
4、值传递、引用传递
# 值传递(不可变对象作为函数参数,相当于C语言的值传递) def zhi(c): print("调用中", id(c)) # 2072954816 一开始传递进来的是对不可变数据类型a(数字类型)的引用 c += 2 # 数字改变后有一个新的指针指向3所在内存空间,但原来指向2的指针a(内存地址空间依旧存在)未改变 print("被修改后", id(c)) # 2072954848 故c的内存地址改变 return c # 引用传递(列表是可变数据类型,作为参数传递实则是传递对列表的引用,修改更新列表值后依旧引用不变) def yinyong(l): print("调用中", id(l)) # 21694696 l[1] = 30 print("被修改后", id(l)) # 21694696 return l if __name__ == "__main__": a = 2 print('调用前', id(a)) # 2072954816 n = zhi(a) print(n, id(n)) # 4 2072954848 print(a, id(a)) # 2 2072954816 list1 = ["loleina", 25, 'female'] print('调用前', id(list1)) # 21694696 list2 = yinyong(list1) print(list1, id(list1)) # ['loleina', 30, 'female'] 21694696 print(list2, id(list2)) # ['loleina', 30, 'female'] 21694696
5、性能测试
6、linux常用命令
之前的文章 https://www.cnblogs.com/yinwenbin/p/11874351.html
昨天有问到的:
1、查看服务netstat命令,常用: netstat -natp
2、查看进程ps命令,常用:ps -ef 或者 ps aux
7、HTTP与HTTPS有什么区别?
HTTP协议传输的数据都是未加密的,也就是明文的。HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全
8、cookies和session的区别
1、cookie数据保存在客户端,session数据保存在服务器端
2、session过期时间取决于服务期的设定;cookie过期时间可以在cookie生成的时候设置进去;
3、cookie和session都是用来跟踪浏览器用户身份的会话方式。
9、印象深刻的bug
10、缓存
web缓存也叫作代理服务器。(过期机制)
它是一种在不向原始服务器发送请求的情形下满足HTTP请求的技术。
当对象在web缓存中的时候,请求被满足;
否则将会请求原始服务器,然后缓存到服务器,接着满足请求;
静态缓存:是在新内容发布的同时就立刻生成相应内容的静态页面;
动态缓存:是在新内容发布以后,并不预先生成相应的静态页面,直到对相应内容发出请求时,
如果前台缓存服务器找不到相应缓存,就向后台内容管理服务器发出请求,
后台系统会生成相应内容的静态页面,用户第一次访问页面时可能会慢一点,但是以后就是直接访问缓存了