Preguntas de la entrevista de prueba de software "vale la pena recopilar"!

Tabla de contenido

1. ¿Cuál es la diferencia entre la arquitectura B/S y la arquitectura C/S?

2. ¿Cuál es la diferencia entre Cookie y Sesión?

3. ¿Cuál es el propósito de la prueba?

4. Para probar un bolígrafo, ¿qué aspectos se deben probar?

5. ¿Diseño de caso de prueba triangular?

6. ¿Qué errores clásicos se encontraron en el proyecto? ¿Qué lo causa?

7. ¿Cómo encontrar errores en el software lo antes posible?

8. ¿Cómo probar la función de búsqueda?

9. Si tuviera que probar el carrito de compras de Taobao, ¿cómo diseñaría el caso de prueba y qué aspectos debería considerar?

10. ¿Cuántos métodos de conexión de estructuras de tablas tiene la base de datos?

11. ¿Cuáles son los métodos comúnmente utilizados para posicionar elementos en la automatización de la interfaz de usuario?

12. ¿Cuál es la diferencia entre cerrar el navegador close() y quit()?

13. ¿Cuáles son las razones por las que no se pueden localizar elementos en pruebas automatizadas?

14. ¿Cuáles son las herramientas de prueba automatizadas de uso común?

15. ¿Cómo se hace la prueba de red débil?

16. ¿Cuál es la diferencia entre basado en palabras clave y basado en datos?

17. ¿Qué es un decorador y cuál es su función?

18. ¿Cómo obtener una lista de todas las claves en un diccionario?

19. ¿Cómo verificar la carga del servidor Linux?

20. ¿Usar Python para escribir noventa y nueve fórmulas de multiplicación?

1. ¿Cuál es la diferencia entre la arquitectura B/S y la arquitectura C/S?

1. Arquitecturas diferentes: la arquitectura B/S es una arquitectura de navegador/servidor y la arquitectura C/S es una arquitectura cliente/servidor.

2. Los clientes son diferentes: el cliente de la arquitectura B/S es un navegador y el cliente de la arquitectura C/S es un programa cliente.

3. Diferentes funciones: la arquitectura B/S se usa principalmente para servicios de red y la arquitectura C/S se usa principalmente para servicios de aplicaciones.

4. El mantenimiento es diferente: el mantenimiento de la arquitectura B/S se realiza principalmente del lado del servidor, y el mantenimiento de la arquitectura C/S se realiza principalmente del lado del cliente y del lado del servidor.

5. Seguridad diferente: la arquitectura B/S tiene menor seguridad, mientras que la arquitectura C/S tiene mayor seguridad.

2. ¿Cuál es la diferencia entre Cookie y Sesión?

Tanto la Cookie como la Sesión son tecnologías utilizadas para guardar información del usuario, pero existen algunas diferencias obvias entre ellas:

1. Los datos de las cookies se almacenan en el navegador del cliente, mientras que los datos de la sesión se almacenan en el servidor.

2. Las cookies no son muy seguras. Otros pueden analizar las cookies almacenadas localmente y engañarlas. Las sesiones son más seguras y el servidor cifrará las sesiones.

3. La cookie puede establecer un tiempo de caducidad. Cuando se cierra el navegador, la cookie no será válida y la sesión se guardará durante un cierto período de tiempo. Cuando se cierre el navegador, la sesión no será válida. Solo cuando el tiempo de caducidad de la sesión ha terminado, la sesión no será válida.

4. Las cookies pueden guardar información del lado del cliente, mientras que la sesión solo puede guardar información del lado del servidor.

3. ¿Cuál es el propósito de la prueba?

El propósito de las pruebas es garantizar que el sistema de software pueda funcionar normalmente como se espera y pueda satisfacer las necesidades de los usuarios.

4. Para probar un bolígrafo, ¿qué aspectos se deben probar?

1. Calidad de escritura: compruebe la finura de la punta, la suavidad de la recarga, el color de la recarga, la durabilidad de la recarga, etc.

2. Calidad de la apariencia: compruebe la apariencia del cuerpo de la pluma, la apariencia de la recarga, la apariencia de la tapa, etc.

3. Calidad del proceso: Comprobar la instalación de la recarga, el desmontaje de la recarga, el reemplazo de la recarga, etc.

4. Rendimiento funcional: compruebe la finura de la punta, la suavidad de la recarga, la durabilidad de la recarga, la durabilidad de la recarga, etc.

5. Rendimiento de seguridad: Verifique la seguridad de la recarga, la resistencia al desgaste de la recarga, la resistencia a la corrosión de la recarga, etc.

5. ¿Diseño de caso de prueba triangular?

1. Caso de prueba 1: Ingrese las longitudes de tres lados para verificar si se puede formar un triángulo

2. Caso de prueba 2: ingrese las longitudes de tres lados para verificar si se puede formar un triángulo equilátero

3. Caso de prueba 3: ingrese las longitudes de tres lados para verificar si se puede formar un triángulo isósceles

4. Caso de prueba 4: ingrese las longitudes de tres lados para verificar si se puede formar un triángulo rectángulo

5. Caso de prueba 5: ingrese las longitudes de tres lados para verificar si se puede formar un triángulo obtuso

6. ¿Qué errores clásicos se encontraron en el proyecto? ¿Qué lo causa?

1. Excepción de puntero nulo: cuando un programa intenta acceder a un puntero que no existe, se produce una excepción de puntero nulo. Esta excepción suele deberse a que el programador se olvida de inicializar el puntero o intenta acceder a una dirección de memoria que no existe.

2. Acceso fuera de los límites: el acceso fuera de los límites ocurre cuando un programa intenta acceder a un elemento más allá del rango de la matriz. Este tipo de excepción suele deberse a que el programador se olvida de comprobar las condiciones de contorno del arreglo.

3. Pérdida de memoria: cuando el programa se olvida de liberar la memoria después de solicitarla, se producirá una pérdida de memoria. Este tipo de excepción suele deberse a que el programador se olvida de liberar la memoria o se olvida de comprobar si la memoria está liberada.

7. ¿Cómo encontrar errores en el software lo antes posible?

1. En primer lugar, es necesario tener una comprensión clara de la función y la arquitectura del software para poder localizar mejor el problema.

2. Intente usar diferentes funciones del software para ver si hay alguna situación anormal.

3. Intente usar diferentes datos de entrada para ver si el software puede manejarlos correctamente.

4. Intente usar la función de prueba automática del software para ver si hay alguna situación anormal.

5. Intente utilizar la función de depuración del software para comprobar el proceso de ejecución del software y los posibles errores.

6. Intente utilizar la función de registro del software para comprobar posibles mensajes de error.

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

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

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

#可以使用dict.keys()方法获取字典中的所有键的列表:
dict = {'Name': 'Zara', 'Age': 7, 'Class': 'First'}
keys = dict.keys()
print(keys)
# 输出结果:dict_keys(['Name', 'Age', 'Class'])

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

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

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

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

for i in range(1, 10):
    for j in range(1, i+1):
        print('{}x{}={}\t'.format(i, j, i*j), end='')
    print()

# 输出结果:
1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81

待续。。。

Supongo que te gusta

Origin blog.csdn.net/github_35856054/article/details/129283653
Recomendado
Clasificación