草庐IT

2022大厂高频软件测试面试真题(附答案)

喜欢软测的小北葵 2023-04-04 原文

一、接口测试面试题:

1.接口测试是怎么做的,如何分析数据?

接口测试实际跟一般测试不同就是测试用例的设计部分。

获取接口规范。

设计接口测试功能用例(主要从用户角度出发看接口能否实现业务需求,用例设计就是黑盒用例那一套)。

各种入参验证(正常情况,异常情况包括输入参数个数不对,类型不对,可选/必选,还有考虑参数有互斥或关联的情况)。

接口返回值各种验证(符合接口文档需求)

了解接口实现逻辑,实现逻辑覆盖(语句/条件/分支/判定/…)

接口能并发执行吗、安全吗,性能满足要求吗?

采用工具或者自写代码来验证。

发现问题跟功能测试一样,该报bug报bug,该跟踪状态的跟踪状态

2.你用什么工具测试接口?

postman、jmeter、soapui(不常用)

3.你都知道有哪些接口请求方式?区别是什么?

GET post PUE DELETE

区别:get直接从服务端拉取数据

post:先发送请求再拉数据(注册、更新、改)

put:修改的数据

delete:用户删除数据

这几种方式,取决于开发,他用啥你们就传啥

4.为什么要做接口测试?

1、通过接口测试能快速发现非功能层面的一些逻辑问题

2、能提高测试的效率

3、相对UI自动化来说,比较稳定,能减少回归成本

5.一个前后端都能修改的bug,应该由谁修改?

后端修改

6.如何定位是前端bug还是后端bug(*)

1、验证这个BUG、在前端去复现bug

2、在服务器上面找到日志文件

3、用tail -f显示日志

4、去观察日志,如果有明确的“exception”,那就是后台报错

5、接口返回码为500+即服务器问题,后台问题。

前端:

前问题一般就是界面的问题,不过像开发在url中加入新的请求参数,而没有写进接口文档中的错误属于后端错误。

一般像页面的排版和显示问题都属于前端问题

8. 今日头条的列表页面接口,这个接口有三个参数,一个参数是type字段,type=1代表是图文类文章,type=2代表是视频类文章 type=3时是纯文本文章,另外两个字段是pagesize ,还有一个参数是pageno,对于这个接口你怎么测试?

答案:

传入type=1 pagesize=6 pageno=1 它返回的数据图文文章列表第一页6条数据

传入type=2 pagesize=3 pageno=2 它返回的数据视频类文章第2页3条数据

传入type=3 pagesize=4 pageno=2 它返回的数据视频类文章第2页4条数据

类型为空条数为空、页数为空,它返回无数据

类型和条数和页数传入特殊字符、超长,传入负数它的节点返回无数据

9.注册账号成功,但登录失败,怎么排查?

注册用户的数据没有传入到数据,那就调用一下登录接口是否成功,如果失败了,提bug

10.我要测商品列表接口,但是这个接口是依赖于登录接口,要登录成功才能测这个接口,用postman怎样去做这个接口测试?

1.首先在postman创建一个登录接口,确定登录是正常的,如果它使用的cookie那么需要把cookie传入列表接口头部信息中

如果登录接口他返回的token是在返回报文中,那么列表接口直接在头部信息中传入这个token即可

最后两个联通之后,根据用例传入不同的参数值去校验这个商品列表接口是否正常

二、Ui自动化测试面试题:

1、写出4种xpath定位方式定位如下红框中的控件

2、如何从如下红框中的a标签,定位到如下红框中的div标签?

3、如何从红框中的a标签,定位到如下红框中的form标签?

4、如下iframe,如何定位到切换到iframe1、iframe2、iframe3、iframe4;如果目前已经切换到了iframe4,如果定位到iframe2中的某一个控件?如果切换到了iframe2如何定位到body中的某一个控件?

三、MySQL笔试题:

1.把字段基金代码的长度扩长为8位
2.统计同一销售商和网点代码下持有的总份额
3.统计出同一个基金帐号和基金代码记录数超过2条的总数有多少
4.把基金账号为100008,网点代码最小的那条记录的份额更新为2000

CREATE TABLE A (
P_ID int,
p_num int,
s_id int);
INSERT INTO A VALUES
(1,10,01),
(1,12,02),
(2,8,01),
(3,11,01),
(3,8,03);

select a.*,a.s1_id+a.s2_id+a.s3_id as sum_p from (select p_id,
sum(case when s_id=1 then p_num else 0 end) as s1_id ,
sum(case when s_id=2 then p_num else 0 end) as s2_id ,
sum(case when s_id=3 then p_num else 0 end) as s3_id
from product_t group by p_id) a;

四、测试基础面试题:

1、描述下敏捷测试流程

2、介绍下你做过项目的业务流程

3、介绍下做过的项目当时你团队组成是什么样?有多少开发、测试,项目周期多久,时间4、如何分配的,有多少用例,多少bug等?

5、APP测试和web测试有什么区别

6、测试计划包含哪些内容

7、什么叫冒烟测试用例?冒烟测试用例一般会选取哪些作为冒烟测试用例

8、讲下bug处理流程,你们是用什么工具提单的

9、说下你印象最深的bug

10、偶现性bug怎么处理

11、测试用例设计都有哪些方法?什么场景下使用什么方法

12、有个上传文件的功能,需要上传文件,测试点有哪些?

13、进行测试用例设计:一串数字,闰年的判别

14、如何测试ip地址(IP地址组成为:(1~255).(0~255).(0~255).(0~255))

15、测试报告都有哪些要素?

16、bug的处理机制 bug的定级

17、线上出现bug时,处理流程是什么样的?

18、订单列表展示的测试用例设计

19、你觉得一个软件达到什么标准可以上线

20、请进行测试用例设计:一串数字,闰年的判别

鉴于篇幅所限,需要完整面试题(附答案)的可以私信我关键词“资料”免费获取

有关2022大厂高频软件测试面试真题(附答案)的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - 使用 C 扩展开发 ruby​​gem 时,如何使用 Rspec 在本地进行测试? - 2

    我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当

  3. ruby - Ruby 的 Hash 在比较键时使用哪种相等性测试? - 2

    我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。

  4. ruby - RSpec - 使用测试替身作为 block 参数 - 2

    我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere

  5. ruby - Sinatra:运行 rspec 测试时记录噪音 - 2

    Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/

  6. ruby-on-rails - 迷你测试错误 : "NameError: uninitialized constant" - 2

    我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test

  7. ruby - 即使失败也继续进行多主机测试 - 2

    我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r

  8. ruby-on-rails - 如何使辅助方法在 Rails 集成测试中可用? - 2

    我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel

  9. ruby-on-rails - Cucumber 是否只是 rspec 的包装器以帮助将测试组织成功能? - 2

    只是想确保我理解了事情。据我目前收集到的信息,Cucumber只是一个“包装器”,或者是一种通过将事物分类为功能和步骤来组织测试的好方法,其中实际的单元测试处于步骤阶段。它允许您根据事物的工作方式组织您的测试。对吗? 最佳答案 有点。它是一种组织测试的方式,但不仅如此。它的行为就像最初的Rails集成测试一样,但更易于使用。这里最大的好处是您的session在整个Scenario中保持透明。关于Cucumber的另一件事是您(应该)从使用您的代码的浏览器或客户端的角度进行测试。如果您愿意,您可以使用步骤来构建对象和设置状态,但通常您

  10. ruby-on-rails - 如何调试 cucumber 测试? - 2

    我有:When/^(?:|I)follow"([^"]*)"(?:within"([^"]*)")?$/do|link,selector|with_scope(selector)doclick_link(link)endend我打电话的地方:Background:GivenIamanexistingadminuserWhenIfollow"CLIENTS"我的HTML是这样的:CLIENTS我一直收到这个错误:.F-.F--U-----U(::)failedsteps(::)nolinkwithtitle,idortext'CLIENTS'found(Capybara::Element

随机推荐