软件测试必备必背面试题(含详细答案)

  1. 公司测试的流程是什么?

  • 需求评审

  • 分析需求,编写测试用例

  • 测试用例评审

  • 执行测试用例

  • 编写BUG单,提交BUG

  • 回归测试,BUG追踪与管理

  • 总结,编写测试报告

  1. 软件的概念是什么?

计算机系统中与硬件相互依存的一部分,它是包括程序、数据以及文档的完整集合。

  1. 你对软件测试的定义是什么?

是软件质量保证的一种手段,有计划有组织的,软件测试不是万能的,不可能发现全部缺陷,具有局限性,它的目的是验证被测对象是否实现用户需求,弄清实际结果和预期结果的差异。

  1. 你怎么定义是不是bug?

  • 软件没有实现产品说明书所描述的功能

  • 软件实现了产品说明书描述不应有的功能

  • 软件执行了产品说明书没有的操作

  • 软件没有实现产品说明书没描述但应该实现的功能(用户体验相关)

  • 从软件测试员的角度看来看,软件难以理解。不易运用、运行缓慢或者最终用户认为不对的

  1. Bug的类型有哪些?

  • Bug,由代码编写错误导致的功能问题

  • Defect,缺,实现与需求不一致

  • Fault,故障,由于环境系统问题引起运行失败

  • Error,错误,语法错误,逻辑错误,不易发现

  1. 软件的bug级别有几种?

  • 微小的,一些小问题,错字,文字排版整齐等

  • 一般的,不太严重的问题,功能模块部分丧失,提示信息不准确等

  • 严重的,严重错误,功能模块和特性没有实现,主要功能部分丧失等

  • 致命的,造成系统崩溃,数据丢失等,死机

  1. 软件的bug状态有哪些?

  • 激活状态-----问题没解决

  • 测试人员新报告的缺陷或者验证后缺陷仍然存在

  • 已修正状态------开发人员针对缺陷

  • 修正软件后已解决问题或已通过单元测试

  • 关闭状态------测试人员经过验证后,确认缺陷不存在之后的状态

  • 遗留状态------此次版本升级不修改,遗留到下一个版本修改

  • 非错问题------就是此问题不是一个bug

  1. 你对软件质量是怎么定义的?

软件质量就是软件与明确和隐含的定义的需求相一致的程度

  1. 软件质量的特性有哪些?

功能性、可靠性、效率、易用性、可维护、可移植

  1. 软件的生命周期?

需求分析--------可行性分析-------概要设计-------详细设计------编码实现--------调试和测试---------软件验收和应用-------维护升级-------废弃

  1. 软件测试的目的?

测试的目的不仅仅是为了发现软件缺陷和错误,而且也是对软件质量进行度量和评估,以提高软件的质量

  1. 软件测试的原则?

  • 测试证明软件存在缺陷

  • 不可能执行穷尽测试,基于风险的测试时必须的

  • 测试应该尽早启动,尽早接入

  • 缺陷存在集群现象(82原则)

  • 杀虫剂悖论

  • 不同的测试活动依赖于不同的测试背景

  • 不存在缺陷的谬论

  • 基于上下文不断调整测试策略方式方法

  1. 测试分为哪几个阶段?

单元测试,集成测试,系统测试,验收测试

  1. 如何做好测试计划?

  • 5W原则

  • What 明确测试什么

  • Why 明确测试目标

  • When 明确项目开始时间结束时间

  • How 明确测试方案

  • Where 明确资料的位置

  1. 测试执行的步骤是怎么样的?

部署测试环境-----对测试用例进行分类-----执行测试用例------记录测试结果,对缺陷进行分级分类--------反馈缺陷并跟踪直至缺陷关闭

  1. 测试用例是怎么设计的?

对需求进行模块化分解使用科学有效的设计方法

  1. 测试计划包含哪些内容?

概述----测试环境-----测试规划----测试策略---测试进度安排-----测试风险分析-----风险规避

  1. 测试方案包含哪些内容?

  • 方案版本及时间

  • 编写目的

  • 编写人员

  • 测试用例

  1. 测试报告包含哪些内容?

  • 测试背景说明

  • 测试范围说明

  • 测试环境说明

  • 测试方法说明

  • 测试结果结论

  • 质量或风险评估

  1. BS和CS架构有什么区别?

B/S架构是Brower/Sever的缩写 浏览器服务器架构 例如:慕课网站

C/S架构是Client/Sever的缩写 客户端服务器架构 例如:杀毒软件

  1. 软件测试的分类?

按开发阶段划分:单元测试,集成测试,系统测试,验收测试

按照测试技术划分:白盒测试,灰盒测试,黑盒测试

  1. Bug的生命周期?

发现bug---提交bug---指派bug---研发确认bug---研发修复bug---回归验证bug----是否通过验证----关闭bug

  1. 你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别和联系。

  • 测试类型有:功能测试、性能测试、界面测试

  • 功能测试在测试工作中占有比例最大,功能测试也叫黑盒测试。

  • 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。负载测试和压力测试都属于性能测试,两者可以结合进行。

  • 界面测试,界面是软件与用户交互的最直接的层,界面的好坏决定用户对软件的第一印象。

  • 区别在于,功能测试关注产品的所有功能,要考虑到每个细节功能,每个可能存在的功能问题。性能测试主要关注产品整体的多用户并发下的稳定性和健壮性。界面测试则关注与用户体验相关内容,用户使用该产品的时候是否已用,是否易懂,是否规范(用户无意输入无效的数据,当然考虑到体验性,不能太粗鲁的弹出警告)。做某个性能测试的时候,首先它可能是个功能点,首先要保证她的功能是没有问题的,然后再考虑性能的问题。

  1. 你们怎么确保用例覆盖率,确保不重复?

利用判定表法的思想,先穷举,再挑代表。然后案例评审时候,产品经理,开发组长,测试组长,还有对应模块的开发负责人也会把关,可以咨询他们的意见,确保案例覆盖完全,又没有多余的案例

  1. 数据库查找两个表

select 列1,列2 from 表1,表2 where 表1.列=表2.列

  1. 左联结和右联结的区别?

左联结保留左边表所有数据,右边表只显示符合匹配条件的数据,没匹配的以空值表示;右联结保留右表的数据,左边表只显示符合匹配条件的数据,没有匹配的以空值表示

  1. Linux查看文件用什么命令?

查看文件内容的命令有 more less head tail cat

  1. Linux查看进程用什么命令?

查看进程:ps -ef | grep 进程号

  1. Linux查看日志用什么命令?主要查看什么内容?

查看日志文件常用:less、view

主要查看程序运行的记录,比如支付失败,后台就有报错信息打印到.log日志文件中,就可以通过分析日志信息来初步定为问题。(补充:同时也去查询数据库,分析订单数据,查看支付状态等等

  1. 如何查找a.log日志文件的error字符串?

第一种方式:(建议说第一种方式)

cat a.log | grep error;

第二种方式:

1 less a.log;

2 /error;

  1. Linux如何搭建测试环境?

1 通过winscp上传tomcat,MySQL安装包,JDK(Java开发环境工具包)到linux下

2 利用tar -zxvf解压缩包命令对jdk,tomcat,mysql进行解包、安装,再配置jdk环境变量。

3 把war包(web程序)放到tomcate指定目录webapps下,再启动服务器即可。(输入startup.sh的路径,直接回车即可运行)

  1. 视图是什么?

视图记录了一条SQL语句,当查询时才有数据返回。表就是一张具体的表。视图只能查询数据,表可以增删改查。

  1. Tcp/ip协议有几层?端口在哪层?Ip协议在哪层?

  • 网络接口层:负责接收和发送物理帧

  • 网络层:负责相邻节点之间的通信

  • 传输层:负责起点到终点的通信

  • 应用层:提供诸如文件传输、电子邮件等应用程序

  • 端口在传输层

  • Ip协议在网络层

  1. http网页返回码代表什么意思?

  • 101 请求者已要求服务器切换协议,服务器已确认并准备切换

  • 200 服务器已成功处理了请求

  • 303 请求者应当对不同的位置使用单独的get请求来检索响应时,服务器返回此代码

  • 307 服务器目前从不同位置的网页响应请求,但请求者应当继续使用原有位置来响应以后的请求

  • 400 服务器不理解请求的语法

  • 401 次页要求授权

  • 403 服务器拒绝请求

  • 404 服务器找不到请求的网页

  • 405 禁用服务器中指定的方法

  • 500 服务器遇到错误,无法完成请求

  • 503 服务器目前无法使用

  1. 性能测试要关注哪些点?

  • 硬件资源指标和系统指标

  • 资源指标:CPU使用率、内存使用率、网络宽带

  • 系统指标:并发用户数、在线用户数、平均响应时间、事务成功率、超时错误率

  1. Cookie和session的区别?

  • cookie数据存放在客户的浏览器上,session数据放在服务器上

  • cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session

  • session会在一定时间内保存在服务器上,当访问增多,会比较占用你的服务器性能,考虑到减轻服务器性能方面,应当使用cookie

  • 单个cookie保存的数据不能超过4k,很多浏览器都限制一个站点最多保存20个cookie

  1. Beta测试和alpha测试的区别?

  • Beta测试 是软件的多个用户在一个或多个用户的实际使用环境下进行的测试,开发通常不在测试现场

  • Alpha 测试 是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试

  1. Get和post的区别?

(1)在客户端,Get方式在通过URL提交数据,数据在URL中可以看到;POST方式,数据放置在HTML HEADER内提交。

(2) GET方式提交的数据最多只能有1024字节,而POST则没有此限制。

(3) 安全性问题。正如在(1)中提到,使用 Get 的时候,参数会显示在地址栏上,而 Post 不会。所以,如果这些数据是中文数据而且是非敏感数据,那么使用 get;如果用户输入的数据不是中文字符而且包含敏感数据,那么还是使用 post为好。

(4) 安全的和幂等的。所谓安全的意味着该操作用于获取信息而非修改信息。幂等的意味着对同一 URL 的多个请求应该返回同样的结果。完整的定义并不像看起来那样严格。换句话说,GET 请求一般不应产生副作用。从根本上讲,其目标是当用户打开一个链接时,她可以确信从自身的角度来看没有改变资源。比如,新闻站点的头版不断更新。虽然第二次请求会返回不同的一批新闻,该操作仍然被认为是安全的和幂等的,因为它总是返回当前的新闻。反之亦然。POST 请求就不那么轻松了。POST 表示可能改变服务器上的资源的请求。仍然以新闻站点为例,读者对文章的注解应该通过 POST 请求实现,因为在注解提交之后站点已经不同了

  1. 当开发人员说不是bug时你如何应对?

开发人员说不是BUG,有2种情况,一是需求没有确定,所以我可以这么做,这个时候可以找来产品经理进行确认,需不需要改动。3方商量确定好后再看要不要改。二是这种情况不可能发生,所以不需要修改,这个时候,我可以先尽可能的说出是BUG的一句是什么?如果被用户发现或出了问题,会有什么不良结果?程序员可能会给你很多理由,你可以对他的解释进行反驳。如果还是不行,那我可以给这个问题提出来,跟开发经理和测试经理进行确认,如果要修改就改,如果不要修改就不改。其实有些真的不是BUG,我也只是建议的方式写进测试文档中,如果开发人员不修改也没有大问题。如果不是BUG的话,一定要坚持自己的立场,让问题得到最后的确认

  1. 工作非常努力了,还是没完成上级交代的任务,怎么办?

要分析原因,如果是能力不够的愿意,要表示愿意且一直在提高能力,希望领导谅解

如果是因为领导安排的任务过多,则要委婉的表达自己的能力有限,不希望自己的能力影响项目的进度,另外也请领导多给点提高效率的建议

  1. 如果领导分配你的任务超出负荷,领导高估了你的能力,怎么办?

  1. 首先表达态度,态度上愿意通过加班来完成,还可以请求测试同事支援,让组长协调。

  1. 高估了能力,能力可以在工作中通过自己的努力来达到领导的要求。

  1. 总而言之基本的思路是态度要端正。

  1. 不能直接拒绝任务。但也同时表达万一做不好还请领导包容。

  1. 假设你是组长,团队中有一个员工无法按时完成交付的任务,你如何处理?

  1. 首先先检讨自己是否任务安排超过了这个员工的能力。

  1. 如果没有超过,首先表示关心身体和状态,了解未及时完成任务的原因,如果原因是客观原因则一起加班跟员工来完

  1. 成任务。

  1. 如果是态度原因,则指出利害关系,责令其通过加班来完成。

  1. 如果因为你的错误导致工作发生问题,你怎么办?

  1. 首先要表达在过去的工作中从未发生过类似事情,因为自己工作态度还是很端正的。

  1. 万一因为自己的错误导致工作发生问题,首先应该把问题上报给领导,争取把问题的影响降到最低程度。

  1. 给你一个模块测试,只有一个星期的时间,你如何高效地完成?

在有限的时间里,明确需求的情况下,制定工作计划,把每天任务细分,先保证重要功能,跟进修复情况,及时验证bug。每天发工作日报,汇报进度,如果遇到风险,及时汇报领导。

  1. 如果给你一个没有需求的app测试项目,你应该怎么测?

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

  1. 如果你和开发的意见产生分歧,你怎么处理?

对事不对人,首先尝试站在开发的角度接受对方的意见和建议,同时控制好自己的情绪,在对方情绪可控的情况下表达自己的意见

  1. 如果你组长的用例写错了。但他认为是对的,你怎么处理?

  1. 通常情况下,领导看问题的角度会比我们更全面,所以我首先得确保领导的用例是否真的有考虑不到的地方

  1. 我不会坚持自己是对的,但是在合理的情况下表达自己的观点

  1. 你同时负责功能和性能,你怎么做?

先测试功能,保证功能的完成,再做性能,在提交bug后,开发还没有改好时,可以准备性能测试,在工作时间很紧的情况下会主动加班

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值