软件测试经典面试题及解答
测试理论
- 需求分析、系统设计、编程实现、测试、部署、维护
- 瀑布:线性流程,各个阶段需按顺序严格执行 - 迭代: - 增量: - 敏捷: - 螺旋模式: - V模式: - Devops模式
1.软件工程
- 阐述软件生命周期都有哪些阶段?常见的软件生命周期模型有哪些
- 什么是版本控制,常用的版本控制系统有哪些
- 简述软件测试与软件开发之间的关系
- 线上版本如何测试和更新
- 初进公司如何熟悉项目
- 软件测试的定义和目的分别是什么?
2.测试模型
- 常见测试模型有哪些
- 请根据”V"模型分别概述测试人员在软件的需求定义阶段、设计阶段、编码阶段、系统集成阶段的工作任务及其相应生成的文档
3.测试计划
- 编写测试计划的目的是什么
- 什么是测试方案?测试方案和测试计划的区别是什么
- 测试计划编写的六要素
- 项目版本执行过程中,测试人员如何把控测试进度
- 怎样做好测试计划 6.怎样做好任务跟踪 怎样做好漏测分析
- 测试人员在软件开发过程中的任务是什么
4.测试类型
- 请列出你所知道的软件测试种类,至少5项
- 黑盒测试、白盒测试、单元测试、集成测试、系统测试、验收测试的区别与联系
- 白盒测试与黑盒测试及其常用测试方法概念
- 简述黑盒测试和白盒测试的优缺点
- 在没有产品说明书和需求文档的情况下能够进行黑盒测试的设计吗
- 简述集成测试与系统测试关系
- 单元测试的策略有哪些,主要内容有哪些
- 白盒测试逻辑覆盖有哪几种覆盖标准,覆盖率最高的是什么
- Beta测试和Alpha测试有什么区别
- 简述软件测试中什么叫文档测试
- 简述除用户文档外,文档测试还需要关注哪些文档
- 紧急插入需求,测试时间不足,如何处理
- 软件的安全性应从哪几个方面去测试
5.测试流程
- 软件测试的基本流程有哪些
- 测试结束的标准是什么
- 软件测试的原则是什么
6.用例设计
- 什么是测试用例,测试用例的基本要素
- 描述测试用例设计的完整过程
- 好的测试用例有哪些特点
- 写测试用例时要注意什么问题
- 如何在有限的情况下提高测试效率,保证产品的上线质量
- 如何降低漏测率
- 测试用例的基本设计方法
- 测试为什么要写测试用例
- 产品上线后你负责的模块出现错误,用户反馈不好,你是怎么解决的
- 测试用例在整个测试工作中的地位及其作用
7.缺陷BUG
- 什么是缺陷报告,缺陷报告的作用,缺陷报告的要点
- 软件测试缺陷报告的5C原则
- 软件缺陷的生命周期
- 缺陷描述(报告单) 中应该包括哪些内容
- 如何提高缺陷的记录质量
- 如果一个缺陷被提交后,开发人员认为不是问题,怎么处理
- 你在测试过程中发现一个重现低的bug,你如何处理
- 缺陷的优先级划分和描述
- 开发未提测,上线出问题后,被质疑时如何处理
- 测试的时候使用了哪些工具来辅助
8.测试实例
- 一个有广告的纸杯子,请设计测试用例
- 一个身份证号码输入框,怎么设计用例
- 登录功能怎么设计测试用例
- 移动端和web端测试有什么区别
- 测试一个C/S客户端时,需要考虑的因素
- 测试电梯,请详细描述
- 对一只圆珠笔进行测试
- 测试一个网上购物的购物
- 请以微信点赞,功能点进行测试
- 搜索框怎么测
管理工具
- 你熟悉的软件项目管理工具有哪些
- 结合你的测试工作中使用的管理缺陷的工具,讲一下使用此工具描述软件缺陷跟踪管理流程
- 简述常用的Bug管理或者用例管理工具,并且描述其中一个工作流程
- 禅道和qc的区别
Linux
- 如何查看CPU信息
- 查看占用CPU使用率最高的进程
- 如何查看一个文件的末尾50行
- 如何过滤文件内容中包含
”ERROR “
的行 - 查看某端口号
- 查看某进程号
- rep和find的区别? grep都有哪些用法
- 查看IP地址
- 创建和删除一个多级目录
- 在当前用户家目录中查找
haha.txt
文件 - 如何查询出
tomcat
的进程并杀掉这个进程,写出linux命令
- 动态查看日志文件
- 查看当前机器
listen
的所有端口 - 把一个文件夹打包压缩成
.tar.gz
的命令,以及解压拆包.tar.gz
的命令 Xshell
工具如果想要实现从服务器上传或者下载文件的话,可以在服务器上安装什么包/etc/passwd
的前五行内容为例,提取用户名- 在
linux
中find
和grep
的区别 - 命令
”tail myfile"
表示什么意思?命令head myfile
是什么意思 - 在
vim编辑器
里,哪个命令能将光标移到200行?进行字符串查找使用什么命令?怎样从插入模式切换为命令模式 - 如何查询内存占用情况
Linux
查看真是使用的内存命令- 更改服务器时间
Linux
下查看系统任务状态的命令Linux
下查看进程的命令Linux
下查看系统进程中是否有Tomcat
在运行的命令Linux
下如何查看当前运行的所有Jenkins
程序的进程Linux
下设置IP地址的命令和格式Linux
下查看系统硬盘空间的命令Linux
下查看磁盘空间- 查看当前文件夹下的磁盘使用情况
- 将文件
A.txt
从/home/test
复制到/data/test
下 - 查询
C.log
中带有tasklD=12345
的内 - 每天9点执行脚本
/home/
- 抽取
xxx.log
日志文件中,包含502的行 - 如何在
Linux
下查找/use/proc
目录下所有包含名称中包含test串的文件或者文件 - 实时查看日志
/data/log/service/error.log
的命令 - 打印显示日志
/data/log/service/error.log
包含字段[ErrorCode=80]
的日志信息命令 - 在一个目录下的多个文件中查找手机号“138138” 的记
- 如何查找一个文件大小超过60M的文件
Linux
下如何用命令查看实时日志- 用
shell
命令查询目录下全部.svn
的文件并删除
MySQL
1.基础知识
- 什么是数据库
- 什么是关系型数据库,主键,外键,索引分别是什么
- 表的连接查询方式有哪些,有什么区别
- SQL的select 语句完整的执行顺序
- 说一下Mysql数据库存储的原理
- 事务的特性
- 数据库索引
- 数据库怎么优化查询效率
- 你用的Mysql是哪个引擎,各引擎之间有什么区别
- 如何对查询命令进行优化
- 数据库的优化
- Sql注入是如何产生的,如何防止
- NoSQL和关系数据库的区别
- MySQL与MongoDB本质之间最基本的差别是什么
- Mysql数据库中怎么实现分页
- sq|语句怎么看效率
- 提取数据库中倒数10条数据
- Mysql 数据库的操作
- 优化数据库?提高数据库的性能
- 存储过程和函数的区别
- Mysql开启General-log 日志
- 请写出truncate
- delete、drop 的区别
2.查询练习
- Student- Sourse- SC-Teacher表关系如下:
- 员工信息A-员工亲属信息表B表关系如下:
- 部门表dept-雇员表emp表关系如下:
- Student- coures - Studentcourse表关系如下:
- 看下图回答问题
- SQL操作,有两张表,如下图所示题目
- 懒投资首页的懒人播报,统计了在懒投资平台的投资富豪榜,对应的库表简化如下:
Web测试
描述用浏览器访问www.baidu.com的过程
了解的常用浏览器有哪些
以京东首页为例,设计用例框架。(注意框架设计逻辑, 区域划分,专项测试等,不需要详细用例,需要查看PC可直接和辨识管提要求)
你所用到的测试方法和测试策略有哪些?编写测试用例时包含哪些因素?请结实际操作举例说明(越全越好)
测试界面上一个输入框,输入信息后点击保存,你怎样确定是服务端问题还是端问题
如何测试购买下单和退货流程
什么是sql注入,什么是跨站脚本,什么是跨站请求伪造
给你一个网站怎么开展测试
电商支付模块的测试如何展开
如何开展兼容性测试
nginx,tomcat,apache都是什么
apache和nginx的区别
Selenium有哪些定位元素方法
win7系统中,使用IE浏览器打开www.sogou.com,按回车,1分钟后,显示白页面,请问有哪些原因会导致这个现象,如何进行排查
App测试
- 简述Android四大组件及生命周期
- 当点击APP图标启动程序,说明将要发生那些过程
- APP测试的内容主要包括哪些,如何开展
- Android的兼容性测试都考虑哪些内容
- 怎么从apk中查找launchable-activity
- 如果崩溃crush了你会怎么办?如果捕捉不到错误日志你会怎么办
- 朋友圈点赞,如何设计测试用例
- app端的话可以100台手机同步测试的
- 了解的安卓自动化测试工具有哪些,使用测工具开展测试的步骤和方法
- 针对App的安装功能,写出测试点
- 常见的ADB目录
- adb命令你知道哪些? adb shell dumpsys dumpsys是什么意思?做什么的
- 在查看logcat命令日志时候怎么内容保存到本地文件
- App崩溃(闪退),可能是什么原因导致的
- 如何测试监测app的内存使用、CPU消耗、流量使用情况
- 弱网测试怎么测
- 如何定位APP上的元素,使用appium的inspector了吗,用什么平台做的
- 如何使用xpath定位一个兄弟元素
“//*[contains(@text," 登录”)]”
是什么意思- 自己最熟悉的哪个库,如何使用这些库的,是否做了基于复用的封装,怎么考虑的这些封装
- 自动化测试的框架画一遍,然后解释
- 微信客户端使用搜狗输入法打字,手机屏幕突然黑了,请问有哪些原因会导致这个现象,分别如何排查
- 微信APP有什么地方需要改进的地方
- 如何选择测试手机,如何购买测试手机,多少台测试机
- 如何用
fiddler
或者Charles
进行测试手 Appium
都有哪些启动方式- 请写出你所了解的手机操作系统并简述各自的特点
Android
ROM是否了解不同ROM有什么区别target SDK是什么- Xpath定位不到的情况
- 移动端的注册登录和网页端的有什么区别
- 怎么搭移动端自动化框架的,需要哪些内容
- APP在运行过程中为什么会出现卡顿
- 请写一下支付宝首页的测试用例(要求:逻辑清晰)
API测试
- 接口类型有哪些
- 手机短信验证码接口怎么测试
- Post请求的body有常见的数据类型4. 如果模块请求http改为了https, 测试方案应该如何制定,修改5. 常用HTTP协议调试代理工具有什么?详细说明抓取HTTPS协议的设置过程6. 多个API的连续调用的测试用例的难点是什么?你是如何解决的7. 自动化接口测试中,用过哪些测试框架,这些测试框架是怎么管理接口测试用例
- Jmeter中接口的QPS在哪里查看,jmeter如何读取csv.txt文件获取参数
- 接口测试更适合做性能测试还是功能测试
- 描述TCP/IP协议的层次结构,以及每一层中重要协议
- 简要描述OSI模型
- jmeter,一个接口的响应结果如下
Selenium
- 官方文档地址
- 常用自动化测试工具机器运行原理,写出一-段元素查找 的代码3. 如何开展自动化测试框架的构建4. 如何设计自动化测试用例
- webdriver如何开启和退出一个浏览器
Jmeter
- Jmeter的七大原件是什么?有什么作用
- 聚合报告的每个字段代表的是什么意思
- 写一个验证电子邮件格式的正则表达式
- 一台客户端有500个客户与500个客户端有300个用户对服务器施压,有什么区别
Loadrunner
- LoadRunner的工作原理是什么
- LoadRunner脚本如何录制和编写
- LoadRunner中的Think Time有什么作用
- 在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试
- 一台客户端有三百个客户与三百个客户端有三百个客户对服务器施压,有什么区别
Appium
- 2018年春运前第10天中午(2018 年1月23日),12306 服务器挂了大概30分钟,工程师抢修以后,马上上线,之后又挂了,请问有哪些原因会造成这个情况
- 在搜索引擎中输入汉字就可以解析到对应的域名,请问如何用LoadRunner进行测试
- 性能压测过程中,当面对大量并发用户调用的时候,服务器端CPU的使用率是高好还是低好?为什么
- 测试某一个接口的压测,需要准备哪些数据,怎么进行参数化,不同的测试压力指标,需要准备多少数据比较好
- APP崩溃率居高不下,通过哪些措施来发现这些问题,并后续处理
性能测试
- 常见性能测试的方法有哪些?举例解释一下
- 你认为性能测试的目的是什么?做好性能测试的工作的关键是什么
- 服务端性能分析都从哪些角度来进行
- 如何理解压力测试,负载测试以及性能测试
- 编写一个http接口性能测试方案,测试过程的关注点有哪些,流程等
- 如何判断是否有内存泄漏及关注的指标
实战
1.面试题目
- 你觉得测试在一个公司中扮演什么角色
- Linux命令查看进程的命令,杀死进程的命令是什么
- 压力测试,负载测试,性能测试的关系
- 工作当中运用了哪些linux命令,什么场景下用的
- 你们公司的测试流程是什么
- 测试中有没做过风险评估
- 自动化登录成功如何校验
- Mysql存储过程是什么
- 给你几个英文单词(举例Hello world) ,设计简单脚本使其反着输出单词(这里输出world hello)
- 阶乘(N ! 题)如下: 10000 !得出末尾有多少个零
- 测试计划都包括什么?测试计划中的任务和时间都是我评估和分配吗
- 觉得Web端和手机端测试有什么不同
- selenium和Appium是怎么联系的?有什么关系
- 测试计划是哪个开发阶段写的?在编码之前就要把测试计划写好吗
- 对于移动端混合型的元素你们是怎么抓取的
- 谁来进行自动化测试用例的维护
- 介绍一 下w模型和H模型的区别
- HTML常用的标签有哪些,他们代表的是什么意思
- HTTP请求代码有哪些,他们代表的是什么意思
- 如果你测试的发现需求与开发的需求不一 致,你是如何处理
- 给你一个淘宝购物车模块你会怎么测试
- V模型和W模型有哪些优缺点
- 从开发到上线会测是几轮
- 搜索功能的测试用例你觉得会包括哪些
2.笔试题目
- 请分别针对性能测试,负载测试和压力测试举出一简单的而例子
- 什么时候开始执行性能测试
- 性能测试时是不是必须进行参数化?为什么要创建参数? LR中如何创建参数
- LR中如何实现多用户并发操作,要进行那些设置
- LR中有哪几种并发执行策略?它们的含义是什么
- 软件验收测试的合格通过标准是什么
- 区别阶段评审与同行评审
- 软件验收测试包括
- 系统测试的策略有
- 设计系统测试需要参考的项目文档有
- 对面向过程的系统采用的集成策略有
- 怎么做好文档测试
- 系统测试时候需要同行评审?为什么
- 比较负载测试,容量测试和轻度测试的区别
- 软件缺陷等级应该如何划分
- 商城中购买功能的流程图
- 如果开发修改了底层代码,如何查询影响范围
- 测试过程中输出的文件件有哪些
- 软件测试主要分为哪四类测试
- 测试分析主要分析的内容有哪些
- 操作说明书的帮助文档制作工具有哪些
- 设计测试用例的过程中应该考虑到哪两种输入
- 试描述对一-个大型软件项目的测试全过程,并描述如何把好产品质量关(该项目是一站式,其中包含十个子系统。且相关文档健全
- 网络层协议有哪些?传输层协议有哪些?应用层协议有哪些
- Android和ios系统的有哪些区别
- Web页面主要测试那些内容
- Web测试有哪些性能专项
- 测试app消息推送通知时候要考虑哪些内容
- 软件质量评估常用那些指标
- 试着画出缺陷生命周期的缺陷转换图,并标转换条件
- 软件评审- -般有哪些人参加,其目的是什么
- 简单描述TCP/IP协议与Http协议的区别
- 有一款app它可以监控和控制跑步机,请罗列出测试点和运用到的那些测试方法
- 你们是如何编写测试用例的?如何保证用用例的覆盖度?如何维护用例
- 手机qq登录功能的测试点
- 质量评估有哪些指标
- 软件质量保证体系是什么?国家标准中与质量保证管理相关的几个标准是什么?他们的编号和全称是什么
- 软件测试和质量保证有什么区别,请说明你的看法
- 回归测试的范围
- 白盒和黑盒的区别,你是怎么运用的
- 描述一下使用过的测试管理工具,及bug跟踪过程
- 描述曾经做过的项目的bug分析过程及举例说明一下bug分析结果。
- 假设正在Windows计算器上执行测试,发现1+1=2, 2+2=5, 3+3=6, 4+4=9,5+5=10,6+6=13, 写一个软件缺陷标题和有效描述该问题的软件缺陷描述
- 假设某个输入由四位数字表示年,两位数字表示月,例如: 201703,测试范围1970-2049,设计测试用例完成对该输入的check
计算机基础
1.操作系统
- 什么是内存泄漏?什么是内存溢出?二者有什么区别
- 了解的操作系统有哪些
2.计算机网络
- 什么是局域网,广域网
- 10M兆宽带是什么意思?理论下载速度是多少
- 什么是IP地址
- OSI七层网络模型的划分
- TCP和UDP有什么不同
- HTTP属于哪一层的协议
- HTTP和HTTPS的区别
- cookies和session的区别
- HTTP的get请求和post请求的区别
- HTTP1.0和HTTP1.1有什么区别
- TCP的连接建立过程,以及断开过程
- 常用协议端口号SSH、DHCP、HTTP、FTP、 SMTP、DNS等
- 客户端使用DHCP获取IP的过程
- 写出某个网段的网络地址和广播地址
- 什么是VPN都有什么类型
- B/S和C/S的区别
- 线程和进程的区别
- 常用的响应码
3.组成原理
- 计算机基本组成
- 一条指令在CPU的执行过程
- 计算机的逻辑部件
4.数据结构与算法
- 冒泡排序
- 插入排序
- 希尔排序
- 快速排序
- 直接选择排序
- 堆排序
- 归并排序
- 基数排