本文是将自己在面试前找工作的部分笔记重新整理了下,不少内容当时是查阅的知乎、博客园、书籍等。我自己在牛客上也学习了很多面经和经验帖,收获了好几家大厂offer。最近整理出来这些,希望能对找测开岗的朋友们有帮助!
本文内容顺序:测试基础理论、测试岗经常被问到的场景题、智力题、测试岗高频算法题、数据库、
Linux知识点,有需要的可以在公众号【伤心的辣条】获取。
常用自动化测试工具
1、Appium
官网: http://appium.io
AppUI自动化测试
Appium 是一个移动端自动化测试开源工具,支持iOS 和Android 平台,支持Python、Java 等语言,即同一套Java Python 脚本可以同时运行在iOS 和Android平台,Appium 是一个C/S 架构, 核心是一个 Web 服务器,它提供了一套 REST 的接口。当收到客户端的连接后,就会监听到命令,然后在移动设备上执行这些命令,最后将执行结果放在 HTTP 响应中返还给客户端。
License:免费
2、Selenium(★★)
官网:
/download/
WebUI自动化测试
Selenium是一个用于Web应用程序测试的工具,Selenium已经成为Web自动化测试工程师的首选。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7、8、9)、Mozilla Firefox、Mozilla Suite等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。Selenium 是ThoughtWorks专门为Web应用程序编写的一个验收测试工具。其升级版本为Webdriver。
License:免费
3、Postman(★★★)
官网:
接口测试
Postman 提供功能强大的 Web API 和 HTTP 请求的调试,它能够发送任何类型的HTTP 请求 (GET, POST, PUT, DELETE…),并且能附带任何数量的参数和 Headers。不仅如此,它还提供测试数据和环境配置数据的导入导出,付费的 Post Cloud 用户还能够创建自己的 Team Library 用来团队协作式的测试,并能够将自己的测试收藏夹和用例数据分享给团队。
License:免费
4、Jmeter(★★★)
官网:
接口测试,性能测试
JMeter是Apache组织的开放源代码项目,它是功能和性能测试的工具,100%的用java实现;
JMeter可以用于测试静态或者动态资源的性能(文件、Servlets、Perl脚本、java对象、数据库和查询、ftp服务器或者其他的资源)。JMeter用于模拟在服务器、网络或者其他对象上附加高负载以测试他们提供服务的受压能力,或者分析他们提供的服务在不同负载条件下的总性能情况。你可以用JMeter提供的图形化界面分析性能指标或者在高负载情况下测试服务器/脚本/对象的行为。
使用Jmeter做接口测试需要注意一点,小心使用“用户定义变量”,Jmeter组件有优先级的,如果多个线程同时执行的时候,“用户定义变量”组件定义的变量可能会乱套。
License:免费
5、Loadrunner
官网:
/en-us/products/loadrunner-load-testing/overview
性能测试
LoadRunner,是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner能够对整个企业架构进行测试。企业使用LoadRunner能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。 LoadRunner可适用于各种体系架构的自动负载测试,能预测系统行为并评估系统性能。
License:商业
6、Jenkins(★★★★★)
官网: https://jenkins.io
持续集成
自动化构建 编译,部署,任务执行,测试报告,邮件通知等。
License:免费
手机兼容性测试(机型选择)
测试基础理论
软件测试开发流程:
1.需求分析
2.制订测试用例(重要)
3.评审测试用例
4.执行测试
5.提交Bug并推动Bug解决
6.回归测试
7.编写并提交测试报告
软件测试方法(★★★★★)
软件测试方法
白盒测试
黑盒测试
灰盒测试
静态测试
动态测试
CI/CD理解(★★★★★)
持续集成
持续交付
持续部署
接口文档(★★★)
一、什么是接口文档?
二、为什么要写接口文档?
三、接口规范是什么?
单元测试(★★★)
理解:类比电视机组装完后不能点亮,如果检测的话,需要一个一个电器器件去排查。如果从一开始对每个元器件进行测试,就能够极大程度的排除这个问题。
定义:单元测试是指,对软件中的最小可测试单元在与程序其他部分相隔离的情况下进行检查和验证的工作,这里的 最小可 测试单元通常是指 函数或者 类。
如何设计一个好的测试用例:(★★★)
整体完备性
等价类划分的准确性
等价类集合的完备性
三种最常用的测试用例设计方法:
第一,等价类划分法
第二,边界值分析方法
第三,错误推测方法
针对某一个产品写测试用例:(★★★★★)
此类问题几乎每个面试官都会问!基本思路:可以从功能测试,UI测试,稳定性测试,压力测试(边界极限),安全测试,本地化测试等角度去考虑
测试水杯(★)
1、基本功能测试
2、界面测试(UI测试)
3、易用性测试
4、稳定性测试(24*7)
5、安全性测试
6、本地化测试
7、对设计的改进建议
8、 性能测试
从软件测试的维度来看,还应该包含非功能性需求。主要涉及:
安全性测试用例
性能压力测试用例
兼容性测试用例
微信红包测试用例(★★★★★)
微信朋友圈测试用例(★★★★★)
功能测试
界面/易用性测试
中断测试
网络测试
兼容性测试
性能测试
1、服务器性能测试
2、app客户端性能测试
3、app压力稳定性测试
智力题
1000 瓶无色无味的药水,其中有一瓶毒药,10只小白鼠拿过来做实验。喝了无毒的药水第二天没事儿,喝了有毒的药水后第二天会死亡。如何在一天之内(第二天)找出这瓶有毒的药水?(被问过)
现在有9个球,其中有1个球相对轻一点。你手里只有一个天平,称2次,怎样找出那个轻的球?(被问过)
25匹马赛跑,共有5个赛道,最少赛多少次可以找出前三名、前五名?(被问得太多)
64匹马赛跑,8个赛道的问题。
一个瓶子,有三种颜色糖果,问多少次,能确保拿到两个颜色一致的糖果。
70克盐,20克砝码,一个天平,称出5克盐。
两个杯子倒水:一个7升,一个3升,如何在一个杯子倒出5升?(被广州一家公司问过,公司名字我记不太清了,当时说了两种方法)
两根分布不均匀的蜡烛,每根燃烧的时间是一个小时,问怎样算出15分钟的时间?(秋招时上海美团三面有问,一开始没思路,面试官一直在引导)
测开岗高频算法题:
两数之和 标签:哈希表 (★★★)
有效括号 标签:栈 (★★★★)
数组中重复的数字 标签:哈希表 (★★★★★)
字符串转整数,并写测试用例。 标签:数学,有很多非数字类型需要考虑,还有数字越界的情况需要考虑,比较考察测试思维 (★★★★★)
连续子数组的最大和 标签:分治、DP (★★★★)
两个栈实现一个队列 (★★)
最长不含重复字符的子字符串 标签:双指针、滑动窗口 (★★★★★)
数据库:
数据库:三张表food(id,name), materials(id, price), xxx(food_id, materials_id, quality) 给food_id,求成本
数据库:表中有学生,课程,分数,求平均分最高的学生
给定成绩表中的id、name、subject、score、stu_id,计算每个人的总成绩并排名(要求显示字段:姓名,总成绩)
mysql语句统计表中男女生人数
SQL多表联结
数据库:查找平均分>60分的学生姓名 – 采用嵌套查询
left join , right join, inner join的区别
Linux知识点(★★★★)
已根据面试经历,将高频考点用★标注,可以优先看带★的。
题一:(★★★★★)绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示? 切换目录用什么命令?
问题二:(★★★★★)怎么查看当前进程?怎么执行退出?怎么查看当前路径?
问题三:怎么清屏?怎么退出当前命令?怎么执行睡眠?怎么查看当前用户 id?查看指定帮助用什么命令?
问题四:(★★★★★)Ls 命令执行什么功能? 可以带哪些参数,有什么区别?
问题五:建立软链接(快捷方式),以及硬链接的命令。
问题六:(★★★★)目录创建用什么命令?创建文件用什么命令?复制文件用什么命令?
问题八:(★★★★★)查看文件内容有哪些命令可以使用?
问题九:随意写文件命令?怎么向屏幕输出带空格的字符串,比如”hello world”?
问题十:终端是哪个文件夹下的哪个文件?黑洞文件是哪个文件夹下的哪个命令?
问题十一:(★★★★)移动文件用哪个命令?改名用哪个命令?
问题十二:(★★★★)复制文件用哪个命令?如果需要连同文件夹一块复制呢?如果需要有提示功能呢?
问题十三:(★★★★)删除文件用哪个命令?如果需要连目录及目录下文件一块删除呢?删除空文件夹用什么命令?
问题十四:Linux 下命令有哪几种可使用的通配符?分别代表什么含义?
问题十五:(★★★★★)用什么命令对一个文件的内容进行统计?(行号、单词数、字节数)
问题十六:(★★★★★)Grep 命令有什么用? 如何忽略大小写? 如何查找不含该串的行?
问题十七:(★★★★★)Linux 中进程有哪几种状态?在 ps 显示出来的信息中,分别用什么符号表示的?
问题十八:怎么使一个命令在后台运行?
问题十九:(★★★★★)利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进程的信息?
问题二十:哪个命令专门用来查看后台任务?
问题二十一:把后台任务调到前台执行使用什么命令?把停下的后台任务在后台执行起来用什么命令?
问题二十二:(★★★)终止进程用什么命令? 带什么参数?
问题二十三:怎么查看系统支持的所有信号?
问题二十四:搜索文件用什么命令? 格式是怎么样的?
问题二十五:查看当前谁在使用该主机用什么命令? 查找自己所在的终端信息用什么命令?
问题二十六:使用什么命令查看用过的命令列表?
问题二十七:(★★★★★)使用什么命令查看磁盘使用空间? 空闲空间呢?
问题二十八:(★★★★★)使用什么命令查看网络是否连通?
问题二十九:(★★★★★)使用什么命令查看 ip 地址及接口信息?
问题三十:查看各类环境变量用什么命令?
问题三十一:通过什么命令指定命令提示符?
由于内容过多,就没有把内容都显示出来,我把答案和剩下的面试题都整理在一个文档上了,有需要的可以关注小编公众号:「伤心的辣条」获取资料。除了这份高频面试文档,还有一些小编整理的备战金九银十的面试题,有需要的自己去获取。
最后:如果对软件测试、接口测试、自动化测试、技术同行、持续集成、面试经验交流。感兴趣可以进到902061117,群内会有不定期的分享测试资料。
如果文章对你有帮助,麻烦伸出发财小手点个赞,感谢您的支持,你的点赞是我持续更新的动力。
好文推荐
软件测试工程师面试题汇总(内含答案)-看完BATJ面试官对你竖起大拇指!
什么样的人适合从事软件测试工作?
软件测试和软件开发哪个发展更好
那个准点下班的人,比我先升职了…