一、测试开发前置知识

1、什么是冒烟测试、回归测试?

冒烟测试(Smoke Testing)和回归测试(Regression Testing)是软件测试中两种不同的测试策略和阶段。
(1)冒烟测试(Smoke Testing)
定义:冒烟测试是软件开发中的一个初步测试阶段,也称为版本验证测试、健康检查或健全性测试。它的目的是确认新的或更改的代码不会破坏系统的基本功能。
特点:
快速:通常只包含少量关键的测试用例,目的是在短时间内确认系统是否基本可用。
前置:通常在进行详细测试之前进行,如果冒烟测试失败,那么进一步的测试可能会被推迟或取消。
验证基本功能:确保系统的核心或基本功能可以正常运行。
应用:在软件开发中,当开发团队完成了某个迭代或修复了一些严重的缺陷后,会进行冒烟测试以确保系统仍然稳定且基本功能可用。
(2)回归测试(Regression Testing)
定义:回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
特点:
重复性:每次代码更改后,都需要重新运行回归测试集。
全面性或选择性:可以是全面的(测试所有以前的功能),也可以是选择性的(只测试与更改相关的功能)。
自动化:由于需要频繁运行,回归测试通常会被自动化以提高效率。
应用:
新功能开发:当开发新功能时,需要确保新功能没有破坏现有功能。
缺陷修复:在修复一个缺陷后,需要确保修复没有引入新的缺陷,并且没有破坏其他功能。
软件升级或迁移:在软件升级或从一个环境迁移到另一个环境后,需要确保所有功能仍然可用。
总的来说,冒烟测试和回归测试都是软件开发中非常重要的测试阶段,它们确保了软件的质量和稳定性。

2、设计测试用例的方法有哪些?

等价类划分法
边界值分析法
错误推断法
场景设计法
判定表法

3、对于404或500,你会如何分析定位?

HTTP状态码404(未找到):
(1)检查URL:
确认请求的URL是否正确,没有拼写错误或多余的字符。
检查URL是否区分大小写(虽然大多数现代服务器不区分,但某些服务器可能仍然会)。
(2)服务器配置:
查看服务器配置文件(如Nginx、Apache的配置文件),确保请求的URL映射到了正确的资源或处理脚本。
如果使用的是动态路由,检查路由表是否包含了该URL。
(3)资源文件:
确认服务器上确实存在被请求的资源(如HTML文件、图片、API端点等)。
检查文件权限,确保服务器有权访问这些资源。
(4)缓存问题:
清除浏览器缓存或使用无痕模式再次尝试访问。
如果服务器使用了内容分发网络(CDN)或反向代理,检查其缓存设置。
(5)日志分析:
查看服务器访问日志,确认是否收到了该请求。
检查错误日志,看是否有与404相关的错误信息。
(6)第三方服务:
如果请求涉及第三方服务(如CDN、外部API等),确保这些服务运行正常。
HTTP状态码500(内部服务器错误)
(1)服务器日志:
立即查看服务器错误日志,查找与500错误相关的详细堆栈跟踪或错误信息。
分析日志中的时间戳,确定错误发生的时间点。
(2)代码审查:
根据错误日志中的信息,定位到引发错误的代码行或模块。
仔细检查相关代码,查找可能的逻辑错误、语法错误或配置问题。
(3)环境检查:
确保服务器环境(如操作系统、数据库、依赖库等)配置正确,且版本兼容。
检查服务器资源(如CPU、内存、磁盘空间)是否充足,没有耗尽。
(4)依赖项:
如果应用程序依赖于外部库或API,确保这些依赖项可用且版本正确。
检查是否有任何已知的与依赖项相关的问题或安全漏洞。
(5)权限问题:
检查应用程序和服务器进程是否具有执行所需操作所需的权限。
特别是与文件系统、数据库和其他资源交互时,权限问题可能会导致500错误。
(6)回滚更改:
如果最近对应用程序或服务器进行了更改(如代码更新、配置更改等),尝试回滚这些更改以查看问题是否得到解决。

4、什么是敏捷开发?敏捷开发流程是怎么样的?

敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。其核心思想在于小步快跑、快速迭代、拥抱变化,不追求一开始就尽善尽美,而是把最核心的东西先交付MVP(最小可行性产品),然后根据市场反馈来对需求进行验证和矫正,以灵活敏捷的改变调整去适应变化,在一次次持续迭代中达到最终目标。
敏捷开发的流程主要包括以下步骤:
(1)目标制定与对齐:通过市场调研、业务思路、风险评估制定公司规划和目标,根据这一目标产生所有部门的目标并实现对齐。
(2)产品规划:产品研发部门根据目标制定产品关键路线图,这个路线图中分布着不同的产品特性和其完成时间。
(3)组织产品待办列表:产品规划产生的需求、客户需求、市场人员收集到的缺陷等将组成产品待办列表。
(4)需求梳理:产品负责人(Product Owner)对这个列表进行梳理,并在需求梳理会(Backlog Grooming Meeting)讲解具体每一个需求,团队成员根据需求的复杂程度评估每个任务的工作量,输出本次迭代的待办事项列表,完成优先级排序等工作。
(5)迭代规划:通过Sprint计划会,明确要执行的工作、冲刺目标等。
(6)迭代开发:期间会进行每日站会、性能测试、CodeReview、Demo、测试等工作。
(7)Sprint评审:由每个任务的负责人演示其完整的工作,由PO确定Sprint目标是否完成,版本什么时候对外发布,新增bug的紧急程度等。
(8)开回顾会议:回顾会议由Scrum团队检视自身在过去的Sprint的表现,包括人、关系、过程、工具等,思考在下一个Sprint中怎么样可以表现得更好,更高效,怎么样可以和团队合作地更愉快。

5、做接口测试过程中,下游接口需要上游数据依赖,如何处理?

(1)链式调用:
按照业务逻辑顺序,首先调用上游接口,然后基于上游接口的响应结果调用下游接口。
关键点:确保上游接口的稳定性和可用性,因为下游接口的测试依赖于上游接口的正确响应。提取上游接口的关键数据(如token、用户ID等),并将其作为下游接口的参数。
(2)使用全局变量或会话存储:
当测试框架支持全局变量或会话存储时,可以在调用上游接口后将关键数据保存在这些存储中,以便在调用下游接口时直接使用。
关键点:选择合适的存储机制(如全局变量、测试框架的会话对象等)。在调用上游接口后,立即保存关键数据。在调用下游接口前,从存储中读取数据。

6、POST与GET请求的区别?

(1)get是从服务器上获取数据,post是向服务器传送数据。
(2)get请求时通过URL直接请求数据,数据信息可以在URL中直接看到,比如浏览器访问;而post请求是放在请求头中的,用户无法直接看到。
(3) get传送的数据量较小,有限制,不能大于2KB;这主要是因为它受约于URL长度的限制。
(4)post传送的数据量较大,一般被默认为不受限制,但理论上,IIS4中最大量为80KB,IIS5中为100KB。
(5)get请求因为数据参数是暴露在URL中的,所以安全性比较低,如密码不能暴露的就不能用get请求;post请求中,请求信息是放在请求头的,安全性较高,可以使用。
(6)Get限制From表单的数据集的值必须为ASCLL字符,而Post支持整个ISO10646字符集。

7、用sql查询所有学生中,各科最高学生的成绩,并按成绩大小排序。(表:student_ score,字段:student_name、score、subject)

select
subject,
MAX(score) AS max_score
from
student_score s
group by
subject
order by
max_score;

8、Python有几种数据类型?

(1)Numbers(数字):数值类型就是我们日常生活中的数字,python的数字类型包括:int(长整型) float(浮点型) complex(复数)。
(2)Boolean(布尔):布尔类型是与逻辑相关一种数据类型,只有两个值:True(真)与False(假)。
(3)String(字符串):在Python变量定义中,如果其赋值的内容是通过单引号或双引号引起来的内容就是字符串String类型。
(4)List(列表):python的列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套或者叫多维列表,可以用来表示多维数组)。
(5)Tuple(元组):python的元组类似于list列表,元组用()标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。它支持字符,数字,字符串,列表,元组等所有类型元组的取值、截取、连接、重复与列表一样。
(6)Dictionary(字典):字典是除列表以外python之中最灵活的内置数据结构类型;列表是有序的对象集合,字典是无序的对象集合;字典用"{ }"标识;字典由索引(key)和它对应的值value组成。
(7)Set(集合):集合是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员,基本功能是进行成员关系测试和删除重复元素,可以使用大括号 { } 或者 set() 函数创建集合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值