软件测试面试题

news/2024/11/8 8:41:17/

一、描述 TCP/IP 协议的层次结构,以及每一层中重要协议

TCP/IP(Transmission Control Protocol/Internet Protocol)是互联网的核心协议套件,它定义了在网络中进行通信的规则和标准。TCP/IP协议栈按照层次结构划分,每一层负责不同的功能,下面是TCP/IP协议的四个主要层次及其重要协议:

1. 网络接口层(Network Interface Layer)
   - 功能:负责处理网络物理接口和数据链路层的细节,将数据帧从一台主机传输到另一台主机。
   - 重要协议:Ethernet(以太网)、Wi-Fi、PPP(点对点协议)等。

2. 网络层(Internet Layer)
   - 功能:负责在不同的网络之间进行数据包的路由和转发,提供主机之间的逻辑通信。
   - 重要协议:IP(Internet Protocol,网络协议)、ICMP(Internet Control Message Protocol,Internet控制消息协议)、ARP(Address Resolution Protocol,地址解析协议)等。

3. 传输层(Transport Layer)
   - 功能:负责在网络中建立端到端的数据传输连接,确保数据的可靠传输和有序交付。
   - 重要协议:TCP(Transmission Control Protocol,传输控制协议)、UDP(User Datagram Protocol,用户数据报协议)等。

4. 应用层(Application Layer)
   - 功能:提供应用程序与网络之间的接口,支持特定的网络应用和服务。
   - 重要协议:HTTP(Hypertext Transfer Protocol,超文本传输协议)、FTP(File Transfer Protocol,文件传输协议)、SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)、DNS(Domain Name System,域名系统)等。

这些层次构成了TCP/IP协议栈,通过分层的结构,TCP/IP协议栈能够实现网络通信的灵活性、可扩展性和互操作性。不同层次上的协议相互配合,完成了数据在网络中的传输和处理。

二、测试的数据你放在哪?

测试数据存放总结:
1.对于账号密码,这种管全局的参数,可以用命令行参数,单独抽出来,写的配置文件里(如 ini)
2.对于一些一次性消耗的数据,比如注册,每次注册不一样的数,可以用随机函数生成
3.对于一个接口有多组测试的参数,可以参数化,数据放 yaml,text,json,excel 都可以
4.对于可以反复使用的数据,比如订单的各种状态需要造数据的情况,可以放到数据库,每次数据 初始化,用完后再清理
5.对于邮箱配置的一些参数,可以用 ini 配置文件
6.对于全部是独立的接口项目,可以用数据驱动方式,用 excel/csv 管理测试的接口数据
7.对于少量的静态数据,比如一个接口的测试数据,也就 2-3 组,可以写到 py 脚本的开头,十年 八年都不会变更的

总之不同的测试数据,可以用不同的文件管理

三、HTTP 有哪些请求方法,分别代表什么?

HTTP(Hypertext Transfer Protocol)定义了一组请求方法(也称为HTTP动词或HTTP谓词),用于指定客户端对服务器资源的操作。以下是常见的HTTP请求方法及其含义:

1. GET(获取):用于请求服务器上的资源,通常用于获取网页、图片、文件等数据。GET方法是最常见的HTTP请求方法。

2. POST(提交):用于向服务器提交数据,通常用于提交表单数据、上传文件等。POST方法将数据作为请求体发送到服务器。

3. PUT(更新):用于向服务器上传或更新资源。PUT方法要求在请求中指定要更新的资源的完整表示。

4. DELETE(删除):用于请求服务器删除指定的资源。

5. HEAD(获取头部信息):与GET方法类似,但只请求获取服务器响应的头部信息,不返回实际内容主体。HEAD方法常用于检查资源的元数据,如验证资源是否存在或获取资源的元数据信息。

6. PATCH(部分更新):用于对资源进行部分更新。PATCH方法类似于PUT方法,但只更新请求中指定的资源的部分内容。

7. OPTIONS(选项):用于请求服务器返回支持的HTTP方法列表,或者请求服务器返回与指定资源相关的通信选项。

8. TRACE(跟踪):用于让服务器返回其接收到的请求,主要用于诊断和调试。

除了上述常见的HTTP请求方法,还有一些不太常见的方法,如CONNECT、PROPFIND、PROPPATCH等,它们具有特定的用途,但在日常应用中使用较少。

需要注意的是,HTTP请求方法的使用应符合HTTP协议的规范,且服务器必须支持相应的方法才能正确处理请求。

四、接口自动化测试的流程?

基本的接口功能自动化测试流程为:需求分析-->用例设计-->脚本开发-->测试执行-->结果分析

五、接口测试用例的编写要点有哪些?

1)必填字段:请求参数必填项、可选项
2)合法性:输入输出合法、非法参数
3)边界:请求参数边界值等
4)容错能力:大容量数据、频繁请求、重复请求(如:订单)、异常网络等的处理
5)响应数据校验:断言、数据提取传递到下一级接口...
6)逻辑校验:如两个请求的接口有严格的先后顺序,需要测试调转顺序的情况
7)性能:对接口模拟并发测试,逐步加压,分析瓶颈点
8)安全性:构造恶意的字符请求,如:SQL 注入、XSS、敏感信息、业务逻辑(如:跳过某些关键步骤; 未经验证操纵敏感数据)
* 测试每个参数类型不合法的情况(类型不合法容易遗漏 NULL 型)
* 测试每个参数取值范围不合法的情况
* 测试参数为空的情况
* 测试参数前后台定义的一致性
* 测试每个参数的上下限(这里容易出致命的 BUG,如果程序处理不当,可能导致崩溃)
* 如果两个请求有严格的先后顺序,需要测试调转顺序的情况

六、使用ping命令后返回的是什么东西?

`ping`命令是一种网络诊断工具,用于测试主机之间的连接性和网络延迟。当你在命令行中执行`ping`命令时,它会发送网络控制协议(ICMP)回显请求消息到指定的目标主机,并等待该主机发送回相应的回显应答消息。

当`ping`命令成功地发送回显请求并接收到回显应答时,它会显示一条消息,指示成功发送和接收的回包数量,以及往返时间(往返时间是指从发送请求到接收到回应所经过的时间)。这些信息可以帮助你评估与目标主机之间的网络连接质量。

`ping`命令的输出通常包含以下信息:
- 目标主机的IP地址或主机名
- 每个回包的序列号
- 发送回包的时间戳
- 往返时间(通常以毫秒为单位)
- 回包丢失的情况(如果有的话)

`ping`命令会一直发送回显请求,直到你手动停止它,或通过设置计数或时间限制来控制发送回显请求的次数或持续时间。你可以根据输出信息来判断网络连接的稳定性和延迟情况。

当使用ping命令时,指定的目标主机可以是一个 IP 地址或一个域名(网址)。如果你提供的是域名(例如:www.example.com),ping命令会解析该域名并获取相应的 IP 地址,然后将回显请求发送到该 IP 地址所对应的服务器。

所以,当ping命令返回目标主机的 IP 地址时,它实际上是显示了你所提供的域名对应的服务器的 IP 地址。这可以帮助你验证域名解析是否正确,并与服务器建立网络连接。

七、POST 和 GET 有什么区别

POST和GET是HTTP协议中的两种常见的请求方法,它们有以下区别:

1. 数据传输位置:GET方法通过URL传输数据,将数据附加在URL的末尾,以查询字符串的形式发送。例如:http://example.com?param1=value1&param2=value2。而POST方法将数据作为请求的正文发送,不会显示在URL中。

2. 数据传输长度:GET方法对传输的数据长度有限制,不同的浏览器和服务器对URL长度的限制有不同的规定,通常在2KB到8KB之间。而POST方法没有对数据长度的限制。

3. 数据安全性:GET方法的数据在URL中可见,因此不适合传输敏感信息,如密码等。POST方法将数据放在请求的正文中,对数据的可见性有一定程度的保护,比GET方法更安全。

4. 数据存储位置:GET方法请求的数据会被浏览器缓存,数据会保存在浏览器的历史记录中。POST方法请求的数据不会被缓存

5. 请求语义:GET方法是一种幂等的请求,即多次重复请求产生的结果与一次请求的结果相同。POST方法一般用于向服务器提交数据,可能会对服务器的状态进行修改,因此不是幂等的。

总体而言,GET方法适用于请求获取数据,而POST方法适用于向服务器提交数据。根据具体的应用场景和需求,选择合适的请求方法可以更好地实现功能和保护数据的安全性。

八、Session 与 Cookie 有什么区别?

Session和Cookie是两种用于在Web应用程序中管理用户状态和跟踪的技术。

Session是一种服务器端的状态管理机制,它用于在用户与服务器之间跟踪会话状态。当用户访问一个网站时,服务器会为该用户创建一个唯一的会话标识符,通常是一个会话ID。服务器使用这个会话ID来存储和检索与该用户相关的数据,例如用户的登录状态、购物车内容等。会话数据存储在服务器上,用户的浏览器只保存一个指向会话的标识符(通常是一个名为session ID的Cookie)。通过将会话数据存储在服务器端,可以确保用户的数据不容易被篡改,并且在用户关闭浏览器或会话超时时可以自动清除。

Cookie是一种客户端的状态管理机制,它用于在用户的浏览器中存储小段数据。服务器可以将Cookie发送给用户的浏览器,并要求浏览器将其存储起来。下次用户再次访问相同的网站时,浏览器会将相应的Cookie发送给服务器,以便服务器可以读取其中的数据并作出相应的响应。Cookie通常用于跟踪用户的身份认证状态、保存用户的偏好设置等。与会话不同,Cookie的数据是存储在用户的浏览器中的,因此可以在不同的会话和浏览器之间进行持久化。

总结一下,Session和Cookie的区别如下
- 存储位置:Session的数据存储在服务器端,Cookie的数据存储在客户端(浏览器)。
- 数据安全性:由于Session的数据存储在服务器端,相对来说更安全,Cookie的数据存储在客户端,可能容易被篡改。
- 存储能力:Session可以存储较大量的数据,而Cookie由于浏览器的限制,每个Cookie的存储容量有限制(通常为4KB)。
- 生命周期:Session的生命周期通常由服务器管理,可以设置会话的过期时间;Cookie可以设置一个特定的过期时间,或者在没有设置过期时间时作为会话Cookie,仅在用户关闭浏览器时过期。
- 跨会话和浏览器:Session可以跨不同的会话和浏览器进行访问,而Cookie只在特定的会话和浏览器中可用。

在实际应用中,Session和Cookie经常一起使用。服务器可以使用Cookie来存储会话ID,使得每次请求时可以根据会话ID来检索相应的会话数据。这样可以结合Session的安全性和服务器端存储能力,同时利用Cookie的持久化和跨浏览器特性来提供更好的用户体验。

九、启动app时出现闪退,是什么原因导致的?

闪退是指在启动应用程序时,应用程序突然关闭或崩溃的情况。闪退可能由多种原因导致,以下是一些可能的原因和解决方法:

  1. 资源问题:应用程序需要大量内存或处理器资源,但设备的资源不足以支持其正常运行。解决方法包括关闭其他后台运行的应用程序,清理设备上的缓存,或考虑在较新且配置更高的设备上运行应用程序。

  2. 兼容性问题:应用程序可能不与设备的操作系统版本或硬件规格兼容。确保应用程序与设备的操作系统版本兼容,并检查应用程序的硬件要求。

  3. 编程错误:应用程序可能存在编程错误,例如内存泄漏、无限循环或空指针引用等。这些错误可能会导致应用程序崩溃并闪退。在这种情况下,开发人员需要检查和修复代码中的错误。

  4. 第三方库或插件问题:如果应用程序使用了第三方库或插件,那么这些库或插件可能存在与设备或其他库的冲突,导致应用程序闪退。更新库或插件到最新版本,或与开发者社区联系以获取支持和解决方案。

  5. 数据问题:应用程序在启动时可能尝试加载损坏或无效的数据,导致应用程序崩溃。清除应用程序的缓存或数据,并尝试重新启动应用程序。

十、通过输入a、 b、c的值来判断是否为等腰三角形,要求a、b、c为正整数且取值范围为(0,9999],请建立测试用例进行测试

等价类划分、边界值分析:

1.这道题的输入为a、b、c的值,值的要求数据类型满足正整数、长度满足(0,9999];

细分正整数、长度,得出输入值的要求(1)(0,9999] (2)整数 (3)数字 (4)3个数

2.三角形的要求,(5)任意2边之和大于第3边

3.等腰三角形的要求,(6)任意2边相等

满足以上要求,则正确输出等腰三角形

在设计测试用例数据的时候,遵循下面条件

先新增一条测试用例覆盖尽量多的有效类,再逐步补充用例,确保所有有效类覆盖完全

新增一条测试用例只覆盖一个无效类,继续新增,确保所有的无效类覆盖完全。

覆盖有效等价类的测试用例

 覆盖无效类的测试用例


http://www.ppmy.cn/news/77159.html

相关文章

第七章 回溯

目录 一、组合问题1.1 组合1.2 组合总和 III1.3 电话号码的字母组合1.4 组合总和1.5 组合总和 II 二、分割问题2.1 分割回文串2.2 复原 IP 地址 三、子集问题3.1 子集3.2 子集 II3.3 递增子序列 四、排列问题4.1 全排列4.2 全排列 II 五、棋盘问题5.1 N 皇后5.2 解数独 六、其它…

MySQL使用SELECTI...INTO OUTFILE导出表数据

通过对数据表的导入导出,可以实现 MySQL 数据库服务器与其它数据库服务器间移动数据。导出是指将 MySQL 数据表的数据复制到文本文件。数据导出的方式有多种,下面主要介绍使用 SELECTI...INTO OUTFILE 语句导出数据。 在 MySQL 中,可以使用 …

Flowable钉钉对接005-完成钉钉任务

企业中有自己的业务系统,审批都在业务系统中审批,如何结合移动办公的开放平台实现统一审批至关重要。 场景很简单,自己的系统中可以审批,钉钉上也可以审批,使用H5来适配,统一待办任务 统一待办审批 目标&am…

知识管理、文档管理两手抓,全靠它!

知识管理和文档管理是两个相互关联的概念,两者之间的关系非常密切。知识管理是指对组织内外的知识资源进行收集、整理、存储、共享和应用的过程,旨在提高组织的绩效和创新能力。而文档管理是指对组织内外的文档资源进行收集、整理、存储、共享和应用的过…

超低功耗SUB 1G无线收发芯片+32位 Soc芯片UM2080F32 无线集抄/测温/养老院人员定位

UM2080F32是一款超低功耗 32 位 IoTP:ARMCortex-M0,64KB Flash,16KB SRAM,Sub-1GHz 射频收发器。工作于200MHz~960MHz 范围内。 UM2080F32 内部还集成了 CAN、12 位 SAR ADC、UART、SPI、QSPI、I2C 等通用外围通讯接口&#xff0c…

Doxygen 源码分析: SymbolMap类

2023-05-21 10:59:35 ChrisZZ imzhuofoxmailcom Hompage https://github.com/zchrissirhcz 文章目录 1. Doxygen 版本2. SymbolMap 类概要3. 添加符号: SymbolMap<T>::add()4. 删除符号: SymbolMap<T>::remove()5. 符号查找: SymbolMap<T>::find()6. 哪里用了…

自动化、智能、机器人-2023-

文明&#xff1a;农业、工业、信息、智能&#xff0c;以目前认知的四个阶段。 农业文明到工业文明&#xff1a;机械自动化 工业文明到信息文明&#xff1a;电气自动化 信息文明到智能文明&#xff1a;数据自动化 这些时代典型的机器人&#xff1a; 机械自动化 电气自动化 数…

OJ练习第113题——解码方法

解码方法 力扣链接&#xff1a;91. 解码方法 题目描述 一条包含字母 A-Z 的消息通过以下映射进行了 编码 &#xff1a; ‘A’ -> “1” ‘B’ -> “2” … ‘Z’ -> “26” 要 解码 已编码的消息&#xff0c;所有数字必须基于上述映射的方法&#xff0c;反向映射回…