字节面试,新鲜出炉的软件测试面试题(附带答案)_字节面试代码题(1)

本文提供了一份详细的软件测试学习资料,覆盖零基础到高级进阶,包括测试方法、安全性、用户体验、兼容性等内容,旨在帮助程序员高效提升技能并避免知识碎片化。
摘要由CSDN通过智能技术生成

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
img

正文

点击搜索按钮后,搜索结果多长时间能够显示

进入搜索页面需要多久

3、安全性方面的测试

能否防止SQL注入攻击,否防止XSS攻击

4、用户体验测试

页面布局是否合理,输入框和按钮是否对齐

输入框的大小和按钮的长度,高度是否合理

快捷键:能不能全选,部分选择,复制剪切粘贴是否可用,粘贴超过最大长度的字符串怎么显示

5、兼容性测试

BS架构:不同浏览器测试,比如:火狐,谷歌,360这些

APP:在主流的不同类型,不同分辨率,不同操作系统的手机上测试,苹果,华为,vivo,oppo等

9、如果需要你来测试淘宝的购物车,你会如何设计测试用例,需要从哪些方面来考虑?

1、打开淘宝页面后,页面的布局是否是完整的

2、页面的功能按钮是否可以正常显示

3、在商品页面是否会显示加入购物车

4、选中的商品是否能加入购物车

5、加入购物车后是否可以显示商品的所有信息

6、添加到购物车的商品是否可以进行删除

7、如果在网络不佳或无网络时是否可以成功的加入购物车

8、添加购物车后,点击加号的时候数量是否会增长

9、添加购物车后,点击减号的时候数量是否会减少

10、如果点击减号减到一定程度时,是否会提示不能再减少了

11、如果淘宝用户未登录时,如果添加到购物车时是否会提示请先登录

12、如果没有选择任何商品,点击结算,是否会提示用户“请添加要结算的商品”

13、勾选商品后已选商品的总价是否会显示

14、勾选商品显示总价后,总价计算是否正确

15、勾选商品,点击结算按钮后,是否会进入确认订单信息的页面

16、进入确认订单信息页面的总价是否正确

17、总价是否会出现精度不准的情况,比如:正确总价是18.99,结果显示的确实18.999999999999

18、是否有回到顶部功能

19、是否可以编辑商品属性

20、能否移入到收藏中

21、店铺名称是否显示

22、能否选择全部商品

23、能否取消选择全部商品

24、是否可以在购物车中修改商品的规格

25、添加购物的数量超过库存数量是否进行限制

26、是否可以进行清空购物车

27、结算金额是否会随着商品数量的增加减少进行变化

28、如果刷新的次数过多,是否会出现闪退的现象

29、当手机来电话时淘宝页面是会还会运行

30、当手机内存不够时,淘宝运行起来是否会出现卡顿的现象

10、数据库有几种表结构的连接方式?

内连接(inner join)

外连接(outer join)

左外连接(left outer join)

右外连接(right outer join)

全外连接(full outer join)

区别:

1、其中外连接的“OUTER”关键字可以省略不写。

2、内连接用于返回满足连接条件的记录;而外连接则是内连接的扩展,它不仅会满足连接条件的记录,而且还会返回不满足连接条件的记录。

3、内连接查询返回满足条件的所有记录,默认情况下没有指定任何连接则为内连接。

4、左外连接查询不仅返回满足条件的所有记录,而且还会返回不满足连接条件的连接操作符左边表的其他行

5、右外连接查询不仅返回满足条件的所有记录,而且还会返回不满足连接条件的连接操作符右边表的其他行。

6、全连接查询不仅返回满足条件的所有记录,而且还会返回不满足连接条件的其他行。

11、UI自动化中常用的定位元素的方法?

1、id定位
find_element_by_id(“”) #通过id来定位元素
在HTML中,id是唯一的,通过id但部分元素可能没有id或id为随机值。

2、name定位
find_element_by_name(“”) #通过name来定位元素

3、class定位
find_element_by_class_name(“”) #通过class来定位元素

4、tag定位
find_element_by_tag_name(“”) #通过tag来定位元素

5、link定位
find_element_by_link_text(“”) #通过link来定位元素

6、partial link定位
find_element_by_partial_link_text(“”) #通过元素标签对之间的部分文字进行元素定位

7、XPath定位(UI自动化应用最普遍的)
下面列出了最有用的路径表达式:
nodeName 选取此节点的所有子节点
/ 从根节点选取
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置
. 选取当前节点
… 选取当前节点的父节点
@ 选取属性

下面XPath的几种元素定位方法
(1)绝对路径定位
find_element_by_xpath(“/html/body/div[2]/div[2]/div[5]/div[1]/div/form/span[2]/input”)

(2)利用元素定位(与前六种方法类似)
#利用元素属性进行定位
find_element_by_xpath(“//input[@id=‘‘]“)
find_element_by_xpath(”//input[@name=’
’]”)
find_element_by_xpath(“//input[@class=‘‘]“)
find_element_by_xpath(”//input[@type=’
’]”)
#利用元素层级属性进行定位,相对路径 #根据class属性唯一值,一层一层定位到元素
find_element_by_xpath(“//div[@class=‘‘])/table/tbody/tr/td/div")
#利用逻辑运算符进行定位
find_element_by_xpath("//input[@id=’
’ and @name=‘‘]“)
find_element_by_xpath(”//input[@id=’
’ or @name=‘**’]”)
#利用contains包含方法进行定位,查找classname属性下,classname中包含name的元素
find_element_by_xpath(“//classname[contains(@classname,‘name’)]”)
#利用starts-with,使用开始位置元素进行定位
find_element_by_xpath(“//input[starts-with(@name,‘vaule’)]”)
#利用ends-with,使用结束位置元素进行定位
find_element_by_xpath(“//input[ends-with(@name,‘vaule’)]”)
#利用text()进行元素定位
find_element_by_xpath(“//input[text(),‘百度’]”)
#其它方法 #string-length()、substring、substring-before()、substring-after()

8、CSS_selector定位
CSS选择器可以更灵活的选择空间的任意属性,且CSS定位速度比XPath定位快。
find_element_by_css_selector(“.“) #通过class定位,CSS中class选择器以”.“来定义
find_element_by_css_selector(”#
”) #通过id定位,CSS中id选择器以"#“来定义
find_element_by_css_selector(“div”) #通过标签名定位
find_element_by_css_selector(”[name=‘**’]") #通过name进行定位
find_element_by_css_selector(“td > div”) #通过父标签,查找子元素中标签名为div的所有元素

12、关闭浏览器close()与quit()的区别?

close() 关闭当前操作的窗口(并非关闭超链接新打开的窗口)

quit() 退出相关驱动程序,关闭所有窗口

一般在自动化脚本执行完后,需要清空环境,释放占用的内存。采用driver.quit()来直接关闭浏览器。

13、自动化测试中元素定位不到有哪几种原因?

1、检查元素是不是写对了(看似简单,但是我相信还是会有人自己打错了)

2、ID是自动生成的,随机的,如果是自动生成的id,那么朋友,你只能是放弃使用id来定位了

3、选用的方法对应的属性并不唯一,整个页面有好几个

4、查看是否存在多个iframe标签,需要切换iframe再定位

5、使用了带有空格的属性,定位的时候请避开选用带空格的属性

6、看看是不是使用了绝对路径,因为在前端开发的时候可能会增删改标签,这就导致你用的绝对路径出错了,所以使用相对路径会比较好

7、检查有没有加上等待时间,很多时候是因为未加载出来元素导致元素找不到

8、检查自己设的等待时间是不是太短了,别以为加了等待时间就万事ok了,说不定你设的3秒内加载元素,结果人家第4秒才加载出来,那就哦豁了,所以可以适当的加上等待时间,至于是隐性等待还是显性等待或者是固定等待,视情况选择吧

9、检查你选择的元素是不是可见的,有的元素会被隐藏

14、常用自动化测试工具有哪些?

1、Selenium:Selenium是一种用于Web应用程序测试的开源自动化测试工具。它可以模拟用户在Web浏览器中的操作,以验证Web应用程序的功能和性能。

2、Appium:Appium是一种开源的自动化测试框架,可用于测试原生、混合和移动Web应用程序。它可以在多种移动设备和操作系统上运行,包括iOS、Android和Firefox OS。

3、Watir:Watir是一种开源的自动化测试框架,可用于测试Web应用程序。它使用Ruby编写,可以模拟用户在Web浏览器中的操作,以验证Web应用程序的功能和性能。

4、TestComplete:TestComplete是一种商业自动化测试工具,可用于测试Windows、Web、移动和桌面应用程序。它可以自动录制和回放用户操作,以验证应用程序的功能和性能。

5、QTP:QTP(QuickTest Professional)是一种商业自动化测试工具,可用于测试Windows、Web、移动和桌面应用程序。它可以自动录制和回放用户操作,以验证应用程序的功能和性能。

15、弱网测试是怎么做的?

弱网测试是指在网络环境较差的情况下,测试软件或硬件的性能和稳定性。它的主要目的是检测软件或硬件在网络环境较差的情况下是否能够正常运行,以及在网络环境较差的情况下,软件或硬件的性能是否能够满足用户的要求。

弱网测试的具体步骤如下:

1、分析用户的网络环境:首先,需要分析用户的网络环境,包括网络的带宽、网络的延迟、网络的丢包率等,以便确定测试的网络环境。

2、设置测试环境:根据用户的网络环境,设置测试环境,包括设置网络的带宽、网络的延迟、网络的丢包率等,以便模拟用户的网络环境。

3、进行测试:在设置好的测试环境中,进行测试,检测软件或硬件在网络环境较差的情况下是否能够正常运行,以及在网络环境较差的情况下,软件或硬件的性能是否能够满足用户的要求。

4、分析测试结果:最后,分析测试结果,确定软件或硬件在网络环境较差的情况下是否能够正常运行,以及在网络环境较差的情况下,软件或硬件的性能是否能够满足用户的要求。

16、关键字驱动和数据驱动有哪些区别?

1、关键字驱动是指测试用例的执行过程是由一系列的关键字来控制的,而数据驱动是指测试用例的执行过程是由外部的数据文件来控制的。

2、关键字驱动的测试用例的编写比较简单,而数据驱动的测试用例的编写比较复杂。

3、关键字驱动的测试用例可以更容易地实现参数化,而数据驱动的测试用例可以更容易地实现数据驱动。

4、关键字驱动的测试用例可以更容易地实现自动化,而数据驱动的测试用例可以更容易地实现可维护性。

17、什么是装饰器,其作用是什么?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
容易地实现参数化,而数据驱动的测试用例可以更容易地实现数据驱动。

4、关键字驱动的测试用例可以更容易地实现自动化,而数据驱动的测试用例可以更容易地实现可维护性。

17、什么是装饰器,其作用是什么?

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-J2epZLMt-1713540800083)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值