收藏!软件测试面试题

找工作最重要的一步自然是面试。作为一名软件测试工程师,面试当然是职业发展中的重要环节。马上跳槽季,网上出现了各种面试题,一时会让人眼花缭乱,分不清最该看哪个。

虽然不鼓励死记硬背,但了解面试问题是必要的。以下是一些通用的软件测试面试题,无论你应聘哪个行业,这些知识都会为你增添优势。

01 软件测试的目的?

测试是程序的执行过程,目的在于发现错误。

一个成功的测试用例在于发现至今未发现的错误。

一个成功的测试是发现了至今未发现的错误的测试。

确保产品完成了它所承诺或公布的功能,并且用户可以访问到的功能都有明确的书面说明。

确保产品满足性能和效率的要求。

确保产品是健壮的和适应用户环境的。

02 请说下python的内存管理和垃圾回收机制

python的内存管理机制有三种:引用计数、垃圾回收、内存池。

●引用计数:引用计数是一种非常高效的内存管理手段,当一个pyhton对象被引用时其引用计数增加1,当其不再被引用时引用计数减1,当引用计数等于0的时候,对象就被删除了。

●垃圾回收:引用计数、标记清除、分代回收。

●内存池:Python提供了对内存的垃圾收集机制,但是它将不用的内存放到内存池而不是返回给操作系统。

Python中所有小于256个字节的对象都使用pymalloc实现的分配器,而大的对象则使用系统的 malloc。

另外Python对象,如整数,浮点数和List,都有其独立的私有内存池,对象间不共享他们的内存池。

也就是说如果你分配又释放了大量的整数,用于缓存这些整数的内存就不能再分配给浮点数。

03 请简述下python的拷贝

**1.赋值:**只是复制了新对象的引用,不会开辟新的内存空间。

**2.浅拷贝:**创建新对象,其内容是原对象的引用。浅拷贝有三种形式:切片操作,工厂函数,copy模块中的copy函数。如:lst = 1,2,3,\[4,5]切片操作:lst1 = lst: 或者 lst1 = each for each in lst 要注意:list1=lst 和list1=lst:的区别工厂函数:lst1 = list(lst)copy函数:lst1 = copy.copy(lst)浅拷贝之所以称为浅拷贝,是它仅仅只拷贝了一层,在lst中有一个嵌套的list4,5,如果我们修改了它,情况就不一样了。

**3.深拷贝:**只有一种形式,copy模块中的deepcopy函数。和浅拷贝对应,深拷贝拷贝了对象的所有元素,包括多层嵌套的元素。深拷贝出来的对象是一个全新的对象,不再与原来的对象有任何关联。#说明如下:#1.外层添加元素时, 浅拷贝c不会随原列表a变化而变化;内层list添加元素时,浅拷贝c才会变化。#2.无论原列表a如何变化,深拷贝d都保持不变。#3.赋值对象随着原列表一起变化

04 请简述下python的拷贝

明确区分系统中不同用户权限;

系统中会不会出现用户冲突;

系统会不会因用户的权限的改变造成混乱;

用户登陆密码是否是可见、可复制;

是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统);

用户退出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统;

系统网络安全的测试要考虑问题;

测试采取的防护措施是否正确装配好,有关系统的补丁是否打上;

模拟非授权攻击,看防护系统是否坚固;

采用成熟的网络漏洞检查工具检查系统相关漏洞(即用最专业的黑客攻击工具攻击试一下,现在最常用的是 NBSI 系列和 IPhacker IP );

采用各种木马检查工具检查系统木马情况。

05 你在测试中发现了一个bug ,但是开发经理认为这不是一个bug ,你应该怎样解决。

将问题提交到缺陷管理库里面进行备案。

要获取判断的依据和标准: 根据需求说明书、产品说明、设计文档等,确认实际结果是否与计划有不一致的地方,提供缺陷是否确认的直接依据; 如果没有文档依据,可以根据类似软件的一般特性来说明是否存在不一致的地方,来确认是否是缺陷; 根据用户的一般使用习惯,来确认是否是缺陷;

与设计人员、开发人员和客户代表等相关人员探讨,确认是否是缺陷;

合理的论述,向测试经理说明自己的判断的理由,注意客观、严谨,不参杂个人情绪。

等待测试经理做出最终决定,如果仍然存在争议,可以通过公司政策所提供的渠道,向上级反映,并有上级做出决定。

06 你怎么做app测试的?

测试前,先熟悉 app的原型图和业务需求,确定测试点,开发做完接口之后,先做接口 测试,App开发好后,先做一个冒烟测试,看看软件的基本功能是否可用,如果正常, 我们再做功能测试,UI测试,兼容性测试,交叉事件测试,安装卸载测试等。

07 你是如何判定一个测试流程结束了?

从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行 72 小时,目前 BugTracking System 中,本版本中没有一般严重的 BUG,普通 BUG 的数量在 3 以下,BUG 修复率 90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本 Release。如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。

08 单元测试、集成测试、系统测试的侧重点是什么?

单元测试针对的是软件设计的最小单元--程序模块(面向过程中是函数、过程;面向对象中是类。),进行正确性检验的测试工作,在于发现每个程序模块内部可能存在的差错.一般有两个步骤:人工静态检查\动态执行跟踪 集成测试针对的是通过了单元测试的各个模块所集成起来的组件进行检验,其主要内容是各个单元模块之间的接口,以及各个模块集成后所实现的功能. 系统测试针对的是集成好的软件系统,作为整个计算机系统的一个元素,与计算机硬件\外设\某些支持软件\数据和人员等其他系统元素结合在一起,要在实际的运行环境中,对计算机系统进行一系列的集成测试和确认测试。

09 你认为一个测试工程师应具备什么素质?

● 责任心

● 沟通能力

● 团队合作精神

● 耐心、细心、信心

● 时时保持怀疑态度,并且有缺陷预防的意识

● 具备一定的编程经验。

10 面试官:你有什么要问我的吗?

灵魂一问!

面试官:你有什么要问我的吗?

应该如何回答?

我非常希望能够加入公司,所以想请问您觉得我还有哪些地方比较不足,能否给一些建议?以及是否有复试时间呢?

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

视频文档获取方式:

这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

相关推荐
Wang's Blog18 分钟前
Java 项目部署之 Docker工具快速入门: 容器命令练习:创建、改文件、重启到删除的完整闭环
java·开发语言·docker
quantdash_cc21 分钟前
实时行情出现短暂异常时应该怎么处理?从数据校验到故障定位
开发语言·python·数据分析·量化交易·股票数据·quantdash
怕浪猫28 分钟前
AI Agent 的安全怎么保障?面试最后一关的终极问题
算法·面试·github
zjxtxdy33 分钟前
R语言数据统计入门
开发语言·r语言
cleble1 小时前
怎么用用 PowerShell 下载文件
开发语言·php
w2sfot1 小时前
AI时代,JS加密还有效吗?
开发语言·前端·javascript
yujunl1 小时前
U9C WSS项目的学习成果
开发语言
乌暮1 小时前
# Spring 入门与 Spring MVC 实战指南:从零理解 IoC 到 RESTful 图书管理
java·开发语言·后端·学习·spring·mvc·restful
H.莓飛1 小时前
【C++】类与对象(末):static、友元与拷贝优化
linux·开发语言·c++·visual studio
青春逝如流水1 小时前
Java 线程在内存模型(JMM)与 JVM 实现:规范与落地的多元路径
java·开发语言·jvm·多线程·ai文章