软件测试面试题「值得收藏」

news2024/9/28 5:22:38

 1、B/S架构和C/S架构区别?

1、架构不同:B/S架构是浏览器/服务器架构,C/S架构是客户端/服务器架构。

2、客户端不同:B/S架构的客户端是浏览器,C/S架构的客户端是客户端程序。

3、功能不同:B/S架构主要用于网络服务,C/S架构主要用于应用程序服务。

4、维护不同:B/S架构的维护主要在服务器端,C/S架构的维护主要在客户端和服务器端。

5、安全性不同:B/S架构的安全性较低,C/S架构的安全性较高。

2、Cookie和Session的区别?

Cookie和Session都是用来保存用户信息的技术,但是它们之间有一些明显的区别:

1、Cookie数据存放在客户的浏览器上,而Session数据放在服务器上。

2、Cookie不是很安全,别人可以分析存放在本地的Cookie并进行Cookie欺骗,而Session比较安全,服务器端会对Session加密处理。

3、Cookie可以设置过期时间,当访问器关闭后Cookie就会失效,而Session会在一定时间内保存,当访问器关闭后,Session不会失效,只有当Session过期时间到了,Session才会失效。

4、Cookie可以保存客户端的信息,而Session只能保存服务器端的信息。

3、测试的目的是什么?

测试的目的是为了确保软件系统能够按照预期的方式正常运行,并且能够满足用户的需求。

4、对一支圆珠笔进行测试,要从哪些方面进行测试?

1、写字质量:检查笔尖的细腻度、笔芯的流畅度、笔芯的颜色、笔芯的持久度等。

2、外观质量:检查笔身的外观、笔芯的外观、笔帽的外观等。

3、工艺质量:检查笔芯的安装情况、笔芯的拆卸情况、笔芯的更换情况等。

4、功能性能:检查笔尖的精细度、笔芯的流畅度、笔芯的持久度、笔芯的耐用度等。

5、安全性能:检查笔芯的安全性、笔芯的耐磨性、笔芯的耐腐蚀性等。

5、三角形测试用例设计?

1、测试用例1:输入三条边长,验证是否能构成三角形

2、测试用例2:输入三条边长,验证是否能构成等边三角形

3、测试用例3:输入三条边长,验证是否能构成等腰三角形

4、测试用例4:输入三条边长,验证是否能构成直角三角形

5、测试用例5:输入三条边长,验证是否能构成钝角三角形

6、在项目中发现哪些经典bug?什么原因导致的?

1、空指针异常:当程序试图访问一个不存在的指针时,就会发生空指针异常。这种异常通常是由于程序员忘记初始化指针或者试图访问一个不存在的内存地址而导致的。

2、越界访问:当程序试图访问一个超出数组范围的元素时,就会发生越界访问。这种异常通常是由于程序员忘记检查数组的边界条件而导致的。

3、内存泄漏:当程序在申请内存后,忘记释放内存时,就会发生内存泄漏。这种异常通常是由于程序员忘记释放内存或者忘记检查内存是否被释放而导致的。

7、如何尽快找到软件中的bug?

1、首先,要对软件的功能和架构有一个清晰的理解,以便更好地定位问题。

2、尝试使用软件的不同功能,查看是否有任何异常情况发生。

3、尝试使用不同的输入数据,以查看软件是否能够正确处理。

4、尝试使用软件的自动测试功能,以查看是否有任何异常情况发生。

5、尝试使用软件的调试功能,以查看软件的执行过程,以及可能出现的错误。

6、尝试使用软件的日志功能,以查看可能出现的错误信息。

7、尝试使用第三方工具,如内存调试器,以查看可能出现的内存泄漏。

8、尝试使用第三方工具,如性能分析器,以查看可能出现的性能问题。

9、尝试使用第三方工具,如安全扫描器,以查看可能出现的安全漏洞。

10、尝试使用第三方工具,如静态代码分析器,以查看可能出现的代码错误。

8、搜索功能怎么测试?

1、功能方面的测试:

搜索单个字,词语,句子,检索到的内容是否准确,链接是否准确

长度:例如输入框支持100字符,那需要测试100字符、101字符,最大长度的显示是否正常

哪些是支持的字符类型:数字、字母、汉字、字符!@!#、特殊字符(需求而定)

字符串前后中带空格,前后的空格是否过滤,中间的空格是否保留(需求而定)

全角半角的字母、数字(需求而定)

2、性能方面的测试

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

进入搜索页面需要多久

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. 1、id定位

  2. find_element_by_id("") #通过id来定位元素

  3. 在HTML中,id是唯一的,通过id但部分元素可能没有id或id为随机值。

  4. 2、name定位

  5. find_element_by_name("") #通过name来定位元素

  6. 3、class定位

  7. find_element_by_class_name("") #通过class来定位元素

  8. 4、tag定位

  9. find_element_by_tag_name("") #通过tag来定位元素

  10. 5、link定位

  11. find_element_by_link_text("") #通过link来定位元素

  12. 6、partial link定位

  13. find_element_by_partial_link_text("") #通过元素标签对之间的部分文字进行元素定位

  14. 7、XPath定位(UI自动化应用最普遍的)

  15. 下面列出了最有用的路径表达式:

  16. nodeName 选取此节点的所有子节点

  17. / 从根节点选取

  18. // 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置

  19. . 选取当前节点

  20. … 选取当前节点的父节点

  21. @ 选取属性

  22. 下面XPath的几种元素定位方法

  23. (1)绝对路径定位

  24. find_element_by_xpath("/html/body/div[2]/div[2]/div[5]/div[1]/div/form/span[2]/input")

  25. (2)利用元素定位(与前六种方法类似)

  26. #利用元素属性进行定位

  27. find_element_by_xpath("//input[@id='**']")

  28. find_element_by_xpath("//input[@name='**']")

  29. find_element_by_xpath("//input[@class='**']")

  30. find_element_by_xpath("//input[@type='**']")

  31. #利用元素层级属性进行定位,相对路径 #根据class属性唯一值,一层一层定位到元素

  32. find_element_by_xpath("//div[@class='**'])/table/tbody/tr/td/div")

  33. #利用逻辑运算符进行定位

  34. find_element_by_xpath("//input[@id='**' and @name='**']")

  35. find_element_by_xpath("//input[@id='**' or @name='**']")

  36. #利用contains包含方法进行定位,查找classname属性下,classname中包含name的元素

  37. find_element_by_xpath("//classname[contains(@classname,'name')]")

  38. #利用starts-with,使用开始位置元素进行定位

  39. find_element_by_xpath("//input[starts-with(@name,'vaule')]")

  40. #利用ends-with,使用结束位置元素进行定位

  41. find_element_by_xpath("//input[ends-with(@name,'vaule')]")

  42. #利用text()进行元素定位

  43. find_element_by_xpath("//input[text(),'百度']")

  44. #其它方法 #string-length()、substring、substring-before()、substring-after()

  45. 8、CSS_selector定位

  46. CSS选择器可以更灵活的选择空间的任意属性,且CSS定位速度比XPath定位快。

  47. find_element_by_css_selector(".**") #通过class定位,CSS中class选择器以"."来定义

  48. find_element_by_css_selector("#**") #通过id定位,CSS中id选择器以"#"来定义

  49. find_element_by_css_selector("div") #通过标签名定位

  50. find_element_by_css_selector("[name='**']") #通过name进行定位

  51. 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、什么是装饰器,其作用是什么?

装饰器是一种特殊的函数,它可以在不更改原函数的基础上,为其添加额外的功能。它的作用是在不改变原函数的基础上,为其添加额外的功能,从而使代码更加简洁、优雅。

18、怎样获取字典中的所有键的列表?

  1. 可以使用dict.keys()方法获取字典中的所有键的列表:

  2. dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}

  3. keys = dict.keys()

  4. print(keys)

  5. # 输出结果:dict_keys(['Name', 'Age', 'Class'])

19、如何查看Linux服务器的负载?

可以使用top命令查看Linux服务器的负载,top命令可以实时显示系统中各个进程的资源占用情况,包括CPU使用率、内存使用量等。

也可以使用uptime命令查看Linux服务器的负载,uptime命令可以显示系统的运行时间、当前登录用户数、系统负载等信息。

20、利用Python写出九九乘法口诀?

  1. for i in range(1, 10):

  2.     for j in range(1, i+1):

  3.         print('{}x{}={}\t'.format(i, j, i*j), end='')

  4.     print()

  5. # 输出结果:

  6. 1x1=1

  7. 2x1=2 2x2=4

  8. 3x1=3 3x2=6 3x3=9

  9. 4x1=4 4x2=8 4x3=12 4x4=16

  10. 5x1=5 5x2=10 5x3=15 5x4=20 5x5=25

  11. 6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36

  12. 7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49

  13. 8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64

  14. 9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2089130.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PhpStorm2024版设置自动换行(软换行)

Settings > Editor > General > Soft Wraps 选中并加上对应的文件

链动2+1小程序定制开发在餐饮品牌重塑中的应用探索——以“妈妈饺子馆”为例

摘要:随着互联网技术的飞速发展,餐饮业正经历着前所未有的变革。传统餐饮企业如何在激烈的市场竞争中脱颖而出,成为行业关注的焦点。本文以“妈妈饺子馆”为例,探讨链动21小程序定制开发在餐饮品牌重塑中的应用,特别是…

8 大模型微调

大部分接触大模型的同学大家可能都受限于资源的限制,无法对大模型重新训练。那么如何解决这一困境?我们暂且假定大模型为通用化模型,但是在某一方面的专业领域知识却不强,如果使用专业领域知识重新训练调整,这对资源还…

如何选到好的宠物空气净化器?有没有推荐的品牌?

从最初的手忙脚乱、对宠物养护知识一无所知的新手小白,到如今能够游刃有余地处理各种宠物问题、养宠多年的资深铲屎官,这么久,我也积累了不少的经验,就是希望能为自家的毛孩子提供最健康、最适合的生活。 这么久的养猫历程遇见的…

tcp/udp 可视化 调试工具; tcp/udp 发送客户端;查看tcp连接;netassist;packet sender;tcp view;

前言 最近对接物联设备,物联设备会往java端传送数据,在联调前,问厂商要来了样例数据,然后就找到了netassist和packetsender两款tcp发送工具,来模拟请求;还用tcpview来查看建立的连接。 netassist netass…

BERT:Pre-training of Deep Bidirectional Transformers forLanguage Understanding

个人觉着BERT是一篇读起来很爽的论文 摘要 我们引入了一种新的语言表示模型BERT,它代表Bidirectional Encoder Representations from Transformers。与最近的语言表示模型不同(Peters et al., 2018a;Radford et al., 2018), BER…

52.x86游戏实战-XXX获取房间坐标

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

【Docker】个人笔记

文章目录 Docker三个基本概念镜像(Image)容器(Container)仓库(Repository) Docker命令基础命令查看版本信息显示详细信息从仓库拉取镜像列出本地存储的镜像删除一个或多个镜像列出所有运行中的容器运行一个新的容器停止一个运行中的容器启动一个已停止的容器重启一个容器删除一…

论文泛读: DETRs Beat YOLOs on Real-time Object Detection

[toc[ DETRs Beat YOLOs on Real-time Object Detection 论文地址: https://openaccess.thecvf.com/content/CVPR2024/html/Zhao_DETRs_Beat_YOLOs_on_Real-time_Object_Detection_CVPR_2024_paper.html 代码地址: https://zhao-yian.github.io/RTDETR 动机 现状 YOLO系列因…

车联网技术在智能交通系统中的设计与实现(论文+源码)

1系统方案设计 根据系统设计需求,展开系统详细方案设计。如图2.1所示为系统设计结构框图。系统以STM32单片机为主控制器,利用ATGM336 GPS模块实现车辆实时定位,借助倾斜检测模块监测车辆倾斜角度,并通过OLED液晶显示器实时显示监…

揭晓9款敏捷团队必备的协作工具选择

本文将介绍9款团队协作工具:1.Worktile;2. PingCode;3. 融云 (RongCloud);4. 好团队;5. 微软Teams;6. 小钉贴;7. Lark;8. Bit.ai;9. Hive。 在敏捷开发团队中&#xff0c…

Veeam Backup Replication v12.2 发布,新增功能概述

Veeam Backup & Replication v12.2 发布,新增功能概述 Veeam Data Platform | 面向混合云和多云的 备份和恢复 监控和分析 恢复编排 请访问原文链接:https://sysin.org/blog/veeam-backup-12/,查看最新版。原创作品,转载请保…

烂大街的测试左移和右移

01 测试左移与右移的定义 通俗的讲:左移是往开发阶段移,右移是往发布之后移。 正常测试:提测后的测试工作——到——发布验证完成阶段。 测试左移:提测之前的测试。 如:代码单元测试,代码质量检测&#x…

数据结构的三要素以及数据类型和抽象数据类型

一.数据结构的三要素: 二.逻辑结构: 三.数据的运算: 三.数据的物理结构(存储结构): 1.数据的存储结构:有4种 顺序存储 链式存储 索引存储 散列存储 注:顺序存储数据之间必须相…

没有编程基础?这款数据分析工具也能轻松上手

在当前快节奏的工业环境中,工厂管理者越来越依赖数据分析来优化生产流程、提升效率、降低成本。然而,很多传统的数据分析工具不仅操作复杂,而且费用高昂,让不少工厂望而却步。最近,我发现了一款非常实用的报表工具&…

[MySql]保姆级上手教程

介绍 通过数据库管理系统, 编写执行SQL语句, 实现对数据库数据的管理 数据库(DataBase): 储存和管理数据的仓库数据库管理系统(DBMS): 操作和管理数据库的软件SQL语言: 操作关系型数据库的通用语言数据库可以分为关系型数据库和非关系型数据库 相关产品 常见的关系型数据库产…

STM32G474之TIM1捕获1模式

STM32G474采用TIM8产生方波信号,使用TIM1工作于捕获1模式,并计算方波频率。捕获方波周期,在有些开发中,还是能用到。建议开发时使用HAL库自带的库函数。使用寄存器方法也可以实现,但是后期修改不太方便。 测试时&…

springboot学习(2)

1、springboot入门 需求:使用 Springboot 开发一个 web 应用,浏览器发起请求 /hello 后,给浏览器返回字符串 "hello world!" 2、基本尝试步骤 创建Maven工程导入 spring-boot-starter-web (起步依赖)编写Controller提供启动类 &…

无人机 PX4 飞控 | ROS应用层开发:offboard 模式切换详细总结

无人机 PX4 飞控 | ROS应用层开发:offboard 模式切换详细总结 PX4 offboard 模式介绍通过mavros 进行offboard模式切换代码测试 通过地面站进行offboard模式切换通过遥控器拨杆切换offboard模式 PX4 offboard 模式介绍 PX4 是一个广为熟知的开源飞控软件&#xff0…

Yolo环境搭建(深度学习基础环境)

需要安装的东西 CUDAcuDnn魔法 一、CUDA安装(Windows10环境) 第一:下载驱动 第二:查看显卡支持的最高CUDA的版本,以便下载对应的CUDA安装包 第三:确定CUDA版本对应的cuDNN版本,这个其实不用太关注,因为…