测试面经1203
- 4. 什么是黑盒测试
- 5. 除了黑盒测试还有其他的测试吗?
- 6. 灰盒测试是谁来进行的?
- 7. 使用Excel表格设计测试用例,使用Excel表格有什么优势呢?
- 12. 测试需求怎么分析?
- 13. 黑盒测试都有哪些方法?
- 14. 边界值分析一般是怎么做的?
- 15. 什么叫错误推断法?
- 16. TCP/IP协议有了解过吗?讲解以下TCP/IP协议的握手过程
- 17. OSI七层模型都有哪七层
- 18. 进程与线程有什么区别?
- 19. 并发和并行有什么区别?
- 20. python如何创建一个进程?
- 21. pytest一般用来做什么?
- 22. 平时你会写一些自动化测试用例吗?
- 23. 什么叫测试覆盖率?
- 24. 什么叫单元测试?
- 25. 单元测试有哪些人员进行编写和维护的?
- 26. 有没有做过接口的测试?
- 27. 对网络API接口进行测试,工作的思路是什么
- 29. 计算机网络技术三级的证书为什么要考这个?
- 33. 讲一下二分查找的算法思想
- 34. 用python写冒泡排序
4. 什么是黑盒测试
5. 除了黑盒测试还有其他的测试吗?
-
根据测试的阶段划分,有单元测试、集成测试、系统测试、验收测试。
-
集成测试:单元测试完成之后,开发将测好的单元模块组合在一起,将多个模块/函数组装到一起的测试。对代码进行测试,一般也是开发人员进行的,采用白盒测试的方法。
集成测试后期,各模块之间的依赖性越来越强,离系统目标越来越近,软件核心模块基本组装完毕,软件的核心功能点展现出来,一般也由开发人员进行测试,采用黑盒测试方法
-
系统测试:对这个软件系统做全面的测试,主要从6个方面展开,界面外观、功能、性能、兼容性、安全性、易用性。采用黑盒测试方法,由测试人员进行。
-
验收测试:主要是用户进行的测试,测试的内容和系统测试的内容相似,主要测试软件系统是否满足需求文档中的内容,是否满足用户需求。主要有alpha(内测)和bate(公测)测试,他们两个的测试场所不一样,以及alpha测试在发布上线之前,bate测试在发布上线之后
alpha测试是把用户请到开发方对软件进行测试,测试环境受开发方的控制,测试人数不多,测试时间比较集中。测试执行者:测试人员、用户、公司内部人员
6. 灰盒测试是谁来进行的?
7. 使用Excel表格设计测试用例,使用Excel表格有什么优势呢?
- 测试用例主要包括用例编号,用例标题,测试项目模块,优先级,前置条件,测试步骤,测试数据,预期结果、实际结果
- 使用Excel表格编写,能够更加清晰的呈现测试步骤和测试数据和预期结果、实际结果。可详细描述每个测试用例的情况,对之后用例的执行,对测试过程的追溯会更加方便。
- 表格方便进行数据统计和分析。
-
Xmind优势
- Xmind主要是以思维导图的形式,更加适合于复杂的测试用例场景,通过节点和分支,更加的结构化,更够更好的梳理测试思路,呈现各个功能点之间的关联,更加的清晰,对测试覆盖度也优于excel表格。
- 在敏捷过程、测试时间紧张或马上要进行测试没有时间写用例的情况下,可以先使用 xmind 理出测试点
- 评审时采用 xmind 评审测试点效率更高、更清晰。
Xmind劣势
-
测试用例数量增加的时候难以维护。
-
大致讲一下测试流程
12. 测试需求怎么分析?
1. 查阅需求规格说明书(原型图),初步熟悉被测软件的核心业务流程,大概知道我要测哪些内容,测试量有多少,进而区安排时间进度,再针对某个功能点进行细化、列出测试点
2. 参加需求评审,主要参与人员有测试、开发、产品,目的是明确每一个需求点的意思,对需求细节化,是否有存在漏测、错测的测试点。因为测试、开发对需求文档的理解可能会存在偏差,或者遗漏了某些需求点,最终目的就是保证产品质量符合需求文档的要求。
13. 黑盒测试都有哪些方法?
等价类划分、边界值分析法、因果图判定表法、错误推断法
14. 边界值分析一般是怎么做的?
15. 什么叫错误推断法?
16. TCP/IP协议有了解过吗?讲解以下TCP/IP协议的握手过程
-
第一次挥手,客户端给服务器发送一个FIN,请求断开连接,并进入一个待关闭状态
第二次挥手,服务器收到之后,发送一个ACK给客户端,对关闭连接进行确认。
第三次挥手,服务器端主动发送关闭连接请求给客户端,发送一个FIN+ACK
第四次挥手,客户端收到服务器端连接释放报文段之后,发送确认关闭连接报文段ACK,此时客户端进入一个等待时间(TIME-WAIT)状态。TCP未释放连接,需要等待2MLS(最大报文生成时间)后,客户端才进入关闭(CLOSED)状态。服务器端收到客户端发出的确认报文段关闭连接之后关闭连接。如果没有收到,服务器端会重新连接释放报文段。
17. OSI七层模型都有哪七层
1. 应用层:各种应用软件,包括Web应用
表示层:数据格式的标识,基本压缩加密功能
会话层:控制应用程序之间的会话能力;如不同软件数据分发给不同软件
传输层: 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;包含的主要协议:TCP(Transmission Control Protocol,传输控制协议)、UDP协议(User Datagram Protocol、用户数据报协议); 重要设备:网关。
2. 网络层:定义IP编址,定义路由基本功能,如不同设备的数据转发。主要就是路径选择、路由及逻辑寻址。此外,网络层还可以实现拥塞控制、网际互连等功能;基本数据单位为IP数据报; 包括的主要协议:IP协议(Internet Protocol,因特网互联协议);
ICM协议(Internet Control Message Protocol,因特网控制报文协议);
ARP协议(Address Resolution Protocol,地址解析协议);
RARP协议(Reverse Address Resolution Protocol,逆地址解析协议)
3. 数据链路层:数据的通道,定义数据的基本格式,如和传输,如何标识,如网卡MAC地址。为网络层提供可靠的数据传输,基本数据单位为帧;主要的协议为以太网协议。两个重要设备名称:网桥和交换机
物理层:底层数据传输,一个传输数据的可靠的物理媒体。如网线,网卡标准
TCP工作在哪一层?传输层
IP工作在哪一层?网络层
HTTP工作在哪一层?应用层
18. 进程与线程有什么区别?
1. 进程:进程是**对运行时程序的封装**,**资源分配和调度**的基本单位,实现了操作系统的**并发**。运行中的一个程序就是一个进程
2. 线程:线程是**进程的子任务**,是**CPU调度和分配**的基本单位,被称为轻量级进程
3. 区别:
1. 每一个进程之间互相不会干扰,在执行过程中有独立的内存空间,同一进程中的线程共享进程地址空间。(资源分配给进程,进程中的线程共享这些资源)
2. 系统开销不同。在创建和撤销进程时,系统会给分配资源和回收资源(如内存空间和I/O设备)。**操作系统付出的开销将显著大于创建线程和撤销线程的开销。**在撤销进程时
3. 一个线程只能属于一个进程,而一个进程中可以有多个线程,**线程依赖与进程存在**。一个进程中的线程垮掉会导致整个进程垮掉。
4. 通信:由于同一个进程中的多个线程共享同一地址空间,使他们的同步和通信实现变得容易。进程之间通信IPC,线程间通信可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。在有的系统中,线程的切换、同步和通信都无须操作系统内核的干预
5. 进程编程调试简单可靠性高,但是创建销毁开销大;线程正相反,开销小,切换速度快,但是编程调试相对复杂。
19. 并发和并行有什么区别?
1. 并发:两个或多个事件在同一实体上,同一时间间隔发生,一台处理机上处理多个任务。
因为所有的并发处理程序都有等待(阻塞),就绪,运行三个步骤,宏观上是一起发生的,微观上被序列处理的,交替进行的,资源不会在某一个程序上被阻塞(一般时通过时间片轮转),所以说宏观上几乎是多个同时到达的请求,同时被处理。
如果是同一时刻达到的请求也会根据优先级的不同,先后进入队列排队等候执行。例如单核CPU同一时刻只能执行一个程序,各个程序之间是多路复用,并发进行的(CPU在多个程序之间切换)。就是有限的物理资源让多个用户共享提高效率。
2. 并行:两个或者多个事件在不同的实体上,同一时刻发生。在多道程序下,并行,使多个程序同一时刻在不同的CPU上同时运行。例如多核CPU同一时刻就可以执行多个程序,多个程序并行执行。
20. python如何创建一个进程?
<a href="https://blog.csdn.net/qdPython/article/details/124459963?ops_request_misc=&request_id=&biz_id=102&utm_term=python%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%E4%B8%80%E4%B8%AA%E8%BF%9B%E7%A8%8B%EF%BC%9F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-124459963.142^v96^control&spm=1018.2226.3001.4187" target="_blank">python创建进程的多种方式</a>
21. pytest一般用来做什么?
22. 平时你会写一些自动化测试用例吗?
23. 什么叫测试覆盖率?
软件测试覆盖率是测试软件有效性技术的一个度量手段,用来度量测试完整性。软件测试工作中会有非常多的item,执行过的任务和总任务数的比值就是覆盖率。
覆盖率=(至少被执行的item数)/item总数。
通过测试覆盖率可以判断一轮测试是否足够 充分,通过覆盖率分析出测试的弱点在哪里,能够指导增加设计测试用例。
对于黑盒测试一个是需求覆盖率一个是用例覆盖率决定测试覆盖率。
需求覆盖率=(被验证到的需求数量)/(总需求数)
用例覆盖率=(验证通过的用例数量)/(总用例数)
一般情况下,每一次上线要求自动化加手动测试的用例覆盖,要高到80%以上,才能够教这一轮测试的完成
<a href="https://blog.csdn.net/m0_59868866/article/details/128849504?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%BB%80%E4%B9%88%E5%8F%AB%E6%B5%8B%E8%AF%95%E8%A6%86%E7%9B%96%E7%8E%87%EF%BC%9F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-4-128849504.142^v96^control&spm=1018.2226.3001.4187" target="_blank">黑盒测试覆盖率</a>
<a href="https://blog.csdn.net/IT_LanTian/article/details/108813259?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%BB%80%E4%B9%88%E5%8F%AB%E6%B5%8B%E8%AF%95%E8%A6%86%E7%9B%96%E7%8E%87%EF%BC%9F&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-108813259.142^v96^control&spm=1018.2226.3001.4187" target="_blank">测试覆盖率</a>
24. 什么叫单元测试?
单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小、很明确的功能是否正确。通常情况下,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。检查代码的行为他究竟做了什么,检查他的结果和我们的期望是否一致。因此,我们所要测试的是规模很小的、非常独立的功能片断。以及使代码变得更加完美
<a href="https://blog.csdn.net/MXB_1220/article/details/126129869?ops_request_misc=&request_id=&biz_id=102&utm_term=%E4%BB%80%E4%B9%88%E6%98%AF%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-126129869.142^v96^control&spm=1018.2226.3001.4187" target="_blank">单元测试</a>
25. 单元测试有哪些人员进行编写和维护的?
开发进行编写和维护的
26. 有没有做过接口的测试?
所谓接口测试就是通过测试不同情况下的入参与之相应的出参信息来判断接口是否符合或满足相应的功能性、安全性要求。
<font face="黑体" color="##0066cc" size=4>接口测试所需要的基本知识:get和post请求方法、http状态码</font>
27. 对网络API接口进行测试,工作的思路是什么
<font face="黑体" color="##0066cc" size=4>1. 通用接口用例设计</font>
- 通过性验证:保证这个接口功能是好使的,能够通过正常的通过性测试,按照接口文档上传参数,正常传入,是否可以返回正常的结果。
- 参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称、价格有一个是必传的,type传2的时候是删除商品,商品id 是必传的,这样的,就要测参数组合了,type传1的时候,只传商品名称能不能修改成功,id、名称、价格都传的时候能不能修改成功。
- 接口安全:
1、绕过验证,比如说购买了一个商品,它的价格是300元,那我在提交订单时候,我把这个商品的价格改成3元,后端有没有做验证,更狠点,我把钱改成-3,是不是我的余额还要增加?
2、绕过身份授权,比如说修改商品信息接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他的卖家能不能修改成功
3、参数是否加密,比如说我登陆的接口,用户名和密码是不是加密,如果不加密的话,别人拦截到你的请求,就能获取到你的信息了,加密规则是否容易破解。
4、密码安全规则,密码的复杂程度校验
- 异常验证:
所谓异常验证,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验。比如说必填的参数不填,输入整数类型的,传入字符串类型,长度是10的,传11,总之就是你说怎么来,我就不怎么来,其实也就这三种,必传非必传、参数类型、入参长度。
<font face="黑体" color="##0066cc" size=4>2. 根据业务逻辑进行用例设计</font>
- 根据业务逻辑来设计的话,就是根据自己系统的业务来设计用例。和功能测试用例设计是一样的。列出测试点,编写对应的测试数据。
29. 计算机网络技术三级的证书为什么要考这个?
作为一名软件测试人员需要对网络分类、局域网广域网、OSI七层网络模型、常见协议都要懂
33. 讲一下二分查找的算法思想
二分查找(Binary Search)算法,也叫折半查找算法。利用数组的有序性,每次都通过跟区间的中间元素对比,每轮缩窄一半的查找区间(即排除一半元素),直到找到目标值或查找区间为空时返回。由于每轮可以排除一般的元素所以每次查找最多循环logN次,时间复杂度为O(logN)。数据量大的时候,二分查找O(logN)效率高于线性查找O(N)
```python
def search(num, target):
i, j = 0, len(nums)-1
while i<=j:
mid = i + (j-i) // 2
if nums[mid] < target:
i = mid +1
elif num[mid] > target:
j = mid - 1
elif num[mid]
return mid
return -1
```
34. 用python写冒泡排序
```python
list1 = [1, 9, 3, 2, 1, 2, 9]
for i in range(len(list1)-1): # 比较n-1轮
for j in range(len(list1)-1)-i: # 剩余两两进行比较,当前数字依次对比替换
if list1[j] < list1[j+1]: # 将比较大的数字排在前面
list1[j+1], list1[j] = list1[j], list1[j+1]
# 大泡泡上浮 将大的数排在前面
```
原文地址:https://blog.csdn.net/Emily_ASL/article/details/134762218
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_37256.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!