前言

例如:测试工程师面试题目

1、软件的生命周期有哪些阶段?

  1. 需求阶段
    分析和学习阶段,团队去查看这个需求是不是可测的
  2. 计划阶段
    辨别出哪些活动和资源和测试的目标时匹配的,辨别并追踪这些测试的指标、计划
  3. 分析阶段
    通过需求文档等条件辨别测试条件,追溯到需求
  4. 设计阶段
    • 概述测试条件
    • 获取测试数据
    • 搭建环境
    • 跟踪测试指标
  5. 编码阶段
    创建详细的测试用例,进行编码
  6. 运行和维护阶段
  7. 总结阶段
    检验完成度和用户满意度

2、测试的整个流程有哪些

  1. 需求评审
    阅读需求,理解需求,查看是否有不符合逻辑的需求,明确测试周期
  2. 测试计划
    根据项目计划和开发人员的时候指定测试计划,包含测试内容、测试规划、测试环境、项目的任务和目的
  3. 设计测试用例
    核心模块,设计测试用例常用方式有:等价类、边界值、场景法、判定表等
  4. . 用例评审
    确认结果的准确性,避免遗漏
  5. 执行测试用例
    搭建好环境后进行冒烟测试,功能测试,兼容性测试,接口测试,性能测试,系统测试等
  6. 测试报告
    概述项目内容,报告测试用例的执行情况,统计测试结果,测试评估,判断是否符合用户标准

3、项目中的测试流程(结合自己的项目经历)

和2差不多,主要是结合项目把2具体化 例如:

  1. 需求评审:团队的人员(产品经理、项目经理、开发人员、测试人员)一起探讨,明确需求,确定需求的可行性
  2. 指定测试计划:明确各个人员的工作内容和时间,同一测试使用的工具
  3. 设计测试用例
  4. 编码,执行测试用例,发现bug,并修改
  5. 回归测试,验收测试

4、测试用例设计方法

  • 白盒测试:代码检查、静态结构分析、逻辑覆盖法、基本路径覆盖法、域测试、符号测试
  • 黑盒测试(常用):等价类,边界值,场景法,决策表,因果图,错误推断法,正交测试法

5、软件测试分为几个阶段且各个阶段的策略和要求

  • 单元测试:由开发人员针对软件设计的程序模块(最小单位)进行测试
  • 集成测试:由开发人员将模块按照要求组装起来进行测试
  • 系统测试:由测试人员通过充分运行系统,验证各个子系统都可以正常工作
  • 验收测试:团队和客户共同完成,按照《需求规格说明书》为标准,模拟实际用户的运行环境,最后一次测试,是最全面的测试

6、对bug的描述

  1. 表名bug的标题(尽可能详细,最好可以通过标题就看透bug)
  2. 测试的版本
  3. 测试环境:电脑版本号、浏览器版本、编译器类型等
  4. 具体的测试步骤
  5. 预期结果
  6. 实际结果
  7. 错误截图、日志等

7、测试结束的标志

  1. 成功完成单元测试、集成测试、系统测试、验收测试这四个测试阶段
  2. 所有的测试用例都执行完毕
  3. 缺陷修复率和覆盖率达到标准
  4. 符合项目计划
  5. 基本指标的质量过关

8、与开发产生分歧,会怎么做?

例如:你觉得这个是bug,而开发觉得不是
首先明确一点就是开发和测试对bug的定义不一样,出发的角度不一样,开发可能对bug的敏感度低一点,当出现分歧的时候,应该主动从自己的角度告诉他自己认为这是bug的原因以及可以支撑自己结论的截图等,并让他也说出她的观点和看法,根据产品的需求和最初的测试计划出发,判断这个是不是bug,也可以请来项目经理和产品经理从他们旁观者的角度做出他们的判断

9、常见的状态码

1xx:与信息有关,表示服务器接受信息,可以继续操作
2xx:成功,服务器成功接受请求并处理
3xx:重定向
4xx:客户端错误:输入的url有语法有错
5xx:服务器端错误

10、http和https的区别

  • http是用于传输HTML等超媒体文档的运行在TCP上的基于应用层的协议,是互联网应用最广泛的传输协议,端口号是80,是明文的无状态的,不需要证书的
  • https是http的安全版本,加入了SSL层,比http更安全,端口号是443,加密传输,需要资金来申请证书

11、get方法和post方法的区别

  1. get方法使用URL或者cookie传参,post把数据存在body里
  2. get的URL长度有限,post的数据可以很大
  3. get的可以在地址栏看见,不安全,机密信息用post传输
  4. get用户查数据,post用于增、删、改、提交数据

12、常用的测试工具有哪些

  1. Java编译器
    eclipse、IDEA
  2. Python编译器
    pycharm
  3. 抓包工具
    fiddler
  4. 数据库
    SqlServer、MySQL、MongoDB
  5. 接口测试工具
    postman、jmeter
  6. 压力测试工具
    jmeter
  7. 单元测试框架
    Junit、testng、pytest
  8. 自动化测试框架
    appium、uiautomate、selenium
  9. bug管理工具
    禅道、bugfree

13、接口测试常出现的问题

  1. 传递正确的参数,结果是否正确
  2. 参数的类型和长度等有限制,在测试时应该总和考虑,进行排列组合,保证覆盖所有情况
  3. 我提交订单的时候,传递金额的参数做出修改,后台是否有验证,付款的时候,利用抓包修改金额,如果我以这个金额付款了,说明接口有问题
  4. 登录网站的时候会对我们的信息进行存储,如果信息不加密就会损害我们的利益
  5. 设置密码的时候各种验证和条件
  6. 特点用户的权限,普通用户是否可以

14、上下游接口的依赖

设置一个全局变量
登录产生的token,通过全局变量传递token的参数
依赖第三方数据的接口可以借助mock虚拟对象或者先返回上一个接口的返回值,在将这个返回这设置为环境变量或者全局变量,再设置下一个参数的类型。

15、依赖登录的接口如何处理?

登录后产生的token,将其存放在json等配置文件里,等其他接口想用的时候,直接引入这个配置文件的变量的参数就行,如果是cookie还可以引入session关联

16、用例设计

设计一个水杯?

  • 功能性:水杯装水的时候漏不漏,客户能不能用这个水杯喝到水,水杯的大小形状,容水量是多少,耐温性能怎么样,被子的材料
  • 兼容性:是否可以装白酒、啤酒、醋、油
  • 安全性:是否有毒和异味、是否会变形,不同液体是否会有化学反应
  • 广告设计:广告是否合法,是否容易脱落、是否遇到液体就脱落
  • 可移植性:在不同温度和地方下使用是否一样正常
  • 耐压性:测试最大的抗破坏的限度,发送破坏时会客户有影响吗
  • 用户手册:对被子的用法、限制、使用环境和条件做出详细说明

17、移动端测试涉及哪些方面

权限测试、安装测试、卸载测试、UI测试、兼容性测试、功能测试、性能测试、回归测试、升级更新测试、用户体验测试

18、fiddler如何抓包

电脑端打开fiddler后,打开浏览器后,fiddler会自动开启本地代理,进行抓包,获取请求和参数
手机端需要在网络处进行设置,设置成登录fiddler的电脑的IP地址和8888端口,把fiddler作为代理服务器,连接手机和fiddler后进行抓包

19、性能测试是什么?

系统在一定压力下,查看CPU、内存、硬盘、网络、并发用户量、响应时间、每秒事物处理量等各项指标,模拟在生产运行下的压力量和使用场合,系统是否满足了生产要求(在一定条件下系统的各项指标)

20、负载测试是什么?

站在用户角度,在一定条件下,通过不断的改变负载条件,判断软件系统的性能表现,期望是各种指标达到满足,查看是否存在瓶颈

21、bug的周期

发现BUG–>提交BUG–>指派BUG–>研发确认BUG–>研发去修复BUG–>回归验证BUG–>是否通过验证–>关闭BUG

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐