测试开发

一 软件测试理论

二 接口自动化测试

三 UI自动化测试

四 python相关

五 持续集成

六 git的使用

一、软件测试理论

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、+=等这种操作后,只是改变了变量的值,而不会新建一个对象,变量引用的对象的地址也不会变化,不过对于相同的值的不同对象,在内存中则会存在不同的对象,即每个对象都有自己的地址,相当于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象

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
View Code

19.s = "ajldjlajfdljfddd",去重并从小到大排序输出"adfjl"

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
View Code

20.用lambda实现两个数相乘

sum = lambda a,b:a*b
print(sum(4,5))


输出结果:
20
View Code

21.search和match的区别

https://www.cnblogs.com/wang-mengmeng/p/11305402.html

三 UI自动化

1.

四 python相关

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的安装、分布式构建、远程换包、从代码仓库拉取代码、定时任务、持续集成测试脚本

六 git的使用

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(用户数据报协议)

原文地址:https://www.cnblogs.com/wang-mengmeng/p/11411869.html