第一章
1.软件测试定义
定义:在规定条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否满足设计要求进行评估的过程
2.测试流程优化
- 概述:流程优化是一个持续过程,每个公司,每个团队情况不一样,总原则是。如果在项目过程中你感觉到某一点很别扭,很不爽,痛了,那么这就是优化点。
- 常见流程:
1.需求梳理(评估复杂度,筛选需求)
2.需求计划(评估测试时间)
3.任务分配(人员分配、资源分配、时间安排)
4.需求分析(分析理解需求、标注出不明确不理解的地方)
5.需求评审(和产品确认不明确和不理解的地方)
6.编写用例(xmind梳理测试点、编写测试用例)
7.用例评审(确认用例是否有遗漏的测试点及用例)
8.执行用例(执行前会有冒烟测试-按照用例进行测试)
9.发现并提交bug(禅道、云效:所属需求、所属模块、bug类型、当前指派、bug标题、bug描
述bug状态、重现步骤、严重等级、紧急程度、附件
10.跟踪并关闭bug- 测试报告
一、概述:包括项目背景、需求分析
二、测试时间、测试环境: 评审记录、测试范围、测试用例
三、测试过程:列出是否已经按照测试计划实现功能
四、功能实现清单
五、缺陷统计:测试缺陷统计
六、测试统计情况:问题统计、遗留的问题
七、测试总结:测试结论;(是否通过)、bug的解决程度
八、测试风险:时间、功能、bug
3.测试计划
-
概述:测试计划是指描述了要进行的测试活动的范围、方法、资源和进度的文档。它主要包括测试 项、被测特性、各阶段的测试任务、时间进度安排,谁执行任务和风险控制等,可以包括测试策略。
-
内容:测试计划目标、测试参考文档、术语与定义、测试内容、测试策略、测试资源、测试进度、风险分析、附录
4.测试策略
-
概述:侧重需求分析,评估风险,定义测试范围,确定测试方法,制定测试启动、停止、完成标准和条件。
-
内容:单元测试测试策略、集成测试测试策略、系统测试测试策略
测试类型:功能、性能、安全、兼容、易用、其他(接口测试、集成测试、故障转移和恢复测试、配置测试、安装测试、)
5.测试方案&测试策略
测试方案
概述:测试方案是指描述需要测试的特性、测试的方法、测试环境的规划、测试工具的设计和选择、
测试用例的设计方法、测试代码的设计方案。
内容:目的、范围、术语和缩略语解释、参考文献、测试目标、测试范围
6.测试用例
概述:根据测试计划,制定完成测试任务的具体测试步骤
内容:
白盒测试:逻辑覆盖、循环覆盖、基本路径覆盖
黑盒测试:边界值分析法,等价类划分,错误猜测法,因果图法,状态图法,测试大纲法,随机测试,场景法
性能测试:
安全测试:
7.文档沉淀
测试用例、测试报告、测试规范、测试方法、自动化测试、数据库对应功能
8.团队建设
了解成员特点
团队沟通:工作之外的友情和了解
相互监督
技能提升培训:自动化、性能测试、测试流程
制度流程先行建设
团队成员默契
一、测试应该具备的素质
1.沟通表达
-测试本身就是要和各方面的人员交涉的岗位,经常性的要和测试,开发,产品沟通,良好的表达能力能够高效的解决问题,同时良好的阐述问题也是专业性的表现。
2.积极主动
-积极主动也表现在及时沟通,发现问题及时通知到相关人员,并且找到相关人员去解决问题。
3.问题分析
4.风险预估
5.总结复盘
6.持续学习
7.责任感
8.打破砂锅问到底的精神
二、测试应该具备的技能
三、测试如何管理团队
第二章
1.自我介绍
》 1.面试官您好,我叫某某,来自上海。有四年软件测试工作经验,在这期间负责过十来个项目,积累了丰富的测试经验。可以独立负责项目,从需求分析-测试阶段-项目上线,可以保证被测系统测试点的全面覆盖,保证项目质量,能稳定上线。
》2.我主要做过系统测试,接口自动化,UI自动化,负责收集项目需求,搭建锅基于django的自动化测试平台,做成平台化服务,并进行团队推广使用。
》3.在该项目中集成了基于selenium+pytest+allure+mysql的ui自动化框架以及requests+pytest+allure+mysql的接口自动化框架。
》4.可以独立部署测试环境,平时用到的工具主要有jmeter、fiddler、linux、git、sql
》5.项目后期输出测试报告之后会根据项目编写一些文档,比如用户操作手册,项目介绍手册,测试流程手册,自动化平台手册,目的是为了方便其他测试人员或则新进员工的学习使用。
》6.平时空窗期和休息时间我回去大型博客网站上面学习新的测试技术,丰富自己。以上是我的简单的自我解释,您看我还需要做什么补充吗?
2.响应状态码
- 1xx :概述
信息。服务器收到请求,需要请求者继续执行操作
100:继续。客户端应继续其请求
101:切换协议。服务器根据客户端的请求切换协议- 2xx :概述
成功,操作被成功接收并处理
200:请求成功。一般用于GET与POST请求
201:已创建。成功请求并创建了新的资源
202:已接受。已经接受请求,但未处理完成- 3xx :概述
请求重定向,需要进一步的操作以完成请求
300:永久移动。请求的资源已被永久的移动到新URI
301:临时移动。资源只是临时被移动。客户端应继续使用原有URI
302:表示临时性重定向
304:未修改- 4xx: 概述
客户端错误,请求包含语法错误或无法完成请求
400:客户端请求的语法错误,服务器无法理解
403:服务器理解请求客户端的请求,但是拒绝执行此请求
404:服务器无法根据客户端的请求找到资源(网页)
405:客户端请求中的方法被禁止
415:服务器无法处理请求附带的媒体格式- 5xx: 概述
服务器内部错误,服务器在处理请求的过程中发生了错误
500:服务器内部错误
502:网关错误
2.Http和Https的区别
- 安全性上:
Https是使用TLS/SSL加密,Https加密传输
- 证书要求:
Https 协议需要ca证书,费用较高
- 默认端口:
Http默认端口80,Https默认端口443
- 连接状态:
Http是无状态连接(其数据包的发送、传输和接收都是相互独立的),https 的连接是有状态的
3.GET和POST的区别
- 参数位置:GET参数拼接在URL后面,参数可见。POST通过body传递参数,参数不可见
- 传输数据的大小:GET传输数据有限制,一般2-4k(浏览器不同限制不同,区别不大), POST通过配置文件设定,无限制
- 安全性:GET参数可见,POST参数不可见(防君子不防小人)
- 数据包:GET产生一个TCP数据包。POST产生两个TCP数据包
- 缓存性:GET请求是可以缓存的。POST请求不可以缓存
- 后退操作:GET请求后退无影响。POST请求后退会重新提交
4.项目
架构:web,app > cdn(content delivery network)> nginx on ecs(负载均衡)= 阿里云LSB方案 > web服务层 > service服务层 > 储存层(redis on ecs 、 mysql-master on ecs 、mysql-slave on ecs 、elasticsearch 、HDFS 、rabbitMQ)