OscarXie.net

关注质量与体验——电子商务与自动化测试

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  436 随笔 :: 0 文章 :: 221 评论 :: 69万 阅读
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

谈面试上  

另一题目是关于文件读写

有一个文件,存放着地理信息,类似下面,想从里面取出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脚本如下:

 

复制代码
#!/usr/bin/python2.4
#
 
import re
 
geofile=open('geo.csv','r')
lines=geofile.readlines()
for line in lines:
    a=line.split('|')
    ipfile=open('ip.txt','a')
    print >> ipfile,a[0]
    geofile.close()
ipfile.close()
复制代码

 

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

1. 正常用例

2. 异常用例

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

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

 

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

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

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

 

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

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

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


posted on   oscarxie  阅读(1476)  评论(1编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示