海外代购网站怎么做/常见的网站推广方式
文章目录
- 软测面试题附答案(一)
- 一、常规面试题
- 1、HTTP里面常见的请求方法有哪些?
- 2、测试缺陷报告的内容一般包含哪些内容?
- 3、给你一个网站,你如何进行测试?
- 4、描述一下超文本传输协议Http消息体
- 5、说下常用的Http请求头有哪些?
- 6、什么时候用自动化测试和什么时候用手工测试?
- 7、解释下B/S架构和C/S架构?
- 8、TDD是什么意思?
软测面试题附答案(一)
金三银四跳槽季!!!给大家整理了一些软件测试会碰到的面试题,也有我个人的一些理解。
大致分为常规面试题,接口,自动化,测开等范围。
本篇主要是涉及常规面试题。
后续文章:
接口,自动化方面,链接:软测面试题附答案<二>
测开相关,链接:软测面试题附答案<三>
一、常规面试题
1、HTTP里面常见的请求方法有哪些?
-
http1.0定义了三种:
-
GET: 向服务器获取资源,比如常见的查询请求
-
POST: 向服务器提交数据而发送的请求
-
Head: 和get类似,返回的响应中没有具体的内容,用于获取报头
-
-
http1.1定义了六种
-
PUT:一般是用于更新请求,比如更新个人信息、商品信息全量更新
- PATCH:PUT 方法的补充,更新指定资源的部分数据
- DELETE:用于删除指定的资源
- OPTIONS: 获取服务器支持的HTTP请求方法,服务器性能、跨域检查等
- CONNECT: 方法的作用就是把服务器作为跳板,让服务器代替用户去访问其它网页,之后把数据原原本本的返回给用户,网页开发基本不用这个方法,如果是http代理就会使用这个,让服务器代理用户去访问其他网页,类似中介。
- TRACE:回显服务器收到的请求,主要用于测试或诊断
-
这里再告诉大家一个
RESTful API
的api设计模式。有兴趣可以自行了解
2、测试缺陷报告的内容一般包含哪些内容?
- 缺陷编号和标题。(具有唯一性)
- 环境的基本信息。(操作系统、测试版本、产品和模块)
- 缺陷类型。
- 缺陷复现步骤。
- 缺陷的严重程度。(致命、严重、一般)
- 缺陷的优先级。(1,2,3)
- 缺陷的状态。(激活,已解决,已关闭)
- 缺陷的相关人员。(提交人,指派解决的人,抄送人)
3、给你一个网站,你如何进行测试?
首先、查找需求文档、原型图、网站设计等相关文档,分析测试需求,确定测试点。
- 制定测试计划,确定测试范围和测试策略,一般考虑一下各部分
- 功能性测试
- 界面测试
- 性能测试
- 数据库测试
- 安全性测试
- 兼容性测试
- 如果网站需求变动不大,可以考虑简历自动化功能+接口测试
4、描述一下超文本传输协议Http消息体
- Http请求消息结构
- 请求行
- 请求方法
- URL地址
- 协议名
- 请求头
- 报文头包含若干个属性,格式为
"属性名":"属性值"
- 服务端据此获取客户端的基本信息
- 报文头包含若干个属性,格式为
- 请求体
- 请求的参数,可以是json对象,也可以是前端表单生成的key=value&key=value的字符串
- 请求行
- Http响应消息结构
- 响应行
- 报文协议及版本、状态码
- 响应头
- 报文头包含若干个属性,格式为
"属性名":"属性值"
- 报文头包含若干个属性,格式为
- 响应正文
- 响应报文体,我们需要的内容,有很多种形式,比如html、json、图片、视频文件等等。
- 响应行
5、说下常用的Http请求头有哪些?
-
请求头
- 报文头包含若干个属性 格式为“属性名:属性值”,
- 服务端据此获取客户端的基本信息
-
常见的请求头
- Accept: 览器支持的 MIME 媒体类型, 比如 text/html,application/json,image/webp,/ 等
- Accept-Encoding: 浏览器发给服务器,声明浏览器支持的编码类型,gzip, deflate
- Accept-Language: 客户端接受的语言格式,比如 zh-CN
- Connection: keep-alive , 开启HTTP持久连接
- Host:服务器的域名
- Origin:告诉服务器请求从哪里发起的,仅包括协议和域名 CORS跨域请求中可以看到
- response有对应的header,Access-Control-Allow-Origin
- Referer:告诉服务器请求的原始资源的URI,其用于所有类型的请求,并且包括:协议+域名+查询参数; 很多抢购服务会用这个做限制,必须通过某个入来进来才有效
- User-Agent: 服务器通过这个请求头判断用户的软件的应用类型、操作系统、软件开发商以及版本号、浏览器内核信息等; 风控系统、反作弊系统、反爬虫系统等基本会采集这类信息做参考
- Cookie: 表示服务端给客户端传的http请求状态,也是多个key=value形式组合,比如登录后的令牌等
- Content-Type: HTTP请求提交的内容类型,一般只有post提交时才需要设置,比如文件上传,表单提交等
6、什么时候用自动化测试和什么时候用手工测试?
- 自动化测试方便,自动验证功能是否有问题
- 更好的利用资源,节约人力成本
- 覆盖更全,增加软件的稳定性
- 尤其适用于兼容性测试和回归测试
- 软件需求变更少,项目周期长,稳定性强
- 手工测试必不可少,自动化无法替代手工测试。常规做法一般都是手工测一遍,再来把一些用例自动化。
7、解释下B/S架构和C/S架构?
- 什么是C/S架构
- 客户机-服务器,即Client-Server(C/S)结构 但是缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度
-
什么是B/S架构
- B/S架构即浏览器和服务器架构模式,是WEB兴起后的一种网络架构模式 WEB浏览器是客户端最主要的应用软件 统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。
8、TDD是什么意思?
中文意思是“测试驱动开发”,是再开发代码之前,先编写单元测试用例,用测试的代码确定要编写什么样的代码。它的整个思路就是通过测试来驱动整个软件开发的进度,当然这对测试人员来说是一个更高的要求和标准。
- 工作流程:
- 先写功能测试,用户角度描述应用的新功能
- 功能测试失败后,想办法编写代码让它通过(或者说至少让当前失败的测试通过)此时,使用一个或多个单元测试,定义希望代码实现的效果,保证为应用中的每一行代码(至少)编写一个单元测试。
- 单元测试失败后,编写最少量的应用代码,刚好让单元测试通过。有时,要在第二步和第三步之前多次往复,直到我们觉得功能测试有一点进展为止。
,使用一个或多个单元测试,定义希望代码实现的效果,保证为应用中的每一行代码(至少)编写一个单元测试。 - 单元测试失败后,编写最少量的应用代码,刚好让单元测试通过。有时,要在第二步和第三步之前多次往复,直到我们觉得功能测试有一点进展为止。
- 再次运行功能测试,看是否通过,或者有没有进展。这一步可能促使我们编写一些新的单元测试和代码等。