每天十道软件测试面试题(三)

1、测试流程什么样的

需求的了解 – 测试计划 – 测试需求分析 - 测试设计 - 测试脚本 - 执行测试 - 测试总结
测试计划: 由测试经理编写,测试计划的组成(测试策略、资源需求、时间安排、测试过程管理)
测试需求:测试点分析由测试人员参与编写,常用的工具有思维导图、excel、流程图…
测试设计:测试用例测试人员编写,(编号、标题、前置条件、输入、步骤、预期结果、优先级)编写测试用例的依据是SRS文档,编写的方法主要有等价类、边界值、判定表、场景法、错误分析法
测试脚本:由测试人员开发测试脚本
测试执行: 准备测试环境(基础环境、操作系统、数据库、jdk)、搭建测试对象(测试的软件)
缺陷管理: 编号、标题、版本、模块、责任、严重级别、bug的分类、优先级、环境(win10 chrome105)、步 骤、附件。
测试报告:测试经理编写测试报告(测试的环境、范围、用例;针对功能模块细化用例以及用例的执行情况;数据汇总;数据分析;结论)

2、测试计划的内容

5W1H原则:why(项⽬介绍) when(进度安排) what(测试重点) who(⼈员安排) where(硬件) how(测试⽅法/⾃动化,⼿动,⼯具)

  • 测试⽬的:定义测试计划的重点,功能/性能/流程/数据(易⽤性/恢复。。。)
  • 测试项⽬简介:软件产品规格,软件产品信息,软件产品简介主要功能,项⽬背景,软件⾯向⽤户
  • 测试参考⽂档:测试依据以及测试计划编写参考⽂档,例:需求说明书/概要设计/详细设计/数据库设计/⽤户⼿册/开发计划
  • 测试提交⽂档:测试⽤例/⽇报周报/缺陷报告/总结报告
  • 术语和定义:项⽬中专业术语的解释
  • 测试策略:进⼊/退出标准(准⼊准出,开始标准,结束标准)
    退出:是否提交该轮测试的测试报告,⽤例执⾏率,缺陷遗留情况
    进⼊:上⼀轮测试退出结果
  • 确定测试内容:功能/性能/安全等测试的范围和内容
  • 资源:⼈⼒资源(⾓⾊/⼈数/指责)系统资源(软硬件)
  • 测试进度:各个测试阶段对于⼈⼒和系统资源以及时间的安排
  • 测试⼈员的任务分配:所属模块的负责内容
  • 风险和问题:需求整改/⼈员流动/测试⼯程师对业务的了解度/软硬件环境
  • 测试⼯具:测试过程会⽤到的⼯具(管理⼯具禅道和QC(TD)(ALM),性能⼯具jmeter/loadruner,⾃动化功能⼯具QTP/seleium⽹
    页/appium,接⼝⼯具jmeter,postman,fiddler)

3、测试报告的内容

  • 简介:编写⽬的/参考⽂档/术语定义
  • 测试背景:项⽬背景和测试环境(什么架构上,进⾏了什么类别的测试,依据了什么⽂档)
  • 进度执⾏情况:⼈员安排和每个模块的测试时间和版本信息
  • ⽤例执⾏情况:⽤例数分布(模块,类型)和执⾏率和通过率
  • 缺陷统计情况:缺陷数量统计,缺陷重要级别统计,缺陷在不同版本的数量和重要级别,缺陷总数和修复数和遗留以及遗留原因,重要级别的bug主要是什么问题,列举⼀些以南bug说明
  • 测试结论:此次测试通过与否
  • 测试建议:通过此次测试对之后测试有何建议
    • 在项⽬开始的时候应该制定编码标准,数据库标准,需求变更标准,开发和测试⼈员都严格按照标准进⾏,可以在后期减少因为开发,测试不⼀致⽽导致的问题,同时也可以降低沟通成本。
    • 发布版本的时候,正确布置测试环境,减少因为测试环境,测试数据库数据的问题⽽出现的⽆效 bug。
    • 开发⼈员解决 bug 的时候,填写 bug 原因以及解决⽅式,⽅便 bug 的跟踪。
    • 开发⼈员在开发版本上发现 bug,可以通知测试⼈员,因为开发⼈员发现的bug很有可能在测试版本上出现,⽽测试⼈员和开发⼈员的思路不同,有可能测试⼈员没有发现该 bug,⽽且,这样可以保证发现的

4、黑盒测试的方法

  • 等价类划分法、
  • 边界值分析法、
  • 错误推测法、
  • 因果图法、
  • 判定表驱动法、
  • 功能图法、
  • 正交实验法

5、敏捷开发流程请添加图片描述

1. 目标制定:通过市场调研、业务思路、风险评估制定公司规划和目标;

2. 目标拆解:公司目标拆解到各个部门;

3. 产品规划:产品研发部门根据目标制定产品关键路线图,这个路线图中分布着不同的产品特性和其完成时间;

4.组织产品待办列表:产品规划产生的需求、客户需求、市场人员收集到的缺陷等将组成产品待办列表;

5. 需求梳理:然后产品负责人(Product Ower)对这个列表进行梳理,并在需求梳理会(Backlog Grooming Meeting)讲解具体每一个需求,团队成员根据需求的复杂程度评估每个任务的工作量,输出本次迭代的待办事项列表,完成优先级排序等工作;

6.迭代规划:通过Sprint计划会,明确要执行的工作、冲刺目标等,

7.迭代开发:期间会进行每日站会、性能测试、CodeReview、Demo、测试等工作;

8. Sprint评审:由每个任务的负责人演示其完整的工作,由PO确定Sprint目标是否完成,版本什么时候对外发布,新增bug的紧急程度等等。

9.开回顾会议:回顾会议由Scrum团队检视自身在过去的Sprint的表现,包括人 、关系、过程、工具等,思考在下一个Sprint中怎么样可以表现得更好,更高效,怎么样可以和团队合作地更愉快。

6、说一下,form-data、x-www-form-urlencoded、raw、binary

1、form-data:
就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有Content-Type来说明文件类型;content-disposition,用来说明字段的一些信息;
由于有boundary隔离,所以multipart/form-data既可以上传文件,也可以上传键值对,它采用了键值对的方式,所以可以上传多个文件,在springmvc中可以使用MultipartHttpServletRequest接收通过api根据"name"获取不同的键值,也可以通过MulTipartFile数组接收多个文件。

2、x-www-form-urlencoded:
就是application/x-www-from-urlencoded,会将表单内的数据转换为键值对,&分隔。
当form的action为get时,浏览器用x-www-form-urlencoded的编码方式,将表单数据编码为
(name1=value1&name2=value2…),然后把这个字符串append到url后面,用?分隔,跳转
到这个新的url。
当form的action为post时,浏览器将form数据封装到http body中,然后发送到server。
这个格式不能提交文件。

3、raw
可以上传任意格式的文本,可以上传text、json、xml、html等

4、binary
相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件
multipart/form-data与x-www-form-urlencoded区别
multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息;
x-www-form-urlencoded:只能上传键值对,并且键值对都是间隔分开的。

7、Http 响应码 有哪些

1xx 表示【临时响应】并需要请求者继续执行操作的状态代码

  • 100(继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。
  • 101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。

2xx 表示【成功】处理了请求的状态代码

  • 200(成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。
    请求成功并且服务器创建了新的资源。
  • 202(已接受) 服务器已接受请求,但尚未处理。
  • 203(非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
  • 204(无内容) 服务器成功处理了请求,但没有返回任何内容。
  • 205(重置内容) 服务器成功处理了请求,但没有返回任何内容。
  • 206(部分内容) 服务器成功处理了部分 GET 请求。

3xx 表示要完成请求,需要进一步操作。通常,这些状态代码用来【重定向】

  • 300(多种选择) 针对请求,服务器可执行多种操作。服务器可根据请求者(user agent)选择一项操作,或提供操作列表供请求者选择。
  • 301(永久移动) 请求的网页已永久移动到新位置。服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。
  • 302(临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
  • 303(查看其他位置) 请求者应当对不同的位置使用单独的 GET 请求来检索响应时,服务器返回此代码。
  • 304(未修改) 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
  • 305(使用代理) 请求者只能使用代理访问请求的网页。如果服务器返回此响应,还表示请求者应使用代理。
  • 307(临时重定向) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

4xx 表示【请求可能出错】,妨碍了服务器的处理

  • 400(错误请求) 表示客户端请求的语法错误,服务器无法理解,例如 url 含有非法字符、json 格式有问题。
  • 401(未授权) 请求要求身份验证。对于需要登录的网页,服务器可能返回此响应。
  • 402表示保留,将来使用
  • 403(禁止) 表示服务器理解请求客户端的请求,但是拒绝请求。
  • 404(未找到) 服务器无法根据客户端的请求找到资源(网页)。
  • 405(方法禁用) 禁用请求中指定的方法。
  • 406(不接受) 无法使用请求的内容特性响应请求的网页。
  • 407(需要代理授权) 此状态代码与 401(未授权)类似,但指定请求者应当授权使用代理。
  • 408(请求超时) 服务器等候请求时发生超时。
  • 409(冲突) 服务器在完成请求时发生冲突。服务器必须在响应中包含有关冲突的信息。
  • 410(已删除) 如果请求的资源已永久删除,服务器就会返回此响应。
  • 411(需要有效长度) 服务器不接受不含有效内容长度标头字段的请求。
  • 412(未满足前提条件) 服务器未满足请求者在请求中设置的其中一个前提条件。
  • 413(请求实体过大) 表示响应实在太大。服务器拒绝处理当前请求,请求超过服务器所能处理和允许的最大值。
  • 414(请求的 URI 过长) 请求的 URI(通常为网址)过长,服务器无法处理。
  • 415(不支持的媒体类型) 请求的格式不受请求页面的支持。
  • 416(请求范围不符合要求) 如果页面无法提供请求的范围,则服务器会返回此状态代码。
  • 417(未满足期望值) 在请求头 Expect 指定的预期内容无法被服务器满足(力不从心)。
  • 418表示我是一个茶壶。超文本咖啡馆控制协议,但是并没有被实际的 HTTP 服务器实现。
  • 420表示方法失效
  • 422表示不可处理的实体。请求格式正确,但是由于含有语义错误,无法响应。

5xx 表示【服务器】在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错

  • 500(服务器内部错误) 服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。
  • 501(尚未实施) 服务器不具备完成请求的功能。例如,服务器无法识别请求方法时可能会返回此代码。
  • 502(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。
  • 503(服务不可用) 服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
  • 504(网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。
  • 505(HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 版本。

8、请求头的内容

1.Accept

  • 告诉服务器,客户端支持的数据类型

2.Accept-Encoding

  • 告诉服务器,客户机支持的数据压缩格式。

3.Accept-Language

  • 告诉服务器,客户机的语言环境。

4.Connection

  • 客户机通过这个头告诉服务器,请求完后是关闭还是保持链接。

5.Content-Length

  • 表示请求消息正文的长度。

6.Content-Type

  • 客户机通过这个头告诉服务器,客户端向服务器发送的数据类型。

7.Cookie

  • 客户机通过这个头告诉服务器,可以向服务器带数据。

8.Host

  • 客户机通过这个头告诉服务器,想访问的主机名。

9.Origin

  • 用来说明请求从哪里发起的,包括且仅仅包括协议和域名。
  • 这个参数一般只存在于CORS跨域请求中,可以看到response有对应的header:Access-Control-Allow-Origin。

10.Referer

  • 客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的。(一般用于防盗链)

11.User-Agent

  • 客户机通过这个头告诉服务器,客户机的软件环境。

12.Accept-Charset:

  • 告诉服务器,客户端采用的编码。

13.Date:

  • 客户机通过这个头告诉服务器,客户机当前请求时间。

14.If-Modified-Since

  • 客户机通过这个头告诉服务器,资源的缓存时间。

9、响应头

1.Connection

  • 服务器通过这个头,响应完是保持链接还是关闭链接。

2.Content-Encoding

  • 服务器通过这个头,告诉浏览器数据采用的压缩格式。

3.Content-Type

  • 服务器通过这个头,回送数据的类型

4.Date

  • 告诉客户机,返回响应的时间。

5.Server

  • 服务器通过这个头,告诉浏览器服务器的类型

6.Transfer-Encoding

  • HTTP协议头字段Transfer_Encoding,分块传输编码,一般出现在http的响应头中。该头字段存在与HTTP协议的1.1版本中,提供一种数据传输机制。
    通常http协议在传输数据时是整体一起发送的,数据体的长度由Content-Length字段指定,方便判断消息结束。
    服务器通过这个头,告诉浏览器数据的传送格式。

7.vary

  • Vary 字段用于列出一个响应字段列表,告诉缓存服务器遇到同一个 URL 对应着不同版本文档的情况时,如何缓存和筛选合适的版本。

8.Location

  • 这个头配合302状态码使用,告诉用户端找谁。

9.Content-Length

  • 服务器通过这个头,告诉浏览器回送数据的长度

10.Content-Language

  • 服务器通过这个头,告诉服务器的语言环境

11.Last-Modified

  • 服务器通过这个头,告诉浏览器当前资源的缓存时间

12.Refresh

  • 服务器通过这个头,告诉浏览器隔多长时间刷新一次

13.Content-Disposition

  • 服务器通过这个头,告诉浏览器以下载的方式打开数据。

14.ETag: 与缓存相关的头。

  • (1)Expires
    服务器通过这个头,告诉浏览器把回送的数据缓存多长时间。-1或0不缓存。

  • (2)Cache-Control和Pragma
    服务器通过这个头,也可以控制浏览器不缓存数据

10、请求方式哪几种

  1. get: 请求指定页面信息,并返回实体主体。
  2. head: 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头。
  3. post: 向指定资源提交数据进行处理请求(例如提交表单或上传文件),数据包含在请求体中。
    post请求可能会导致新的资源的建立或已有资源的修改。
  4. put: 从客户端向服务器传送的数据取代指定的文档的内容。
  5. delete: 请求服务器删除指定的页面。
  6. connect: HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
  7. options: 允许客户端查看服务器的性能。
  8. **trace:**回显服务器收到的请求,主要用于测试或诊断。

有哪位大佬知道mock吗

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值