外包干了1个月,技术明显退步。。。
有一种打工人的羡慕,叫做“大厂”。
真是年少不知大厂香,错把青春插稻秧。
但是,在深圳有一群比大厂员工更庞大的群体,他们顶着大厂的“名”,做着大厂的工作,还可以享受大厂的伙食,却没有大厂的“命”。他们就是大厂的“外包员工”。
什么都做了,和什么都没做其实是一样的,走出“瞎忙活”的安乐窝,才是避开弯路的最佳路径。希望我的经历能帮助到有需要的朋友,同时也给各位准备了一份资源,盘里头是一整套软件测试必备资料。
内容涵盖:包括测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等… 质量非常高,需要的可文末自行领取(免费)!!
外包公司的特点有哪些?
首先,特点就是人员流动性特别大,接着上面例子,因为可能干了三四个月,该项目做完了,这10个人估计都得走,然后这10个人又会被外包公司派去其他的甲方公司面试,面试成功才有工资拿,没面试成功只有底薪2200。
如果一个外包人员面试甲方公司,一直都没有面试通过,那他就是只能一直拿底薪,大约每天70块钱的收入,所以,有些就觉得没劲,干脆辞职。
还有一个就是:你如果要入职外包公司的话,一般要经过两面,一面外包,过了外包的面试,才有第二轮甲方公司的面试,这些外包的人事都会提前通知你,去哪个甲方公司面试,然后第二面你又要去甲方面试,如果这个甲方公司面试通过了,就会给你发offer,让你入职签合同,如果第一个甲方公司面试没通过,那就去第二个甲方公司,依次类推,直到你面试的甲方公司通过才可以入职签合同。
关于签合同和福利待遇
- 薪酬福利
一般而言外包员工的薪酬福利是远低于正式员工的
正式员工:薪资之外还有五险一金和公司福利等;而外包的价格顶多是岗位的正常薪资。
- 职业发展
外包员工很快会遇到瓶颈,因为只有非核心岗位会外包,这类岗位缺乏长期发展的空间。
正式员工,有成绩或者呆的年限够长都回有相应的回报。
- 工作稳定性
外包是灵活用工的一种,意味着公司一旦需要裁员,首先考虑的是外包员工。
正式员工,会相对稳定,裁员,会获得法律的相应补偿。
- 合同签订
外包员工的合同,是和第三方外包公司签订。
正式员工的合同,是直接和公司签订。
- 工作范围
外包公司,一般是一对多,同时服务多家企业。
正式员工,一般是一对一,只服务于所在公司。
- 外包公司可不可以进呢?
一般情况下,我不建议大家选择去外包公司,因为从各个方面综合比较,外包公司都是不利于我们发展的。但是外包公司的存在又是大多数,我们应该怎么办呢?我的建议是,根据自身情况做“符合事实的选择”,如果我们找了很久的工作都没有拿到一份满意的offer,无论是心理还是身体上都承受不住这种煎熬,那么我们可以暂且先在外包公司进行工作,从而积累工作经验,等到时机继续寻找符合自己的满意公司。
但是在外包公司工作一定不要超过两年,要提前去策划自己如何跳出这个环境,从而找到更加有发展潜力的平台进行学习和发展。这些都是需要自己去运营的。在整个过程中,“学习”是主要改变的方式,通过巩固和学习技术与知识,我们可以增加自身的竞争力,毕竟我们还是做的技术行业,还是要用自身的技术能力来说话。
我的外包测试收获
在外包公司也不一定全无收获,我在外包公司这几年也收获不少,感慨良多!
技术方面
- 熟悉了大厂的流程,掌握各种工具
- 掌握了新的技术栈,如mysql都是在外包的这两年学习的
- 代码习惯更好了,
- 编程思想上的提升
- 问题定位速度的提升。
- 工作能力方面
- 更有耐心了,同事之间的交流也是很有礼貌
- 更能抗压了,有时候测试压力挺大的,只能多加班,有时候一个月工作日都在加班,最少每个月有15天的加班
- 更有效率了,简单的东西有时候很快就可以完成
生活方面
体重增加,因为伙食好了,现在早晚餐都包了,另外运动少了,基本没什么运动。
我之所以做了外包,是因为那时候刚来深圳,又没有找到合适的工作,就想先做一年看看,没想到这一做就是两年多,时间真的过的很快,不管是有意义的过还是颓废的过,都一样的快。
自动化测试学习建议
完全按照视频里的操作方法,用视频里的网站,按部就班的写代码,效果不大,并不是说没有必要。因为课程里所使用的网站都是老师“精心挑选”的,主要针对某个模块某个知识点而来的,用来做例子的功能也是最简单,主要目的是让学员明白当前所讲的知识点。
但是在实际应用的过程中肯定会比这复杂。所以建议在按照视频里的例子练习完成后,多拿一些常用的网站或者工作中正在使用的网站多做练习,这样我们往往会获取到一些课程里没有的知识。
一开始不会没关系,就是照着现有脚本抄也要练习,因为只有练习才能熟能生巧。
因为我之前是有代码基础的,所以在第一次学习的过程中将所有代码相关的课程都跳过了,所以导致了知识的断层。第二次学习的过程中,是将课程从头到尾的完整的看了一遍并进行了实际操作,才发现,之前被我跳过的内容隐藏了一些我从前并不知道的知识点。
第一次学习时,学习完脚本录制之后,就停止学习了,并没有继续学习后续的内容。
第二次学习后发现,用录制的方式写脚本是很low的,很有局限性,并不能满足所有的需求,后来用WebDriver和UnitTest才是真正的高级,解决脚本录制不能解决的问题。
我们学习完自动化之后,不要学习完就行了,而要积极的将其应用到我们日常的工作中,如果放着不用,一段时间之后我们学习到的知识都会慢慢遗忘。将其应用到工作中后,不仅能对技术进行不断练习、优化、升级,还能提高工作效率,何乐而不为呢?
这是我自学自动化的历程,走了不少弯路,也没有专人的指导,只能靠自己去摸索,希望我自己犯的错误能让大家引以为戒。
目前自动化测试方向大概有以下几个:
- 辅助测试脚本方向:以Shell,Python为主来简化重复的工作,过滤日志等;
- 接口自动化测试方向:Python+Unittest+HtmlTestRuner+Jenkins和Java+Httpclient+TestNG+Jenkins,当然还有很多其他二次开发的框架或工具,不过核心是一样的;
- 页面自动化方向,主要有Python+Webdrver+HtmlTestRunner+Jenkins,Java+Webdriver+TestNG+Jenkins,以及其他的框架和工具;
- App自动化测试方向:以Robotium+Java+TestNG+Jenkins,
- Appium+Java+TestNG+Jenkins,Appium+Python+HtmlTestRunner为主。
当然这里介绍的都是简单的,最基本的实现方案,作为入门学习比较合适。其他五花八门的二次开发的框架,包含众多功能的方案留待你以后提升。先从这几方面了解入手,选择一个语言体系,建议从接口自动化入后,然后再去学习页面和app。
全网首发-涵盖16个技术栈
- 第一部分,测试理论(测试基础+需求分析+测试模型+测试计划+测试策略+测试案例等等)
- 第二部分,Linux( Linux基础+Linux练习题)
- 第三部分,MySQL(基础知识+查询练习+万年学生表经典面试题汇总+数据库企业真题)
- 第四部分,Web测试
- 第五部分,API测试
- 第六部分,App测试
- 第七部分,管理工具
- 第八部分,Python基础(Python基础+编程题+集合+函数+Python特性等等)
- 第九部分,Selenium相关
- 第十部分,性能测试
- 第十一部分,LordRunner相关
- 第十二部分,计算机网络
- 第十三部分,组成原理
- 第十四部分,数据结构与算法
- 第十五部分,逻辑题
- 第十六部分,人力资源
软件测试基础
- 软件测试的步骤是什么?
- 如何录制测试脚本?
- 应该考虑进行如何测试的测试方法
- 怎样估计测试工作量?
- 测试设计的问题
- 当测试过程发生错误时,有哪几种解决办法?
- 测试执行的问题
- 测试评估的目标
- 如何提高测试?
- C/S模式的优点和缺点
- B/S模式的优点和缺点
- …
Linux
- grep和find的区别? grep 都有哪些用法?
- 查看IP地址?
- 创建和删除一个多级目录?
- 在当前用户家目录中查找haha.txt文件?
- 如何查询出tomcat的进程并杀掉这个进程,写出linux命令?
- 动态查看日志文件?
- 查看系統硬盘空间的命令?
- 查看当前机器listen 的所有端口?
- …
Python编程
- 统计python源代码文件中代码行数,去除注释,空行,进行输出?
- python调用cmd并返回结果?
- 冒泡排序
- 1,2,3,4 这4个数字,能组成多少个互不相同的且无重复的三位数,都是多少?
- 请用 python 打印出 10000 以内的对称数(对称数特点:数字左右对称,如:1,2,11,121,1221 等)
- 给定一个整数 N,和一个 0-9 的数 K,要求返回 0-N 中数字 K 出现的次数
- 判断 101-200 之间有多少个素数,并输出所有的素数
- 一个输入三角形的函数,输入后输出是否能组成三角形,三角形类型,请用等价类- 划分法设计测试用例
- …
MySQL数据库
- 你用的Mysql是哪个引擎,各引擎之间有什么区别?
- 如何对查询命令进行优化?
- 数据库的优化?
- Sql注入是如何产“生的,如何防止?
- NoSQL和关系数据库的区别?
- MySQL与MongoDB本质之间最基本的差别是什么
- Mysql数据库中怎么实现分页?
- Mysql数据库的操作?
- 优化数据库?提高数据库的性能?
- 什么是数据的完整性?
- …
Web测试
- Web测试和app测试区别?
- WEB测试环境搭建和测试方法
- WEB测试教程
- WEB测试要点及基本方法
- Web测试页面总结
- …
接口测试
- 什么是接口
- 如果模块请求http改为了https,测试方案应该如何制定,修改?
- 常用HTTP 协议调试代理I具有什么?详细说明抓取HTTPS协议的设置过程?
- 描述TCP/IP协议的层次结构,以及每一-层中重要协议
- jmeter,一个接口的响应结果如下:
- 接口产生的垃圾数据如何清理
- 依赖第三方的接口如何处理
- 测试的数据你放在哪?
- 什么是数据驱动,如何参数化?
- …
性能测试
- 你认为性能测试的目的是什么?做好性能测试的工作的关键是什么?
- 服务端性能分析都从哪些角度来进行?
- 如何理解压力测试,负裁测试以及性能测试?
- 如何判断是否有内存泄漏及关注的指标?
- 描述软件产“生内存泄露的原因以及检查方式。(可以结合- 种开发语言进行描述)
- 简述什么是值传递,什么是地址传递,两者区别是什么?
- 什么是系统瓶颈?
- …
selenium自动化
- 如何开展自动化测试框架的构建?
- 如何设计自动化测试用例:
- webdriver如何开启和退出一个浏览器?
- 什么是自动化测试框架?
- Selenium是什么,流行的版本有哪些?
- 你如何从命令行启动Selenium RC?
- 在我的机器端口4444不是免费的。我怎样才能使用另一个端口?
- 什么是Selenium Server,它与Selenium Hub有什么不同?
- 你如何从Selenium连接到数据库?
- 你如何验证多个页面上存在的一个对象?
- XPath中使用单斜杠和双斜杠有什么区别?
- 如何编写SeleniumIDE/ RC的用户扩展?
- 如何在页面加载成功后验证元素的存在?
- 你对Selenium Grid有什么了解?它提供了什么功能?
- 如何从你的Java Class启动Selenium服务器?
- Selenium中有哪些验证点?
- 什么是XPath?什么时候应该在Selenium中使用XPath?
…
计算机与网络
- 一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201 …
- 请简述DNS、活动目录、域的概念。
- 10M兆宽带是什么意思?理论下载速度是多少?
- 什么是IP地址?
- OSI七层网络模型的划分?
- TCP和UDP有什么不同?
- HTTP属于哪一层的协议?
- HTTP和HTTPS的区别?
- cookies和session的区别?
- HTTP的get请求和post请求的区别?
- HTTP1.0和HTTP1.1有什么区别
- TCP的连接建立过程,以及断开过程?
- 客户端使用DHCP获取IP的过程?
- 写出某个网段的网络地址和广播地址?
- …
人力资源
- 你的测试职业发展是什么?你自认为做测试的优势在哪里?
- 你找工作时,最重要的考虑因素为何?
- 为什么我们应该录取你?
- 请谈谈你个人的最大特色。
- 一个测试工程师应具备那些素质和技能?
- 还有问一下你是怎样保证软件质量的,也就是说你觉得怎样才能最大限度地保证软件质量?
- 为什么选择测试这行?
- 如果我雇用你,你能给部门带来什么贡献?
- …
最后
这份文档,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!
完整版资料获取方式:
相关文章:

外包干了1个月,技术明显退步。。。
有一种打工人的羡慕,叫做“大厂”。 真是年少不知大厂香,错把青春插稻秧。 但是,在深圳有一群比大厂员工更庞大的群体,他们顶着大厂的“名”,做着大厂的工作,还可以享受大厂的伙食,却没有大厂…...

LeetCode加油站(贪心算法/暴力,分析其时间和空间复杂度)
题目描述 一.原本暴力算法 最初的想法是:先比较gas数组和cost数组的大小,找到可以作为起始点的站点(因为如果你起始点的油还不能到达下一个站点,就不能作为起始点)。当找到过后,再去依次顺序跑一圈,如果剩余的油为负数…...

5.1 软件工程基础知识-软件工程概述
软件工程诞生原因 软件工程基本原理(容易被考到) 软件生存周期 能力成熟度模型 - CMM 能力成熟度模型 - CMMI 真题...
HttpUtil工具
http工具 用到的依赖 <dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.13</version></dependency><dependency><groupId>org.apache.httpcomponent…...
并发编程-锁的分类
锁的分类 可重入锁&不可重入锁 可重入:当一个线程获取某个锁后,再次获取这个锁的时候是可以直接拿到的。不可重入:当一个线程获取某个锁之后,再次获取这个锁的时候拿不到,必须等自己先释放锁再获取。synchronized…...

K8S系列-Kubernetes基本概念及Pod、Deployment、Service的使用
一、Kubernetes 的基本概念和术语 一、资源对象 Kubernetes 的基本概念和术语大多是围绕资源对象 Resource Object 来说的,而资源对象在总体上可分为以下两类: 1、某种资源的对象 例如节点 Node) Pod 服务 (Service) 、存储卷 (Volume)。 2、…...

在VSCode上创建Vue项目详细教程
1.前期环境准备 搭建Vue项目使用的是Vue-cli 脚手架。前期环境需要准备Node.js环境,就像Java开发要依赖JDK环境一样。 1.1 Node.js环境配置 1)具体安装步骤操作即可: npm 安装教程_如何安装npm-CSDN博客文章浏览阅读836次。本文主要在Win…...
Go语言入门之流程控制简述
Go语言入门之流程控制简述 1.if语句 if语句和其他语言一样,只不过go语言的if不需要用括号包裹 if 语句的分支代码块的左大括号与 if 关键字在同一行上,这是 go 代码风格的统一要求 简单实例: func main() {// 猜数字a : 2if a > 0 {if a…...

接口测试框架基于模板自动生成测试用例!
引言 在接口自动化测试中,生成高质量、易维护的测试用例是一个重要挑战。基于模板自动生成测试用例,可以有效减少手工编写测试用例的工作量,提高测试的效率和准确性。 自动生成测试用例的原理 为了实现测试用例数据和测试用例代码的解耦&a…...
C++ STL stable_sort用法
一:功能 对区间内元素进行排序,保证相等元素的顺序(稳定排序) 二:用法 #include <iostream>struct Record {std::string label;int rank; };int main() {std::vector<Record> data {{"q", 1},…...
YOLO v8进行目标检测的遇到的bug小结
OSError: [WinError 1455] 页面文件太小,无法完成操作。 我的python环境是放在C盘的: 在“我的电脑”点击鼠标右键,打开“属性”点击高级系统设置点击“设置”找到“高级”点击“更改”分配“虚拟内存”(这里需要重启电脑才能生…...
FastAPI -- 第二弹(响应模型、状态码、路由APIRouter、后台任务BackgroundTasks)
响应模型 添加响应模型 from typing import Anyfrom fastapi import FastAPI from pydantic import BaseModel, EmailStrapp FastAPI()class UserIn(BaseModel):username: strpassword: stremail: EmailStrfull_name: str | None Noneclass UserOut(BaseModel):username: s…...

案例 | 人大金仓助力山西政务服务核心业务系统实现全栈国产化升级改造
近日,人大金仓支撑山西涉企政策服务平台、政务服务热线联动平台、政务网、办件中心等近30个政务核心系统完成全栈国产化升级改造,推进全省通办、跨省通办、综合业务受理、智能审批、一件事一次办等业务的数字化办结进程,为我国数字政务服务提…...

如何用python写接口
如何用python写接口?具体步骤如下: 1、实例化server 2、装饰器下面的函数变为一个接口 3、启动服务 开发工具和流程: python库:flask 》实例化server:server flask.Flask(__name__) 》server.route(/index,met…...

轻量级可扩展易航网址引导系统源码V2.45
由于现在网站行业的不稳定,导致很地址频繁更换,不仅是网站,联系QQ,加群链接等需要更换时,好不容易发展的客户会因为找不到您新的网站地址而流失,有了引导页以后就可以安心地宣传无需担心客户丢失的问题。 …...

解决ESLint和Prettier冲突的问题
在配置了ESLint的项目中使用Prettier进行格式化可能会出现冲突,不如Prettier配置了使用双引号,ESLint配置了单引号,当然可以一个一个改成一样的配置,但是比较麻烦。我发现可以直接使用ESLint的规则进行格式化。在VSCode配置过程如…...

C判断一个点在三角形上
背景 鼠标操作时,经常要判断是否命中显示控件,特开发此算法快速判断。 原理 三角形三等分点定理是指在任意三角形ABC中,可以找到三个点D、E和F,使得线段AD、BE和CF均等分三角形ABC。 这意味着三个等分点分别位于三个边界上&…...

物业系统自主研发接口测试框架
1、自主研发框架整体设计 1.1、什么是测试框架? 在了解什么是自动化测试框架之前,先了解一下什么叫框架?框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架…...

手机和电脑通过TCP传输
一.工具 手机端:网络调试精灵 电脑端:野火网络调试助手 在开始通信之前,千万要查看一下电脑的防火墙是否关闭,否则可能会无法通信 在开始通信之前,千万要查看一下电脑的防火墙是否关闭,否则可能会无法通信…...
Git 在commit后,撤销commit
1. 撤销已经add,但是没有commit的问题 git reset HEAD 2. 撤销已经commit,但是没有push到远端的文件(仅撤销commit 保留add操作) 撤销上一次的提交 git reset --soft HEAD^windows 系统使用提示 more,需要多加一个…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
Robots.txt 文件
什么是robots.txt? robots.txt 是一个位于网站根目录下的文本文件(如:https://example.com/robots.txt),它用于指导网络爬虫(如搜索引擎的蜘蛛程序)如何抓取该网站的内容。这个文件遵循 Robots…...
Java入门学习详细版(一)
大家好,Java 学习是一个系统学习的过程,核心原则就是“理论 实践 坚持”,并且需循序渐进,不可过于着急,本篇文章推出的这份详细入门学习资料将带大家从零基础开始,逐步掌握 Java 的核心概念和编程技能。 …...
在web-view 加载的本地及远程HTML中调用uniapp的API及网页和vue页面是如何通讯的?
uni-app 中 Web-view 与 Vue 页面的通讯机制详解 一、Web-view 简介 Web-view 是 uni-app 提供的一个重要组件,用于在原生应用中加载 HTML 页面: 支持加载本地 HTML 文件支持加载远程 HTML 页面实现 Web 与原生的双向通讯可用于嵌入第三方网页或 H5 应…...

九天毕昇深度学习平台 | 如何安装库?
pip install 库名 -i https://pypi.tuna.tsinghua.edu.cn/simple --user 举个例子: 报错 ModuleNotFoundError: No module named torch 那么我需要安装 torch pip install torch -i https://pypi.tuna.tsinghua.edu.cn/simple --user pip install 库名&#x…...

技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...