• 0
  • 1
分享
  • 从裁员风波到面试巅峰,30道技术难题全记录——软件测试圈
  • 曼倩诙谐 2024-05-29 11:08:19 字数 4149 阅读 613 收藏 1

  前言

  年前公司大量裁员,很荣幸拿到了过年大礼包,休息了一个月,年前年后找了一段时间,经历过,手撕代码,上机编写代码,各种各样的笔试题,这里给大家总结一些面试过程的面试题。面试过管理岗位和技术岗位,就只介绍一些技术岗位的面试题吧,过程中编写一些个人理解的结果,大佬勿喷

  1、python装饰器是什么?有什么作用?简单举一个例子?

  答:python装饰器就是在不改变原函数的情况下项函数增加新的功能,主要对目标函数进行装饰,增加函数的功能。比如日志记录,在某个函数中,增加一些日志记录,方便我们后续调试或者完成一些日志记录。

  2、pytest的装饰器有哪些?你用到过那些?

  pytest.mark.skip  跳过某个用例

  pytest.mark.xfail  预计失败的用例

  pytest.mark.parametrize 参数化

  pytest.fixture  装饰器

  3、自动化过程的测试数据如何存放的?

  答:通过yaml文件、excel表格进行存放,编写一个读取对应文件的函数,然后需要的时候调取函数进行读取。

  4、python中的魔法函数是什么?举例子说明?

  答:python中的魔法函数主要根据一些特殊命名约定的内置方法,以双下划线开头和结尾,函数在特点的上下文会被python进行自动调用。

  __init__() 构造函数,在创建类的新实例时调用
  __str__() 返回一个代码对象的字符串
  __len__() 返回对象的长度

  5、python切割有哪几种方法?

  答:直接通过字符串切割,类似[6:],内置函数split()进行切割

  6、python中多进程和多线程?

  答:多进程:Multiprocessing,通过for循环的形式进行创建进程

  多线程:Threading,通过for循环的形式进行创建线程

  7、conftest.py文件是做什么用的?

  答:confitest.py属于pytest测试框架中的一个配置文件,主要作用于定于fixture,直接可以进行调用,无需重新导入,放在特点的目录下。

  8、token是什么,一般存放在哪里?

  答:token属于一个经过加密的安全凭证,一般存放在浏览器的请求头部中,也有部分会存放在用户浏览器的本地缓存中。

  9、cookies和session的区别是什么?

  答:cookies和session都是会话技术,其中cookies是保存在客户端,session是存储在服务器端。

  10、DDT是什么?

  答:unittest中的数据驱动测试工具包,多数用于参数化中使用。

  11、自动化测试都是用于什么场景中?

  答:目前自动化测试都是使用在回归测试中和持续集成中,通过研发上传代码后会自动打包对应的软件,然后自动调取自动化测试用例,然后进行执行自动化测试用例。

  12、隐式等待和显示等待区别?如何使用?

  答:隐式等待和显示等待主要用于UI自动化中,隐式等待适用于页面加载相对慢且不确定哪些元素加载时间较长的情况,它可以减少因元素未加载而导致的错误。

  显示等待可以设置检测元素的时间,比如0.5S检测一次,检测到后,立即执行下面的操作。

  13、Docker是什么?公司内使用什么场景?

  答:Docker是一个开源的应用容器引擎,提供了一种标准化的方式将应用程序及其依赖环境打包成一个可移植的容器。这意味着开发者可以构建一个包含应用程序代码、运行时、库以及其他必要组件的容器镜像,确保应用能够在任何安装了Docker环境的地方,以一致的方式进行运行。

  公司目前使用主要保证了研发和测试同事之间的环境统一,保证环境统一,不会出现环境不同引发的问题。

  14、常用的容器的命令?

  docker run 启动容器
  docker ps  查看运行的容器
  docker stop  停止容器
  docker rm  删除一个容器

  15、常用的镜像命令?

  docker pull  拉取镜像
  docker save 保存镜像
  docker rmi 删除镜像
  docker images 查看本地镜像

  16、git的常用命令?

  git commit 提交更新文件
  git branch  显示本地分支
  git checkout 切换分支
  git pull 下载代码
  git push  上传代码
  git merge 合并分支
  git reset --hard HEAD 版本回退

  17、有没有使用过pytest的钩子函数?

  答:简单使用过钩子函数,主要用来获取测试结果,添加到测试报告中,简单的使用过,具体开发完成某些功能,这些目前工作中没有遇到过。

  18、常用的自动化框架有哪些?

  答:接口自动化:python+requests+pytest+alluer

  WEB自动化:python+selenium+pytest+allure

  app自动化:python+allure+pytest+allure

  19、接口自动化中如何保持登录状态?

  答:通过session函数进行保持,可以在session的状态进行保持登录的状态,进行完成其他操作

  20、自动化测试框架通过什么模型进行搭建的?

  答:通过PO模型进行搭建的,PO模型主要分为了几部分,其中将测试数据放在一次,公用的测试方法放在一起,测试用例放在一起,封装一些常用的方法放在一起。

  21、项目中没有产品经理,没有需求文档,你应该如何编写测试用例?

  答:两种情况,第一种,软件还处于开发阶段且没有需求文档,这时候就需要像研发请教整个项目的内容和本次开发的内容,根据研发所介绍的内容进行编写测试用例;第二种,软件已经开发完成了,这个时候可以根据实体软件进行编写测试用例,边测试边写测试用例。无论是那两种方法,都要将后续用例编写完成后,进行组内或者部门进行评审。

  22、如果入职新公司了,如何快速熟悉产品,从而实现快速上手?

  答:进入公司后,首先根据我们的现有软件进行上手操作熟悉,并在过程中进行结合需求文档进行软件操作。此项熟悉后,进行查看过往提交的bug缺陷内容,结合前面熟悉程度,更加清楚后续测试过程中,哪些地方比较容易出现问题。个人能力觉得可以的话,可以进行查看研发的代码或者在此过程中,研发评审代码的过程中,进行参与其中,可以从底层方面更加了解本次产品需改了哪些内容。

  23、项目中的自动化如何开展的?如何进行的?根据自动化的执行过程是怎么安排的?

  答:当项目稳当后,进行编写自动化测试,编写自动化用例的前提是保证本次迭代过程中的手工测试通过后,然后进行编写测试用例,将测试用例以优先级的形式进行划分,先把主流程的过程进行实现自动化测试。自动化的执行过程就是利用空闲的时间,如果下班后,或者每天早上固定时间进行执行自动化测试用例,并自己将结果通过和钉钉/企业微信进行连接起来,保证每次执行结果都可以通过群聊或者报告方式展示给大家查看。后期可以通过jenkins进行搭建持续集成,通过研发每次提交代码,都可以运行我们的自动化测试代码,并将测试结果以邮件或者群聊方式通知给到项目人员中。

  24、在项目中你通过python除了编写自动化测试?还做过什么?

  答:编写项目中的测试工具,举例说明,比如小编个人写的,通过用例管理平台中,进行拉取本次测试相关的测试用例,然后生成EXCEL或者word文档,执行完成后,直接导出报告。

  再比如完成一些不可重现的bug,举例:比如一个缺陷不好复现,可以通过自动化的形式进行将这个过程完成自动化,并在代码中抓取相关错误内容。从而减少人员手工操作。

  25、项目迭代周期是多久?每个周期测试都做些什么?

  答:这里就是考虑我们的一个项目流程,评审需求,编写用例,评审用例,需求测试,提交缺陷,整理用例,编写报告。

  26、印象深刻的bug?

  答:这个相信每一个面试人员,都会提前准备的,不做太多介绍。如果没有准备,做过这么久测试,随便提出来一个缺陷。

  27、如果保证软件测试环境和研发的环境保证统一的?

  答:这里通过Docker容器技术的方法,通过Docker确保了研发,测试的环境统一性。在这个过程中,自助学习了Docker技术,并将学习的内容运用到工作中,将研发和测试的环境保持了统一性。

  28、每次研发提测延后,导致测试加班,这个时候应该怎么做?

  答:因为研发提测延后,导致加班,这个前面可以接受,进行默默无闻的进行加班,等到下一个迭代时,进行和对应人员沟通,周期延长;测试人员更早的介入测试,比如通过mock测试对后端接口进行测试

  29、你作为组长/测试经理,您应该如何分配任何?

  答:首先对组人人员进行一定了解,明白每个人的相关经验,可以根据对应的经验进行分配对应的任务,然后也会对其进行轮岗机制,所谓轮岗机制就是保证每一位组内人员对项目各个模块都进行熟悉,并且人员不足时,可以根据项目优先级进行分配组员,从而达到不影响项目进度。

  30、工作了这么多年了,你能介绍下每一家公司中,你提升了哪些技术?

  答:第一家,学习了如何测试,熟悉了测试流程,项目流程,缺陷提交,数据库,如何编写测试用例,了解自动化测试用例代码;第二家,学习了python,学习自动化框架,并将自动化技术运用到工作中;第三家,学习了更深层面的技术,比如优化了框架内容,通过脚本提高了测试效率,搭建持续集成,学习docker等操作,这个具体看个人发挥

  总结

  简单的写了一些关于面试过程中的问题,当然还有一些关于linux目录啊,接口相关问题啊,小编这里就不具体的列出来了,经过这么长时间的面试,总结下来就是,测试人员不能只会像以前一样只需要点点点了,基本上每个公司,别管用不用的到自动化测试,前提你要知道和了解,这就是经常听到的一句话,面试造飞机,进去拧螺丝。好了,感谢您的阅读,希望本篇文章可以帮助到您。


作者:测试安静    

来源:http://www.51testing.com/html/19/n-7801019.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1、安装、卸载测试(1)应用程序应能正确安装到设备驱动程序上;(2)能够在安装设备驱动程序上找到应用程序的相应图标;(3)安装路径应能指定;(4)软件安装向导的UI测试;(5)应用是否可以在android不同系统版本上安装(有的系统版本过低,应用不能适配);(6)没有用户的允许,应用程序不能预先设定自动启动;(7)对于需要通过网络验证之类的安装,在断网情况下尝试一下;(8)安装时空间不足的情况下是否会导致系统崩溃;(9)软件安装过程是否可以取消,点击取消后,写入的文件是否如概要设计说明处理;(10)安装过程被中断(比如来电、短信等)后是否能够继续安装或者导致系统卡顿、崩溃;(11)软件安装过程...
            0 0 1304
            分享
          • 软件开发人员通常不会考虑的一种测试形式-人工测试。大多数人都以为,因为程序是为了供机器执行而编写的,那么也该由机器来对程序进行测试。这种想法是有问题的。人工测试方法在暴露错误方面是很有成效的。实际上,大多数的软件项目都应使用到一下的人工测试方法:利用错误列表进行代码检查小组代码走查桌面检查同行评审代码检查:所谓代码检查是以组为单位阅读代码,它是一系列规程和错误检查技术的集合。一个代码检查小组通常由四人组成:协调人:以为称职的程序员该程序的编码人员该程序的设计人员测试专家用于代码检查的错误列表:1、数据引用错误是否有引用的变量未赋值或未初始化下标的值是否在范围之内是否存在非整数下标是否存在虚调用...
            0 0 2508
            分享
          •   想换工作的小伙伴们对于怎么投简历有什么想法?作为一个曾经在外包公司干了一整年的recruiter,作为走遍外包私企外企国企的测试人,作为换了7次工作的测试开发工程师,作为参加了无数面试且面试了无数人的小姐姐,我来跟大家聊点干货。  工作这个东西吧,除了养家糊口,还是需要一定的兴趣和热情的。首先要知道自己想干什么,然后是能干什么,最后才是怎么干。  TIPS:不喜欢的不要投,万一拿到offer那就是头疼的事情;自己用业余时间努力学习仍然干不了的不要投,很有可能过不了试用期,对简历不好。  想写代码的,直接去投开发岗就好,不要因为测试工作好找,先做测试以后转开发。市面上能转岗的公司不多,说可以...
            0 0 1303
            分享
          • 读者提问:什么时候需要写测试日报,为什么要写测试日报,怎么写测试日报 ?阿常回答:什么时候需要写测试日报,为什么要写测试日报:1、刚入职场的测试新人,测试主管根据测试新人的工作表现(含测试日报),对新人做试用期转正考核;2、临近项目关键节点,需要给出测试交付物时,和项目组汇报当下测试进展,是否有遇到阻碍、项目是否有延期风险;3、测试进度受到阻碍,项目存在延期风险,需要及时和项目组反馈当前测试情况。怎么写测试日报:1、整体测试进度有无风险:进度正常无风险、低风险、中风险、高风险。2、列出所存在的风险及对应策略,需要谁提供帮助。3、所测试模块,用例执行 XX %,发现了 XX 个 BUG...
            0 0 2658
            分享
          •   运行测试  1.运行测试(命令行)  执行命令 jmeter.bat -n -t DistributingPOST.jmx  -Jserver.rmi.ssl.keystore.file=rmi_keystore.jks -R192.168.1.14,192.168.1.15 (多个IP用逗号隔开)  2.查看结果  以上命令运行了测试计划DistributingPOST.jmx  在两个节点服务器上,每个服务器模拟了6个用户(共计6*2=12个用户)。下图更清晰地显示了运行时的命令响应。  3.运行测试并生成报告  执行命令:jmeter.bat -n -t Dist...
            3 4 1967
            分享
      • 51testing软件测试圈微信