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

2024-08-31 00:28

本文主要是介绍软件测试面试题「值得收藏」,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 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.chinasem.cn/article/1122362

相关文章

荣耀嵌入式面试题及参考答案

在项目中是否有使用过实时操作系统? 在我参与的项目中,有使用过实时操作系统。实时操作系统(RTOS)在对时间要求严格的应用场景中具有重要作用。我曾参与的一个工业自动化控制项目就采用了实时操作系统。在这个项目中,需要对多个传感器的数据进行实时采集和处理,并根据采集到的数据及时控制执行机构的动作。实时操作系统能够提供确定性的响应时间,确保关键任务在规定的时间内完成。 使用实时操作系统的

一些其他面试题

阿里二面:那你来说说定时任务?单机、分布式、调度框架下的定时任务实现是怎么完成的?懵了。。_哔哩哔哩_bilibili 1.定时算法 累加,第二层每一个格子是第一层的总时间400 ms= 20 * 20ms 2.MQ消息丢失 阿里二面:高并发场景下引进消息队列有什么问题?如何保证消息只被消费一次?真是捏了一把汗。。_哔哩哔哩_bilibili 发送消息失败

zookeeper相关面试题

zk的数据同步原理?zk的集群会出现脑裂的问题吗?zk的watch机制实现原理?zk是如何保证一致性的?zk的快速选举leader原理?zk的典型应用场景zk中一个客户端修改了数据之后,其他客户端能够马上获取到最新的数据吗?zk对事物的支持? 1. zk的数据同步原理? zk的数据同步过程中,通过以下三个参数来选择对应的数据同步方式 peerLastZxid:Learner服务器(Follo

java常用面试题-基础知识分享

什么是Java? Java是一种高级编程语言,旨在提供跨平台的解决方案。它是一种面向对象的语言,具有简单、结构化、可移植、可靠、安全等特点。 Java的主要特点是什么? Java的主要特点包括: 简单性:Java的语法相对简单,易于学习和使用。面向对象:Java是一种完全面向对象的语言,支持封装、继承和多态。跨平台性:Java的程序可以在不同的操作系统上运行,称为"Write once,

从希腊神话到好莱坞大片,人工智能的七大历史时期值得铭记

本文选自historyextra,机器之心编译出品,参与成员:Angulia、小樱、柒柒、孟婷 你可能听过「技术奇点」,即本世纪某个阶段将出现超级智能,那时,技术将会以人类难以想象的速度飞速发展。同样,黑洞也是一个奇点,在其上任何物理定律都不适用;因此,技术奇点也是超越未来理解范围的一点。 然而,在我们到达那个奇点之前(假设我们能到达),还存在另一个极大的不连续问题,我将它称之

【Kubernetes】常见面试题汇总(三)

目录 9.简述 Kubernetes 的缺点或当前的不足之处? 10.简述 Kubernetes 相关基础概念? 9.简述 Kubernetes 的缺点或当前的不足之处? Kubernetes 当前存在的缺点(不足)如下: ① 安装过程和配置相对困难复杂; ② 管理服务相对繁琐; ③ 运行和编译需要很多时间; ④ 它比其他替代品更昂贵; ⑤ 对于简单的应用程序来说,可能不

【附答案】C/C++ 最常见50道面试题

文章目录 面试题 1:深入探讨变量的声明与定义的区别面试题 2:编写比较“零值”的`if`语句面试题 3:深入理解`sizeof`与`strlen`的差异面试题 4:解析C与C++中`static`关键字的不同用途面试题 5:比较C语言的`malloc`与C++的`new`面试题 6:实现一个“标准”的`MIN`宏面试题 7:指针是否可以是`volatile`面试题 8:探讨`a`和`&a`

Laravel 面试题

PHP模块 PHP7 和 PHP5 的区别,具体多了哪些新特性? 性能提升了两倍 结合比较运算符 (<=>) 标量类型声明 返回类型声明 try…catch 增加多条件判断,更多 Error 错误可以进行异常处理 匿名类,现在支持通过new class 来实例化一个匿名类,这可以用来替代一些“用后即焚”的完整类定义 …… 了解更多查看文章底部链接 PHP7 新特性 为什么 PHP

【吊打面试官系列-Redis面试题】说说 Redis 哈希槽的概念?

大家好,我是锋哥。今天分享关于 【说说 Redis 哈希槽的概念?】面试题,希望对大家有帮助; 说说 Redis 哈希槽的概念? Redis 集群没有使用一致性 hash,而是引入了哈希槽的概念,Redis 集群有 16384 个哈希槽,每个 key 通过 CRC16 校验后对 16384 取模来决定放置哪个槽, 集群的每个节点负责一部分 hash 槽。

【Kubernetes】常见面试题汇总(一)

目录 1.简述 etcd 及其特点? 2.简述 etcd 适应的场景? 3.简述什么是Kubernetes? 4.简述 Kubernetes和 Docker的关系? 1.简述 etcd 及其特点? (1)etcd 是Core0s 团队发起的开源项目,是一个管理配置信息和服务发现(service discovery)的项目,它的目标是构建一个高可用的分布式键值(keyvalue)数据