首页 > 其他分享 >谈面试关于web

谈面试关于web

时间:2023-04-23 14:34:54浏览次数:37  
标签:web 12 1.0 是否 面试 关于 测试 null


前段时间有新的产品需要招人,安排和参加了好几次面试,以前有写过关于最近电话面试的体会一文,这次谈谈具体的面试问题,在面试他人的同时也面试自己。

面试问题是参与面试同事各自设计的,我也不清楚其他同事的题目,就谈谈自己设计的其中2道题。

过去面试总是会有如何测试Google首页,测试杯子,测试电话之类的,有偷懒的嫌疑,这次来个具体的,第一个题目如何测试下面这个表:


谈面试关于web_用例

 

一、第一个问题设计测试用例

面试里得到的很多回答就是一条条罗列,例如:

1. 界面显示是否正常,各种浏览器、分辨率,文字是否显示正常

2. 这个数据是否和数据库一致

3. promote按钮是否正常使用 

4. 上一页下一页按钮是否正常

5. 列表标题是否支持排序,排序功能是否正常(很奇怪,这个提到的人不多,类似的下拉列表的Autocomplete也很少人提到) 

6. ...... 

 

比较少的听到按照测试类型来设计的,例如界面测试用例、功能测试用例、大数据测试用例等等,

也没有听到按照正常用例和异常用例来罗列。

 

二、如果你来设计这个表,还会做哪些完善

1. 可能有些人注意到,这个结果总共有99523个,提供的翻页只有前进后退,是否加个go to page的功能

2. 貌似我们以前见过列表翻页还有提供第一页和最后一页,那是否也加上

3. 结果很多,是不是加个搜索(其实这个数据是搜索得到的)

4. 这个列表一页只显示10个结果,是否可以多显示些,是否加个每页显示数目

...

问到第二个问题,有些面试人员就迷惑了,经常听到的是"我们都是根据需求测试的",那我问,你们对用户体验关注么,

得到很多回答是"设计好的,我们只是测试下",被动式的测试居多。

 

三、如果你来实现这个表会怎么做

1. 最简单的,拉个控件,之后连接到数据库,搞个dataset/datatable数据绑定读取数据显示

2. 直接连接到数据库如果数据量大时,前台等待过久怎么办,哦,有AJAX,异步获取数据

3. 还有没有更好的,预加载,生成10页的结果放在服务端,这个技术在网购网站首页的促销商品大量使用

这是一个优化的问题,可惜很多测试对于开发的设计实现没有任何的兴趣或是根本不去了解。

了解了下,有很多公司是不能看代码的,能看代码的也没有编辑的权限,把测试定位成开发的服务,但并没有充分利用测试可以帮助开发定位错误,

让开发更快的修复缺陷,更多的是选择让测试熟悉业务。 

 

四、某位测试工程师自己写了个自动化脚本进行翻页,可是翻页到1万多结果的时候,浏览器崩溃了,你来研究下是什么原因

这个问题很多人思索后放弃了,那么我提示说崩溃的时候,浏览器占用了2G的内存,极少有人提到查看日志。

1. 使用自动化的时候,是否可以再写个脚本监控浏览器操作的资源使用情况

2. 内部测试系统是否可以打开debug模式用来记录日志

3. 是否可以查看开发代码,看看开发实现翻页部分的代码

4. 和开发沟通,一起来排查错误 

...

很失望,到这个问题很少得到满意的答复,测试的同学们在广度上有所突破外是否也注重下深度,我自己也逐渐意识到这些问题,刚好作为面试题目。 

 

相似的问题,如何测试下拉列表,有兴趣的同学可以练练手。

 

另一题目是关于文件读写

有一个文件,存放着地理信息,类似下面,想从里面取出IP地址用在其他地方,即如何从一个文件中取出IP地址存入另一个文件。


1.0.0.0|apnic debogon project|null|7|0r||12|0|22581|4|0||


1.0.1.0|chinanet fujian province network|null|591|41||43|0|35075|4|0||


1.0.2.0|chinanet fujian province network|null|591|41||43|0|35075|4|0||


1.0.3.0|chinanet fujian province network|null|591|41||43|0|35075|4|0||


1.0.4.0|level collins street|null|7|0r||12|0|3719|4|0||


1.0.5.0|level collins street|null|7|0r||12|0|3719|4|0||


1.0.6.0|level collins street|null|7|0r||12|0|3719|4|0||


1.0.7.0|level collins street|null|7|0r||12|0|3719|4|0||


1.0.8.0|chinanet guangdong province network|null|20|47||43|0|7392|4|0||


1.0.9.0|chinanet guangdong province network|null|20|47||43|0|7392|4|0||


...

 

这个第一步就很多人放弃了,理由基本上是"以前学校学过某某语言,后面工作就没写过代码", 稍微好点的呢,"可以说下思路么",也行,那说下思路吧。  

少数人会想到使用awk命令直接在teminal运行,也有想到写个小脚本来读取写入。

应该说不管开发测试,很多都是计算机相关专业毕业的,我想在现行教育体制下,大学里至少都学过C语言吧,可是有些测试人选择测试职业后,

直接把Coding的技能抛弃了,注意,是自己抛弃了,虽然在公司工作上不用编码,但是工作后呢,有没有自己写些东西。 

 

好了,假设写了个小脚本,例如理想情况下第一竖线前都是IP地址,写个python脚本如下:


谈面试关于web_测试用例_02


1 #!/usr/bin/python2.4
 2 #
 3  
 4 import re
 5  
 6 geofile=open('geo.csv','r')
 7 lines=geofile.readlines()
 8 for line in lines:
 9     a=line.split('|')
10     ipfile=open('ip.txt','a')
11     print >> ipfile,a[0]
12     geofile.close()
13 ipfile.close()


谈面试关于web_测试用例_02


 

 

接下来请对写的这个命令也好,脚本也好测试。

1. 正常用例

2. 异常用例

这个问题可以从2种角度入手,一种直接把它当作黑盒来测试,不知道里面的实现,提供不同的输入文件查看输出结果;另一种可以采用单元测试。

可惜很多面试人纠结在文件的第一列是不是IP地址,需要判断。

 

脚本写好了,也测试了,如果这个地理信息文件很大呢,具体点,这个是全球地理信息文件,超过2G,你写的这个脚本执行要很久哦。

这又是个优化问题,整个面试只有一位同学说可以采用分割文件的做法,先分割再合并,他也是提到使用awk命令的同学。

可惜没有听到使用多线程多进程的方式。 

 

这次面试感慨颇多,面试的对象基本是工作2、3年的测试工程师,但对测试的认识普遍还是几年前的样子,面试要求也是一再降低,统计下来,9个候选人能选中一个。

虽然外面宣传的测试职业前途非常光明,不过在实际工作中,中小型企业测试人的地位普遍低于开发,除了几个大公司。

测试如果想要提高自己的地位,首先要提高自己的技能,不仅仅是在测试技术上,开发技术和对开发设计的理解也是需要提高的,这样才能获得和开发同等的交谈资格

标签:web,12,1.0,是否,面试,关于,测试,null
From: https://blog.51cto.com/u_16084838/6217595

相关文章

  • 盘点几道Python面试题【ChatGPT作答】
    风吹仙袂飘飖举,犹似霓裳羽衣舞。大家好,我是皮皮。一、前言前几天在Python白银交流群看到了几道Python基础题目,这里拿出来给大家分享下,感兴趣的小伙伴可以学习学习。1、字典、元组、列表、集合的区别是什么?2、什么是装饰器,怎么用?3、为什么要有闭包?4、什么是订阅发布模式,写一个demo5......
  • websocket与C# socket相互通信
    web端代码就是js代码,C#有两种方式:使用第三方库,如Fleck,使用C#原生socket编程实现 web端:<!doctypehtml><htmllang="zh-CN"><head><metacharset="UTF-8"><title>下发网站上文件到学生机</title><scripttype=......
  • Windows10安装Transmission,并使用Web远程访问教程
    安装Transmission从官方路径下载Transmission安装包 https://transmissionbt.com/download/在组件安装界面,需要把Daemon和Webinterface,同步安装上。下载配置transmission-web-control3.访问https://github.com/ronggang/transmission-web-control ,下载最新源码包......
  • 关于GET POST
     2.GET用于获取信息,是无副作用的,是幂等的,且可缓存,而POST用于修改服务器上的数据,有副作用,非幂等,不可缓存。 幂等(idempotence)的概念......
  • 关于 HBuilderX 中内置终端无法输入的问题解决
    01.先安装内置终端插件;02.打开内置终端配置文件: D:\HBuilderX\plugins\builtincef3terminal\script\main.js03.将原来的Shell.exe改成cmd.exe,重启IDE即可; ......
  • 基于django+ansible+webssh运维自动化管理系统
    基于django+ansible+webssh运维自动化管理系统 前言最初开发这个基于Djangoansible运维自动化管理系统的想法其实从大学时候就已经有了,但是苦于技术原因和没有线上环境原因一直没有开发,现在有了这个技术和环境之后开始着手开发了这个项目,项目难点在于你要理解如何设计数据库,......
  • 关于ssh密码忘记的处理
    01.任意文件位置运行 GitBashHere02.切换到ssh目录:  cd~/.ssh03.查看ssh内容:如果之前已经生成过ssh公钥,则存在三个文件04.删除所有SSH 相关内容: rm-rf~/.ssh/*此时再用 ls指令,已经查不到任何内容了05.创建新的ssh:  ssh-keygen-t......
  • 关于sql server数据库本地连接失败的问题的解决
    问题描述打开SQLServer使用时,需要连接到本地数据库;但是一直显示连接本地数据库失败;问题解决右键管理->服务与应用程序->服务->找到这个:右键打开它,再次连接,就能够成功运行啦!......
  • web3 产品介绍: walletconnect 连接Web3 DApps与用户的移动加密钱包
    WalletConnect是一种去中心化的开源协议,旨在连接Web3DApps与用户的移动加密钱包,提供更安全、更便捷的加密货币交易体验。在本文中,我们将介绍WalletConnect的主要特点、工作原理以及如何使用它来连接DApps和移动钱包。一、WalletConnect的特点去中心化:WalletConnect不依赖于任......
  • 面试题01
    //websocket的协议体/***WebSocket协议使用HTTP握手,建立WebSocket连接后,数据传输就由HTTP协议切换为独立的WebSocket协议。*协议体结构如下:*0123*0123456789012345678901234......