软件测试面试八股文——基础篇
大家好
今天给大家分享软件测试面试题基础篇,看看大家能答对几题
1、软件测试方法有哪些分类?各自有什么特点?设计测试用例的主要方法有哪些?
白盒: 测试人员利用程序内部的逻辑结构及相关信息,设计或选择型试用例:对程序所有的逻辑路径进行测试。
黑盒: 测试证明每个实现了的功能是否符合要求
灰盒: 是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。灰盒测试不像白盒那样详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
2)单元测试、集成测试、系统测试、验收测试、回归测试、alpha测试(也可认为是实验室测试由非专业人士参加,但是一般有专业的测试工程师配合指导)、beta测试(Beta测试则是开放型测试,使用于产品的测试,内部测试稳定后,发布Beta版本软件让公共用户测试,)。
3)静态测试、动态测试
2.设计测试用例的主要方法
1)等价类划分:等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。
2)边界值分析法:最大值最小值
3)因果图法
4)场景法
5)错误推测法:是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法
6)正交实验法
7)判定表法
8)测试大纲法
3、提交缺陷的八大要素
1)缺陷编号:缺陷的唯一标识,在禅道之类的缺陷管理工具中一般会自动生成。
2)缺陷状态:缺陷跟踪过程的进展情况,缺陷工具都会有相应的流程和状态标识。
3)缺陷标题:揭示出该缺陷的本质。
4)缺陷类型:根据缺陷产生的来源和根源划分出的缺陷种类。代码错误、界面优化、设计缺陷、配置相关、程序非法退出、死循环、通讯中断或异常,数据破坏丢失或数据库异常
5)严重程度:缺陷对软件系统的影响程度。关键的、主要的、次要的、和无关紧要的。
6)优先级:修复缺陷的重要性或紧迫性。紧急、高、中和低。
7)重现步骤:要求开发人员按照步骤能重现bug。
8)测试环境:测试环境的配置,包括操作系统和浏览器。
4、软件开发的周期(软件开发阶段)?
1)需求分析阶段 产出物:《需求规格说明书》
2)设计阶段 产出物:《概要设计说明书》《 详细设计说明书》
3)编码阶段 产出物:程序
5、get和post请求的优缺点、区别
get和post是http请求的两种基本方法。HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样的。
相同点:GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。
1.post请求包含更多的请求头因为post需要在请求的body部分包含数据,所以会多了几数据描述部分的首部字段(如:content-type),这其实是微乎其微的。
2.最重要的一条,post在真正接收数据之前会先将请求头发送给服务器进行确认,然后才真正发送数据 post请求的过程: (1)浏览器请求tcp连接(第一次握手) (2)服务器答应进行tcp连接(第二次握手) (3)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送) (4)服务器返回100 Continue响应 (5)浏览器发送数据 (6)服务器返回200 OK响应 get请求的过程: (1)浏览器请求tcp连接(第一次握手) (2)服务器答应进行tcp连接(第二次握手) (3)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送) (4)服务器返回200 OK响应
6、测试步骤流程
1)测试需求分析阶段:阅读需求,理解需求,主要就是对业务的学习,分析需求点,参与需求评审会议。
2)测试计划阶段:主要任务就是编写测试计划,参考软件需求规格说明书,项目总体计划,内容包括测试范围(来自需求文档),进度安排,人力物力的分配,整体测试策略的制定。风险评估与规避措施有一个制定。
3)测试设计阶段:主要是编写测试用例,会参考需求文档(原型图),概要设计,详细设计等文档,用例编写完成之后会进行评审。
4)测试执行阶段:搭建环境,执行冒烟测试(预测试)-然后进入正式测试,bug管理直到测试结束。
5)测试评估阶段:出测试报告,确认是否可以上线。
7、测试模型
V模型
V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系。局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现。
W模型
W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。
W模型也有局限性。W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。
X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执行程序进行测试。
H模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。H模型指出软件测试要尽早准备, 尽早执行。不同的测试活动可以是按照某个次序先后进行的,但也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展。
总结:
V 模型——非常明确地标注了测试过程中存在的不同类型的测试。
W模型——非常明确地标注了生产周期中开发与测试之间的对应关系。
X 模型——这个模型指出整个测试过程是在探索中进行的。
H 模型——软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。
鉴于篇幅所限,选出经典7个软件测试面试题(基础篇)需要完整面经的朋友可以关注并私信我关键词“资料”免费领取