timeline 一面后很快2面,测开岗(快跑!!!)总结:一面面试官人很好,二面是个吊毛,答不上来嘲讽你,招个实习生测开岗,python go c++都想问你。态度极差,看手机 + 打字 + 卡时间,一点不尊重人,垃圾公司,面了几十家第一次遇到这种。一面面经(面试官可能不太懂开发相关,我用的后端简历投的,不过有测试技能点和测试工作)(面试官态度很好)1. 自我介绍2. 第一个项目介绍(项目背景、情况、团队、负责的模块)3. 第二个项目介绍4. 第一个项目讲解思路5. Redis的使用,缓存三兄弟在项目里的应用 和 解决思路6. MySQL使用,索引,锁,MVCC机制,事务以及隔离级别说明7. vue的使用 以及组件8. python 可变对象的原理9. python 浅拷贝深拷贝问题10. 算法题:一个字符串,现在要根据出现频率,进行降序排序11. 反问:base上海,部门搞测试,主要工作内容,功能,性能,集成,整合测试,测试相关,包括自动化测试12. 她讲了讲,工作的情况,而且这边产线也有开发,可以过去学习学习二面(面锤子)二面面试官感觉不太懂后端这部分的,主要问测试角度的,怎么看项目。感觉kpi面,不想招人,而且这个男的素质极差,我面了50-60次,都没遇到自己答不上来,面试官嘲讽你的。1. 自我介绍2. 项目-测试角度考虑 (这时候我讲了我的思路,他听不懂技术,就说问测试角度xx模块怎么考虑测试)3. 评论模块(父子评论,递归查询,这里当时设计的时候忘记做@通知了,被diss半天,嘲讽我)5. 中间问 项目部署之后,本地能访问百度,为啥百度访问不了校园网的服务器(我说没公网ip + 地址映射 + nat没设置转发)(比如用内网穿透可以,他说他不想听这个)4. 算法题:反转二叉树,acm模式,我用c++写,问我智能指针,二叉树结构不用指针怎么实现(我说数组)他说我不想听这个。附代码---------code1--------------#include <iostream>#include <string>#include <map>using namespace std;class Solution {public:string tSort(string&amp; s) {map<char, int> mp;for (char &amp;c : s) {mp[c]++;}string ans = &amp;quot;&amp;quot;;for (auto &amp;[k, v]: mp) {while (v--) {ans += k;}}return ans;}};int main() {string str;getline(cin, str);Solution sol;cout << sol.tSort(str) << endl;}---------code2--------------#include <iostream>#include <string>#include <sstream>#include <vector>#include <queue>using namespace std;struct TreeNode {int val;TreeNode* left, *right;TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}};class Solution {public:void swapTree(TreeNode* root) {if (!root)return;TreeNode *tmp = root->left;root->left = root->right;root->right = tmp;swapTree(root->left);swapTree(root->right);}};TreeNode* buildTree(vector<int>&amp; data) {if (data.empty()) {return nullptr;}TreeNode* root = new TreeNode(data[0]);queue<TreeNode*> q;q.push(root);int index = 1;while (!q.empty() &amp;&amp; index < data.size()) {TreeNode *curNode = q.front(); q.pop();if (data[index] != -1) {curNode->left = new TreeNode(data[index]);q.push(curNode->left);}index++;if (index < data.size() &amp;&amp; data[index] != -1) {curNode->right = new TreeNode(data[index]);q.push(curNode->right);}index++;}return root;}int main() {vector<int> data = {1, 2, 3, 4, 5};TreeNode* root = buildTree(data);Solution sol;sol.swapTree(root);queue<TreeNode*> q;q.push(root);vector<vector<int>> ans;while (!q.empty()) {vector<int> cur;int sz = q.size();for (int i = 0; i < sz; ++i) {TreeNode* node = q.front(); q.pop();cur.push_back(node->val);if (node->left) q.push(node->left);if (node->right) q.push(node->right);}ans.emplace_back(cur);}for (int i = 0; i < ans.size(); ++i) {for (int j = 0; j < ans[i].size(); ++j) {cout << ans[i][j] << &amp;quot;,&amp;quot;;}cout << endl;}}