软件面试题


分布式系统是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。分 布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。
其目的是利 用更多的机器,处理更多的数据。

1. 作用域的原理
测试理论
1.请说说需求文档,测试计划,测试用例,测试报告,操作手册,bug(缺陷报告)都包含哪些内容
2.你们公司的缺陷处理流程
我上一家公司的测缺陷处理流程是这样的    开发修复完缺陷之后,我用git下载开发修复之后的代
码再进行测试.....
测试人员发现了缺陷会把缺陷提交到缺陷管理系统(我们公司用的是禅道),开发组长拿到缺陷,要对缺陷进行判断,此时他会选择挂起或者拒绝该缺陷,
如果挂起该缺陷,缺陷就等待被分配给相关 开发人员,分配之后,开发人员就会去修复这个缺陷,然后再给到测试人员再次测试,以验证该缺 陷是否被修复了,
如果修复了,则关闭缺陷,否则再次让开发人员修复,直到修复完成再关闭缺   陷。
1.已提交(测试发现缺陷并提交)
2.分析缺陷(开发组长判断缺陷处理方式)
2.1已挂起(1.暂缓修改,2.不修改)
2.2已拒绝(1.开发、测试协商决定,2.缺陷无法重现)
3.已分配(开发组长确认修改并分配)
4.已修复(开发修复缺陷并送测)
5.已验证(测试根据送测清单验证缺陷)
6.已关闭(验证通过并关闭缺陷 )
3.接口测试用例与ui测试用例的区别用例文档区别:
4.需求测试的流程(测试需求) http://qa.tedu.cn/ask/401350.html
5.用例怎样评审,用例评审,评审用例
测试组内进行评审,由测试组长/经理/主管主持. 项目组内再进行一次评审,由我们测试组召开, 邀请开发\产品参加.
6.评审的时候有哪些人员参加?
需求评审: 产品(项目)经理, 开发, 测试

7.测试报告写过吗?测试报告写些什么?
8.设计测试用例的时候怎样确保用例的覆盖率?
覆盖需求,根据测试计划编写,评审,环境良好,完全执行,及时更新,关联需求用例缺陷
首先要全面分析测试需求,编写完整的测试计划,在测试计划的指导下编写测试用例之后,要经过 多方评审,评审通过之后才能执行测试用例。
执行测试的环境要真实、独立、干净。执行测试用例 要全面执行,不能遗漏。正常情况下需求不是一尘不变的,测试用例要及时更新,并且要将测试需 求、测试用例、以及发现的缺陷关联起来,
这样不仅方便管理和跟踪缺陷,也保证了测试的覆盖   率。
1要有有一套完整且严格执行的测试流程.
分析需求,提取足够的测试点,至少保证完全覆盖需求。有正反用例, 补充异常情况的测试用例;
测试数据要具有代表性且充足. 做好用例评审.
环境真实独立干净及时更新测试用例完全执行测试用例
9.编写测试用例你用过哪些方法? ≈ 在工作中你用过哪些黑盒测试方法?
用过等价类划分, 边界值, 场景法,错误推测法因果图,判定表,正交排列法。主要使用前面说到的四个方法。
用过...., 主要使用     ,也用过错误推测法(显示有经验)
10.你会编写测试计划吗?测试计划中包含哪些内容?
会,测试计划在测试过程中起到非常重要的作用,测试计划指导测试人员怎么去测试,内容包 含。
组成(课程版本):
1.项目的介绍
2.背景
3.测试环境(硬件环境、软件环境、网络环境)
4.测试资源(测试工具、人员组织、测试进度)、测试策略(测试类型)
5.测试风险(成本风险、质量风险、人员风险、周期风险、进度风险)
组成(网上版本):
1、 测试目标2、 测试概要3、 测试范围4、 重点事项5、 质量目标6、 资源需求7、 人员组织8、 测试策略9、 发布提交10、 测试进度和任务人员安排11、 测试开始/完成/延迟/继续的标准12、 风险分析
所以,作为一个合格的测试人员都要有编写测试计划的能力。
11.怎样记录缺陷报告?(怎样提交高质量缺陷报告?) 1.唯一性
一个bug代表一个问题,最好代表一类问题
2.可复现性
附加完整的复现步骤,让开发容易复现
3.完整性
提交的缺陷最好附加截图或者录屏或者日志,方便开发定位问题
4.一致性

提交的bug描述及所有信息要前后一致,不要引起歧义
5.简洁性
描述简洁明了, 避免重复啰嗦
6.合理定义缺陷等级
12.一份完整的缺陷报告包含哪些内容?
基本信息:缺陷编号ID、日期、提交人(测试人员)、处理人(开发人员)、软件名称、测试版本号、所在模块、软件平台、操作系统
主要属性:严重程度、优先级、缺陷状态
主要描述:标题、操作步骤、缺陷实际结果、预期正确结果、截图、注释
13.什么是V模型, 什么是W模型?
V模型: 用户需求,需求分析,概要设计,详细设计, 编码 , 单元测试, 集成测试, 系统测试, 验收测试.
14.alpha测试和beta测试的区别?
alpha测试和beta测试都不能由程序员或测试员完成.
alpha测试是在一个用户在开发环境中,模拟真实用户环境进行的测试. beta测试是多个用户在实际环境下进行的测试.
15.你写过测试计划吗?
没有,但是看过. 测试计划一般包含:
1.项目概述
1.项目背景
2.测试目的
3.标准
2.测试说明
1.测试对象范围
2.测试环境
3.测试策略
4.任务分配
5.文档管理
6.用例管理
7.缺陷管理
3.风险控制
1.系统风险
2.影响计划的潜在因素
3.应急措施
4.测试的局限性
4.质量评估标准
1.测试模块通过标准
2.验收测试通过标准
16.整个测试过程会产生哪些文档?
1.需求规格说明书
2.概要设计说明书
3.详细设计说明书
17.开始执行用例的标准?
1.搭建好了测试环境
2.准备好了测试数据
3.用例覆盖率达标

18.编写测试用例的原则
编写测试用例的最终目标是:一个对于产品毫无所知的人员,也能够快速的熟悉用例并执行用例
1.具有清晰名称、前提条件、操作步骤、期望结果的;
2.可被他人理解的;
3.可被他人执行的;
4.用例具有代表性
5.测试结果可判定
6.测试结果可再现
7.一个用例一个功能点
8.易读
9.粒度越小越好
10.先正常,后异常
11.测试用例由测试脚本和测试数据两部分构成。
12.测试用例应该是完整且独立的,每条测试用例都应该可以独立运行;
13.软件缺陷的分类:
按照缺陷严重程度划分: 致命
严重
一般轻微
按照优先级划分:
立即修复本版本修复
下个版本修复发布前修复允许存在
按照缺陷产生的原因:
需求表述理解,导致编写引起的错误。系统设计架构引起的错误。
开发过程缺乏沟通及监督。(自己开发是局部变量,但实际要做为全局变量) 开发技术问题
软件开发工具本身的问题。软件需求复杂度越来越高。
与用户需求不符合:即使本身不存在某种意义上的缺陷。(智能机字太小,给老人用
按照缺陷的状态:
new open rejected fixed closed reopen
14.如何识别一个缺陷?
根据需求文档根据缺陷定义

参照同类产品
与开发经理/产品经理沟通
15.软件缺陷产生的原因有哪些? 需求不明确
与需求不符合
开发技术有限
需求变更,开发没有根据需求更新软件,测试用例没有及时更新
...
16.为什么要对软件进行测试?
软件因为参与开发的人员技术不同,想法不同,状态不同,不可能是完美的. 对软件测试能够提高软件的质量
存在缺陷的软件会影响用户体验, 带来数据安全隐患, 影响公司发展等
17.软件测试的对象包含哪些?
程序, 文档, 数据
18.描述一下软件的生命周期?
立项--》设计--》开发--》测试--》上线--》维护--》废弃
19.介绍一下项目组中有哪些角色分工?
项目经理   制定计划、协调资源、关注和控制计划进度、控制客户期望值.
架构师 负责设计项目中软件部分的体系结构和模型,排定软件开发日程,确定软件内部流程和框架等,在技术上对所有重要的事情做出决定.
开发经理 领导开发工作,制定开发任务.
开发人员   根据设计成果进行具体编码工作,对自己的代码进行基本的单元测试.
测试经理 计划和组织测试人员对目标产品进行测试,发现 bug 、跟踪 bug 直到解决 bug.
测试人员 根据测试经理的计划和测试总体方案对目标产品进行测试,编写测试 case 和测试代码,发现和跟踪 bug 等.
20.分布式软件的特点是什么,分为哪2个代表?
需要联网, 软件分布在不同机器上. 代表:B/S, C/S.
21.b/s架构与c/s架构软件在测试上有哪些区别?
功能:c/s架构需要测试客户端的安装、卸载、升级测试,弱网,低电量,电话短信干扰, 兼容性:b/s架构需要测试浏览器的兼容性测试
性能:b/s侧重于服务器的性能,c/s既要测试客户端也要测试服务器的性能 安全:b/s非常依赖网络环境,需要做严格的安全性测试
课后学习:web的安全测试怎么测?
22.列出当前主流的浏览器,以及阐述一下浏览器的作用?
IE, Firefox, Chrome, Safari, Opera
浏览器的作用:    代理用户向服务器发送请求,将服务器返回的响应进行渲染
23.计算机的层次有哪几层,并说出主流的操作系统有哪些? 计算机硬件, 操作系统, 应用软件
24.在dos系统中分别开启httpd和mysqld服务的命令是?
net start httpd net start mysqld
25.wamp和lamp分别代表什么意思?

wamp:windows+apache+mysql+php lamp:linux+apache+mysql+php
26.衡量软件的质量有哪几个特性?
功能, 性能, 安全, 兼容性, 维护, 易用性
27.软件的功能主要体现在哪2个方面?=====
软件本身具有的功能要能实现(正向测试) 要具有异常处理能力(反向测试)
28.软件的性能指标有哪几个?至少列出3个。
并发用户数响应时间
以及系统吞吐量.系统吞吐量是指在单位时间内中央处理器(CPU)从存储设备读取、处理、存储信息的量。
29.软件的安全体现在哪几个方面?
(1)用户认证机制:如数据证书、智能卡、双重认证、安全电子交易协议
(2)加密机制
(3)安全防护策略:如安全日志、入侵检测、隔离防护、漏洞扫描
(4)数据备份与恢复手段:存储设备、存储优化、存储保护、存储管理
(5)防病毒系统
30.软件的兼容性体现在哪些方面?分别举些例子。
(1)操作系统/平台兼容性。比如在windows上能运行的软件在linux上能不能运行。
(2)应用软件之间兼容性。比如同样是通讯软件,两个软件会不会相互影响而影响功能正常使用。
(3)不同浏览器之间的兼容性。比如一个网站在IE浏览器和在Chrome浏览器上显示是否正 常。
(4)不同类型的数据库兼容性。例如,当软件升级后可能会定义新的数据格式或文件格式, 原有用户记录在新格式下是否依然可用。
(5)软硬件配合的兼容性
31.软件测试的原则有哪些?
缺陷集群性,出现缺陷的地方往往还有其他缺陷穷举测试是不可能的
测试尽早介入测试应该终止
测试无法做到完全覆盖
32.软件缺陷的定义 ?
需求要求的功能没有实现需求没要求的功能却实现了
出现了明确指出不应该出现的错误没有提及但应该实现的功能没有实现软件难以使用,运行速度缓慢

数据库
1.什么是慢查询
2.什么是事务
3.数据库怎么添加索引
create index xxx on table(column)
4.如何查看mysql数据库的日志文件来定位bug? 前提:mysql日志已开启
查看日志状态与文件位置: show variables like 'general_log%';


启动日志: set global general_log=1;
根据日期,命令等关键内容搜索相关日志.比如2021-10-11注册了用户,找到该日期下的insert语句
windows中查看: type 文件
linux中查看:tail -f 文件
5.什么时候使用索引, 什么时候不能使用
查询较多的地方使用索引,修改数据多的地方不使用.
6.连接池的作用
维持一定数量的连接,提高响应速度
7.数据库的优化方法
优化表结构,优化语句,创建索引,分页查询,分库,分表
8.不可重复读和脏读的区别,幻读
Linux
1.测试环境怎么搭建
根据开发给的手册,按流程搭建.拿到相关编译好的安装包,上传到linux系统中进行安装配置.配置完成 后启动数据库与web服务.
2.怎样打印日志?怎样查找到想要的信息? linux上查看文件,用cat+grep, tail,sed
windows上可以用文本编辑器打开,或者type命令查看
3.你有没有搭建过测试环境?
搭建过,   在上一个公司搭建过lamp架构的环境。

Python
1.json.load和json.dump的区别
load传入(json)文件指针(地址), 返回为python字典, dump将python字典转为json字符串到文件. loads传入json字符串, 返回python字典;dumps传入python字典,返回json字符串.
2.json与python字典的区别
json是一种以键值对表示数据的字符串,   python字典是一种哈希数据结构?
功能测试
1. 如何实现文件上传功能自动化selenium
1.selenium 中隐藏元素如何定位?
隐藏元素可以正常定位到,只是不能操作(定位元素和操作元素是两码事,很多 初学者傻傻分不清楚),操作元素是 click,clear,send_keys 这些方法. 但js可以操作隐藏元素


2.如何提高脚本的稳定性不要复制xpath

1.自动化测试用例如何编写

2.自动化测试发现的bug多吧

3.自动化测试有误报过bug吗?产生误报怎么办

4.自动化测试过程遇到过什么问题,如何解决

5.在上一家公司使用什么自动化测试框架

6.说下工具的框架

7.鼠标悬停操作是
8.什么是数据驱动,如何参数化?
参数化就是指用例等其他代码写好后,以后再用就不需要修改了,只要该测试用到的数据就行. 如何参数化, 使用ddt模块

9.什么是po,为什么要用po https://www.cnblogs.com/zihkj/p/12164079.html
po原文page    object,翻译过来就是页面对象。是为了解决自动化测试中,用例越来越多难以维护的问题。po模型根据每一个页面分为一个类,叫做page class(页面类),页面类就是对每一个要测试的元素的定位,同时也对元素操作,测试用例,测试数据进行了分离,这样有利于自动化测试 脚本的维护。
10.selenium的等待有哪些,区别是
implicitly_wait与WebDriverWait. implicitly_wait会等待页面全部加载完毕之后的一定时间才结束等待,WebDriverWait在元素出现之后不再等待。
11.自动化框架与po的关系
12.元素无法定位有哪些原因
元素在iframe中,driver没有切换到iframe;    程序在元素加载之前查找,所以找不到,需要等待元素出现;元素是alert,没有切换到alert. driver所在的标签页不对.
13.遇到frame框架页面怎么处理切换frame定位元素
14.如何处理下拉菜单
Select或者多次定位

15.你会封装自动化框架吗
16.持续集成的目的
接口测试
1.什么时候会用到使用Fiddler                                                                            1)、做安全测试,检测敏感信息是否加密,拦截篡改数据;                   2)、当测试时发现缺陷,用fiddler抓包,定位该问题是前端还是后台的问题; 3)、模拟弱网环境。
作者:永杰gg
链接:https://www.jianshu.com/p/147d8f320c73 来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
2.post这么多优点,为什么要用get(get的优点优势)
一般来说,GET的参数会放到url中,POST的参数放在请求体中,不过不是绝对的, POST的参数也可以放在url中.
GET产生一个TCP数据包(请求头和请求体一起发送);POST产生两个TCP数据包(先发送请求头,服 务器回应100continue之后,再发送请求体)。
并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次所以,一般来说POST时间上消耗的要多一点,GET比POST更有效
所以如果你希望
- 请求中的URL可以被手动输入
- 请求中的URL可以被存在书签里,或者历史里,或者快速拨号里面,或者分享给别人。
- 请求中的URL是可以被搜索引擎收录的。
- 带云压缩的浏览器,比如Opera mini/Turbo 2, 只有GET才能在服务器端被预取的。
- 请求中的URL可以被缓存。
请使用GET.

3.cookie有什么用
4.cookie,session,token是什么?
session是在服务器上存储的验证信息, cookie是存在客户端的验证信息,是为了解决服务存储session压力的,token


5.为什么要做接口测试接口存在大量应用.
接口测试更容易实现自动化\持续集成.
越底层发现bug,修复成本越低,因为这样越从根本上解决了问题.
前端传参不可信,   比如购物,前端不能输入-1元,但通过接口可以传入-1元.
6.怎样做接口测试(你们公司怎么开展接口测试) 依据接口文档,使用postman和fiddler工具,

7.没有接口文档怎样进行接口测试
8.postman发送请求的常见数据格式有哪些
url, form-data, url-form-encoded, json, xml, raw
9.什么是restful
10.一次完整的http请求过程是怎样的https://www.jianshu.com/p/2f6705a16a20 一个完整的HTTP过程包括
0.判断url是否合法, 查看缓存,域名解析 1、TCP建立连接 2、浏览器发送请求命令 3、浏览器发送请
求头消息 4、服务器应答 5、服务器回应头信息 6、服务器发送数据 7、断开TCP连接 .
先建立tcp连接(TCP三次握手), 再通过http传输,域名解析, 浏览器发送请求报文(请求头与请求体), 服务器返回响应报文(响应头与响应体,响应码)
11.http与https的区别
使用端口不同:http80与https443
工作层不同:http工作在应用层,    https工作在传输层(因为ssl?)
12.什么是端口
用来区分同一台服务器上不同服务的标识.一台服务器上的端口号范围:0~65535之间(16位)
13.什么是三次握手和四次握手

14.TCP/UDP的区别

15.URI与URL的区别
URI(uniform resource identifier)就是找到唯一资源的方法,URL(uniform resource locator)是其中一种方法,通过地址找到资源
16.url的组成
一个标准的 URL 地址由 protocol、hostname、port、path、parameters、query 几部分组成。

http://news.qq.com/a/20160209/012154.htm?a=1&b=2&c=3
由5部分组成:网络协议://主机地址:端口/资源路径?参数
?a=1&b=2&c=3 这一部分称为参数(parameters ),也叫查询。
17.fiddler断点有哪些方式
请求之前打断(发送到服务器之前);   响应之后(客户端接收之前)打断;
18.什么是mock技术
19.注册帐号成功,但登录失败,怎么排查
打开抓包工具,抓取登录的操作,查看调用的接口是否正确,传输的数据是否正确. 打开数据库,在数据库中查找刚注册的信息,验证信息是否存在,是否一致.
以上步骤都没有错误,查看登录接口是否调用错误,传输的数据是否正确.查看传入的注册密码和数据 库中录入的密码是否进行一致的加密.
20.平时测试的时候怎么发现和定位bug? 使用fiddler抓包,使用开发者工具,
手机测试
1.测试过程中遇到app crash或者anr(无响应)怎么处理用adb logcat查看日志.
2.app性能测试重点关注哪些?你们公司的标准是?
客户端: 启动时间(冷启动4秒),耗电量(00mA/min),流量,流畅度(60fps),过度绘制,内存(10%)使用率,cpu(10%)使用率.
服务器: 内存(80%)使用率,cpu(80%)使用率.
3.app的monkey测试怎么测

4.app的兼容性怎么测

5.测试app使用真机还是模拟器
6.真机和模拟器的区别
性能测试
1.性能测试的流程?
1.需求分析
2.编写性能测试计划(测试方案)
3.编写性能测试用例(加载方式,运行时间,期望等) 4.使用loadrunner工具执行测试用例
1).创建测试脚本,运行(回放)测试脚本
2).创建场景,运行、监控场景
3).生成测试结果
5.分析测试结果,编写测试报告
2.什么是TPS,QPS,

3.jmeter怎样链接数据库

4.什么是jmeter分布式
5.调度器是什么
jmeter调度器里有持续时间,启动延迟.持续时间指定线程组运行的时间.一般配合勾选(永久)使用, 线程会一直执行直到到达调度器设定的时间.
6.ramp-up time是什么
jemter线程组的启动时间.例如ramp-up time为10s,那么10秒内所有线程都要运行.
7.对app性能有要求吗

8.性能测试的类型

9.性能测试计划包含什么

10.jmeter参数化怎么做

11.jmeter断言有哪些

12.什么是jmeter关联
13.性能测试的流程
14.测的时候怎样确保服务器最优的性能指标?
15.怎样做性能测试
16.如何提高项目性能?
1.将数据库的读写分离, 分库分表
项目
1.项目做了多久
1.我进去的时候项目已经上线了(已经做了一大半),一直存在,然后就是版本的微小更新 ,小修改的话,大概半个月一个版本,中修改的话,大概一个月一个版本。每次版本更新,针对新的 功能点或者修改点大概写了 60 条案例左右(一个月一个版本的例子)。
2. ...
2.你们的项目什么时候转测

3.这个项目找bug找了多久,找了多少个bug 2个月,176个
4.项目用例写了多久,写了多少条用例写了3月,写了357条.
每次版本更新,针对新的功能点或者修改点大概写了 60 条案例左右
5.项目有多少个人做
13人,开发 10 个,测试 2个
6.项目上线了吗没
7.主要的用户有哪些

买家与商家
其他
1.缺陷, bug遗漏怎么办?(上线之后发现遗漏吗?)
1.原因(需求变更,测试没有更新;测试用例覆盖率不达标;测试用例没有完全执行)
2.解决办法(更新测试用例, 用例评审, 完全执行测试用例,时间不够,人手不够则增加测试时间和测试人员)
2.测试中使用过什么工具
从仓库下载文件:为了搭建环境,使用git/svn从仓库中下载需要的软件.
上传文件到环境:在vmware中安装linux系统,    把搭建环境需要的文件传到linux. 安装服务:在linux中安装了web服务与数据库服务,
准本数据:
1.执行sql文件创建数据(mysql -u用户 -p 密码 数据库名 sql文件),windows系统
2.在windows上使用navaicat连接数据库,然后在navicat中执行sql文件
测试时:
1.接口测试:fiddler,postman
2.性能测试:jmeter
3.专项测试:adb,monkey,
4.兼容性测试
5.自动化测试:selenium,appium
3.贪婪模式与非贪婪模式
4.测试数据怎么准备的
5.一个前端后端都能修改的bug,应该由谁修改前后端都应该修改,
如果只是前端进行修改,那么通过接口会绕过前端限制,可能造成重大损失.
如果只是后端进行修改,那么用户的错误输入还是会被传到后端进行处理,导致服务器资源浪费.
6.休假时产品出现问题了怎么办
7.项目上线后出现问题怎么处理
1.评估bug的影响范围
是否业务核心环节的功能,是否涉及到用户的个人信息泄露、资金财产损失等
2.解决线上问题
如果影响范围大,影响严重:
无法明确问题引入原因时,可以通过回滚版本的方式来规避服务器资源不足,扩容
3.回溯线上问题
分析bug的根本原因,考虑如何避免此类问题再次发生
分析bug是在哪个阶段引入?是设计阶段、开发阶段、测试阶段? 分析bug引入的原因是什么?是流程问题、技术问题、管理问题?
处理问题的流程是否合理?是否有问题预警、是否有紧急上线规范。。。?
8.你测过的最复杂的登录系统是怎么测的
[待完善]验证码复杂,比如谷歌的人机验证,其实是后台保存了正确答案.全部选择正确,部分选择正确,
一个也没选正确.
9.做过自动化测试吗?
做过,做的是冒烟测试, 接口自动化测试

10.测试人员要具备什么素质
善于沟通(与开发,与经理),耐性(用例),见多识广(了解各种软件)
11.遇到问题怎样定位出来给开发,说明这确实是一个问题

12.什么原因离职(为什么离开上一家公司)
上一家公司流程很不规范,运转无序,不利于个人发展。
13.公司多少人
70多个
14.平时谁给你们安排工作测试经理
15.是按团队分任务还是哪里有任务就分配到团队?
16.总公司做什么
17.为什么选择测试
18.因为工作失误给公司造成损失怎么办?
19.测试数据如何构造开发给
1.通过编程生成数据
2.通过数据库(存储过程)生成
20.如果软件有两个版本,都要上线    ?
21.时间不够,测试时间不够,领导要求上线怎么办? 应对方法:
先对重要的优先级别比较高的一些测试内容进行测试,    考虑是否要增加测试时间,增加测试人员.
规避这种情况:
开发人员能力不足,类似问题反复出现,导致项目拖延:开发要通过开技术分享会\培训\自学等方式提 升
自身能力,
上级拍脑袋定死时间\ 抢占市场,赶产品发布会等:不能让不正常成为常态。给领导做好反馈:此次虽然上了线,但实际产品存在很多隐患,需要安排时间及时处理。这种情况导致的结果我不负责任.
前期时间评估不足,技术难度远超预期:    开发以后吸取教训,做好风险和问题评估.
前期需求设计不周全,导致后面频频改动,因为客户、测试、开发陆续的反馈,产品直接把需求加上 来:    今后如非必要,要杜绝需求经评审通过后,再进行更改,非特别紧急的需求,不能随便加塞! 尽可能把新增需求安排到下期;就算修改,也要做好需求变更评估,衡量工作量、必要性后再做决 定。
22.用一句话来形容软件测试:   检验软件系统是否满足软件用户的需求。
23.在测试工作中你遇到的最困难的事情是什么? 没有接口文档: 通过抓包解决
bug我这边重现不了.解决办法:
测试环境不单一,不干净;
测试数据不够, 要自己制造补充大量的数据.
24.如果没有需求文档怎样进行测试?

没有需求文档,进行的测试是难以保证的. 如果没有需求文档,可以参考设计文档、已经开发的程序,和开发、产品、客户沟通、参考同类产品,还可以根据自己的经验进行测试。
25.测试结束的标准有?
1.完全执行了测试用例
2.轻微缺陷解决95%以上,其他缺陷全部解决
3.测试覆盖需求的程度100%
26.软件上线的标准有?
需求实现,性能达标,缺陷修复达标....
1.需求要求的功能全部实现, 性能全部达标
2.验收测试发现的缺陷已修正,各级缺陷修复率达到标准
3.没有残余紧急, 严重错误
4.验收测试的工件齐全(测试计划、测试用例、测试日志)
27.软件测试暂停的标准?
1.冒烟测试失败
2.需求出现大变更
3.测试环境故障
4.其他突发情况, 要测其他项目
28.开发不承认是缺陷怎么办?开发拒绝缺陷
不可重现的bug->备注不可重现bug,
开发说没有这个需求,找产品经理确认.不能听信开发口头上说的
首先要询问开发人员为什么认为这个不是缺陷。如果是需求不明确或需求变更导致的,应该找 产品经理确认需求、完善需求
如果是测试环境导致的问题,应该按照开发给要求的环境再验证一遍,如果确实是环境问题, 关闭bug;如果不是环境问题,保持bug激活,让开发解决,确保产品质量。
如果开发认为用户方面不存在导致该缺陷的使用场景,那应该分析该缺陷带来的影响,与开发 沟通好,如过仍不能达成一致意见,应该把缺陷告知上级,让上级决定。
29.怎样对待随机缺陷, 不可重现的缺陷? 不可重现的(随机)缺陷,该如何提交?
提交缺陷时备注为"不可重现的缺陷",防止被开发人员拒绝.
1)发现bug的第一时间就要保存截图和相关日志,作为证据或者开发解决bug的思维方向;
2)回想出现该bug时的操作步骤,尽量能重现出来;
3)开启出现bug相关模块的日志记录,让开发帮忙分析;
4)重新出现该随机缺陷的时候让开发过来测试机前面分析(保留现场)。
30.为什么不让开发自己去做测试?
从技术上讲, 如果让开发做测试, 对开发要求会更高,既要做开发的工作,又要做测试的工作(单元测试除外)
从周期上讲,先开发完后测试会浪费大量时间从思维上讲,开发是很难发现自己的错误的
31.进程与线程, 多线程,多进程


测试经理面试
1.测试流程是什么
2.测试用例最重要的是什么
3.谈谈你的工作经历
4.如何和开发人员沟通
5.如何确定一个bug

6.什么样的bug报告一个好的bug报告
7.如果在开会过程中测试人员和开发人员发生争论你会帮哪边
8.谈谈你的人生规划
9.给你一个例如用户登录功能页面如何进行测试
10.测试计划包括什么
11.如果开发人员不认为这是一个bug你如何和他沟通
12.Qtp如何使用
13.如何加入表检查点
14.如何开发测试脚本
15.你以前是如何使用qtp的
16.在使用qtp过程中你发现了什么优点和缺点
17.你在登录我们的网站时发现什么BUG了么
18.你使用飞信么,有发现什么bug么
19.谈谈你的一个项目
20.你喜欢测试么
21.你是如何看待测试的
22.Loadrunner如何使用(回答期间问了几个具体的技术问题,想不起来了)
23.怎样进行性能测试
24.例如100个用户同时登陆,你如何进行测试的
25.如何判定系统性能是否符合要求
26.你以前工作的感觉怎样
27.给你一个web系统你如何开展测试
28.你觉得测试一个网站最重要的是什么
29.如何确定一个bug是bug
30.Bug报告包含哪些内容
31.能做重复性的工作么
32.还有一个关于sql    server的问题,想不起来了,挺偏的
一、    简答
Bug分类等级
测试过程,每个阶段的含义
负载测试 容量测试 强度测试的区别二、    名词解释
静态测试白盒测试桩模块驱动模块三、论述
提交BUG的流程 四、编写测试用例
(参照课本三角形的例子,要求画程序流程图) 五、将sql程序简化
问了一下以前的工作经历测试流程:
解释模块测试,单元测试,集成测试,在集成测试中关键是测试那个部分软件工程中V字模型的流程
测试组长在什么时候介入道项目中,
“从表a里找出分数80以上的女生”用数据库表达提交BUG的流程
谈谈对测试职位的理解

笔试题:
1.测试分哪几个阶段?
2.测试用例要素?
3.测试方法?
4.∝测试, β测试定义?
5.数据库,查询两个字段,反回前五行数据,升序和降序。
6.CMM是什么?
7.TOMCAT的端口设置在哪个文件里面?
8.性能测试报告方面的内容
面试题:
1.自我介绍
2.为什么离职?
3.在学校学了哪些内容?
4.谈谈做过的项目里的功能模块?
5.做测试工作的体会?
自动化、性能、接口问题统计
web自动化
\1.   在项目中用什么工具做的自动化?怎么做的?
web项目:使用selenium+python写过自动化脚本,一般一个功能(如:登录、购买等)写   两三个自动化脚本文件(一般先写正例,如果项目周期很长,后面再补充反例,那么文件 就会更多),一个项目也就大约一百多个脚本文件,版本迭代的时候跑,一般1个小时就跑 完了。
android项目:使用appium+python写过简单的自动化脚本,一般一个功能(如:登录、购买等)写两三个自动化脚本文件(一般先写正例,如果项目周期很长,后面再补充反   例,那么文件就会更多),一个项目也就大约一百多个脚本文件,版本迭代的时候跑,一 般1个小时就跑完了。
\2. 你们做自动化用的什么框架? 网页界面自动化框架:selenium 移动端界面自动化框架:appium
自动化脚本编写的框架:unittest(使用里面的suite套件做批量执行,还能生成测试报告) 另外一个集成软件:robot framework(可以去了解)
\3. 自动化脚本什么时候编写?
功能测试完结后编写自动化脚本(已经没有很明显的BUG以后)
\4. 什么时候执行自动化脚本?
版本迭代时,执行自动化脚本(保证以前的功能可用)
\5. 自动化测试的作用?好处? 节省人力和时间
\6. 自动化测试的流程?
1).需求分析
2).编写自动化测试用例 (一般只编写 正例)
3).通过用例编写自动化测试脚本
4).版本迭代时执行自动化脚本
5).查看自动化测试报告,提交BUG
\7. selenium、appium做自动化的原理? 通过元素的属性定位到元素,然后操作元素
\8.   单元测试框架unittest的作用?
1).测试用例之间相对独立,互不影响
2).使用里面的suite套件,可以批量执行测试文件(集成)
3).生成网页形式的测试报告

\9.   自动化脚本文件的集成?怎么管理自动化文件的?
用例文件会统一放在一个test_case文件夹内,然后通过unittest框架下面的suite套件。可 以把需要执行的用例文件都加入套件中,运行这个套件,也就运行了套件中的所有用例文 件。
\10.   appium通过怎么获得元素属性?
通过uiautomatorviewer.bat软件获取手机截图,然后就可以查看截图里面元素的属性
\11. 什么样的项目适合做自动化?
1).项目周期长
2).需求变更少(已经完成的功能,不包含新功能)
3).自动化脚本可以重复使用
\12. 介绍一下get请求
get请求由两部分组成:
1.请求行(三部分组成)
1).请求类型
2).url 服务器地址/路径?参数1=值1&参数2=值2
3).协议版本
2.请求头部(客户端信息)
\13.  介绍一下post请求
post请求由三部分组成:
1.请求行
1).请求类型
2).url 服务器地址/路径
3).协议版本
2.请求头部(客户端信息)
3.请求正文
内容是:参数(json数据)
\14.   get请求和post请求的区别?
1).get参数在请求行 ,post参数在请求正文
2).get安全性相对较低,post安全性相对较高
3).get参数有长度限制,post参数没有长度限制
\15. 响应由几部分组成响应由三部分组成
1.状态行(分为三部分)
1).协议版本
2).状态码
3).状态码描述--状态码的含义
2.响应头部(服务器信息)
3.响应正文(服务器要发送的所有正文内容:html代码,图片,json数据...)
\16.   什么是接口测试?接口测试的原理是什么?
模拟软件发送各种参数情况下的请求,查看相应是否正确。
\17. 接口测试的流程?
1.获取软件接口文档,分析接口文档含义
2.根据接口文档,编写接口测试用例
3.使用接口测试工具(如,postman,jmeter),执行测试用例 4.提交BUG
\18. 介绍一个你曾经测试过的接口? 例如一个"查看用户基本"信息的接口接口类型:get
服务器地址:http://IP:port/AskMeServer/ 接口路径:look
参数:userid

两种响应情况: 1.成功:返回用户详情json数据    2.失败:{result:-1} 所以最终发送的请求类似于: http://IP:port/AskMeServer/look?userid=值
\20. 做过哪些类型的性能测试?它们各有什么作用? 1.基准测试(为后面的测试提供参考依据)
2.负载测试、压力测试(获得极限值的数据)
3.并发测试(着重测试服务器瞬间压力的处理能力)
4.综合场景测试(最大限度模拟真实场景)
5.疲劳测试(测试服务器的稳定性)
\21. 并发测试是怎么做的?
1.录制并发测试的脚本,特别得在事务前加入集合点
2.设计并发的场景,设计场景时得调节集合的策略
3.运行场景
4.获得测试结果,分析测试结果
\22.   loadrunner由哪几部分组成?
Virtual user generator---录制、调试脚本controller---设置场景参数,管理虚拟用户Analysis---生成测试报告

编程题
线程交替打印奇偶数最长回文子串
项目经历
介绍一下负责的项目?
针对老系统(有很多僵尸代码)如何保证质量? 做过的项目遇到的最大风险点?
怎么保障项目的质量?
1.对需求,测试用例等进行评审
2.流程规范化,标准化
3.培训学习,经验交流
如何处理紧急需求? 项目的迭代方式?
说一下最近项目推动成功的案例?

你可能感兴趣的:(功能测试,测试工具,测试用例,postman,selenium)