A total of 15 interviews hit the wall in March and April. As a 27-year-old test engineer...

3 years of test experience is nothing, just a touch on your resume. I always feel that I have a lot of experience and can find a satisfactory job no matter where I am, but the reality is that I slapped me in the face! The kind that doesn't give sugar afterwards...

Let me talk about my personal situation first. I usually graduated with a second major in computer science. I know python, can write scripts, know selenium, and know performance. However, I haven’t received an offer since I left the job! I have been unemployed for a long time. I have been preparing my resume since the first day I left the job, and started to put it in. At first, I just applied for some positions on the official website. I didn’t receive an interview invitation, and all the feedback I got didn’t match. It’s not good. Later, when I submitted a large number of resumes, I did receive more than a dozen interview invitations, but I hit a wall every time. I doubted myself again and again. Is it true that I can’t find a job when I’m old?

30 years old is a very embarrassing age, most companies will be more hesitant to programmers over 30 years old. If you hit a wall in the interview and feel frustrated, it will be even more sad if you are interviewing a company that you really want to work for. And the inner panic may be frustrated many times, starting to fall into self-doubt, not sure what to do in the future, feeling very confused!

A recent Byte interview

On the byte side:

  • What is the process of testing work? What are the defect states? How many ways are there to design test cases?
  • Tell me how to design use cases for boundary values?
  • What is black box testing and how to test it?
  • What is the classic BUG found in the project
  • Contents of the test plan:
  • What does the test report contain?
  • Test conclusion Test start and end conditions?
  • If a BUG is found, it has nothing to do with the development itself, but involves concepts and requirements, how to solve it
  • In the very urgent process of testing, if you encounter blocking problems, the corresponding development has no time to solve them. How do you promote the problem solving? 10. How do you divide the BUG level of functional testing?
  • Execute someone else's use case, what to do if you find that the use case is wrong?

Byte Two Sides

  • Difference between black box testing and white box testing.
  • Have you done the smoke side? What is the smoke test (theory)?
  • How long have you been working on the project, and how many use cases have you written? How many people are involved in the project?
  • Do you also test the background management of P2P? Where is the information obtained for personal Sesame Credit points?
  • If you want to test the deletion of users in the background, that is, there is a delete button behind the user name, what test cases can you write? 6. If Jingdong has a shopping webpage for you, how do you test it? What are the main functions to test?
  • For the test point of adding a shopping cart, tell me how you want to test "adding a shopping cart"
  • How many rounds of P2P function testing do you usually do?
  • Database lookup two tables
  • Are you familiar with databases? Do you use databases a lot?
  • What command does linux use to view files and what command to use to view processes
  • What commands are commonly used to view logs, and what are the main contents to be viewed
  • How to find the error string of a.log log file
  • Linux commands you are familiar with
  • Is the test environment for your test provided? How does Linux build a test environment?

Byte three sides

  • The packet capture tool uses:
  • Talk about the difference between B/S and C/S architecture
  • Given you - a module test, how can you complete it efficiently in only one week?
  • If you are given an app test project with no requirements, how should you test it?
  • The language used in our company's automated testing is Java. If you don't know Java, what should you do?
  • Do you do all of them when you do regression testing?
  • What tools to use for requirements and case management
  • How to test a drinking glass?
  • How to test a landing page
  • How to test a registration page
  • How to test a chat box, only Chinese characters can be entered, and the number is limited to 100.
  • Functional use case, test the input box of qq-app, the upper limit of characters is 100, how to test.
  • How are your cases evaluated?
  • Oracle commonly used add, delete, check and modify instructions
  • What is a view?

HR face

  • What should I do if I have worked very hard but still haven’t completed the tasks assigned by my superiors? 2. What is your career plan?
  • What do you do when you are not working on weekends?
  • What have you learned from your previous company?
  • Why leave your job from your previous salary
  • where do you live
  • How much is your salary when you leave?
  • There are several offers

In the first few interviews, I felt that I answered well, but when it came to the HR interview, I felt that it was especially aimed at me, and I kept asking me, and I also felt very depressed, and the ending was predictably cold....

Thoughts from dozens of interviews

1. Self-introduction

Don’t repeat the information in your resume. Simply introduce the company’s experience from near to far, then introduce the project, highlight the technical points used in the project, your responsibilities, your performance, and guide the interviewer to ask questions about your proficiency skills.

2. Don’t dig yourself a hole

Don't pull out some unfamiliar skills in the interview, the interviewer will follow you after hearing it.

3. Reduce the embarrassment of silence

After understanding the question, think quickly, and answer in a different way if you don't think of it, or answer an answer similar to skill points.

Otherwise, if you don't think about it all the time, and keep silent for a long time, it will not only cause an awkward atmosphere, but also increase your tension, and your brain will be even more difficult to use later.

4. Analyze the thoughts that the interviewer wants to express in the words of the interviewer

Often "Hmmm, yes." - Identification Security

There is a brief silence, without comment on your answer. - no more

5. The importance of automated testing

No matter what level of test engineer you are interviewing, the interviewer will ask " Can you program? Do you have experience in automated testing ?"

One can imagine the pressure faced by those students who have been in the industry for several years but are still doing functional testing. After all, the software testing industry is still a technical position. Since it is a technical position, it must rely on technology to speak. Keep mastering new skills. As a person who has experienced it, I would like to give some advice to all testers: a tester, you really shouldn’t be just a little bit. With the change of the system, for the current testers, it is not automation or code. How important it is, but understanding automation, understanding code, and being able to understand the implementation of the system have become essential skills.

So how to learn automated testing?

Since automated testing is the only way to improve manual testing, although automated testing is not so high, it is also essential. So as an ideal tester, how should you learn automated testing?

(1) Position yourself accurately and define your goals

Many students realized the importance of automated testing, so they searched for information on the Internet, or enrolled in training courses, but in the end, the more they learned, the more confused they became, between knowing and not knowing how to go forward? What is the reason?

This is because you didn't think about a few questions before learning automated testing: What is my real level? If learning a new technology or language, how much energy am I willing to invest? From now on, what goal should be achieved in three months or half a year? Do I understand the current automated testing types or systems in the industry? If you think about these problems before you start learning or training, you will get twice the result with half the effort.

(2) Fully understand and choose the entry point

At present, the directions of automated testing are roughly as follows:

  • Auxiliary test script direction: use Shell and Python to simplify repetitive work, filter logs, etc.;
  • Interface automation testing direction: Python+Unittest+HtmlTestRuner+Jenkins and Java+Httpclient+TestNG+Jenkins, of course there are many other secondary development frameworks or tools, but the core is the same;
  • The direction of page automation mainly includes Python+Webdrver+HtmlTestRunner+Jenkins, Java+Webdriver+TestNG+Jenkins, and other frameworks and tools;
  • App automated testing direction: Robotium+Java+TestNG+Jenkins,  
  • Appium+Java+TestNG+Jenkins, Appium+Python+HtmlTestRunner are the main ones.

Of course, what is introduced here is simple and the most basic implementation plan, which is more suitable as an introductory study. Other various secondary development frameworks and solutions with many functions are left for you to improve in the future. Start by understanding these aspects and choose a language system. It is recommended to start with interface automation, and then learn pages and apps.

(3) Step by step, don't be greedy

When we improve ourselves, we find that there are many things to learn, so we are very anxious and want to learn many things at the same time, which is actually not good. Learning too much is easy to cause confusion, and it is not easy to digest. If you investigate carefully, you will find that many things are connected. Code architecture, use case management, execution strategy, and continuous integration ideas can all be learned from one another. The key is to actually implement it yourself. Write use cases on the company's current framework. No matter how much you write, it is useless if you don't understand the overall structure.

(4) Abandon tools and use open source

There seems to be no shortage of automated testing tools in the industry, such as QTP, RealobotFramework, LoadRunner, etc. There are countless well-known and unknown ones. Let’s not talk about how effective these tools are. At present, large companies never use these tools. Everyone uses open source frameworks and tools to customize their own testing solutions.

So when you just learn automated testing, don't rely on tools, use open source Webdriver, Appium, Robotium, etc. to build your own automated testing projects. Master an overall automation engineering working principle, and prepare for building your own automation engineering, tools, and platforms in the future.

Whether you love or hate automated testing, it is a necessary stage from manual testing to test development. You may have learned that automated testing is useless, that implementation costs are high, and that execution efficiency is low. In fact, this is not a problem with automated testing.

As someone who has experienced it, I have a deep understanding of the difficulties in the learning process.

If you are also developing in the direction of automated test development, at the right age, choose the right position, and give full play to your advantages!

As an automated software test engineer, how hard should I work to quickly become an excellent test development leader? This is not only a software test engineer who has just stepped into the workplace, but also an engineer who starts to get confused after working for three to five years. problems to face and understand.

1. Test basis

Understand the basic skills of testing, master the use of mainstream defect management tools, and be proficient in the operation and maintenance of test environments

Programmer Wei Zi test basis
Test Plan/Test Case Black-box use case design equivalence class/boundary value/scenario analysis/decision table/causal diagram analysis/error inference
defect Defect lifecycle/defect grading/defect management tool ZenTao/Jira
database Mysql/environment construction/addition, deletion, modification and query/associated query/stored procedure
Linux System construction/basic instructions/log analysis/environment construction

2. Necessary knowledge of Linux
As the most popular software environment system, Linux must be mastered. The current recruitment requirements require Linux capabilities.

Programmer Wei Zi Essential knowledge of Linux
Introduction and preparation of Linux system As the most popular software environment system, Linux must be known, starting from the introduction of the CenterOS version system, installation, directory structure and other basic content, and also preparing for the subsequent self-built test environment.
Linux remote tool Xshell Introduce in detail how to get started with Linux, and perform regular remote management and file transfer operations, including the tools Xshell and Xftp involved
Linux file attributes and management Linux files, basic attributes of directories, file operations, file management, directory operations, directory management. Avoid self-destructive behavior operation, how to prevent accidental operation
Linux user and group management How to add, delete, modify users and groups in Linux, and grant corresponding permissions, no longer stuck due to permission issues
Linux file editor The use of Linux file editor vi, command mode, input mode, operation examples, shortcut keys, pipeline commands, experience in use. How to edit in a system without graphics?
Linux common system settings Network settings, environment variables, disk management, time settings, system resources, firewalls, everything, don't worry about being clueless.
Linux installation software Linux installation commands, and how to install through tar, gz and other installation files downloaded from the Internet, such as MySQL database installation.
Linux Docker container Docker container technology explanation, image mirror management, warehouse, container creation, startup, operation, mirror packaging, catch up with the industry's popular technology

3. Shell script
Mastering Shell script: including Shell foundation and application, Shell logic control, Shell logic function

Programmer Wei Zi Shell
Linux Shell Basics and Applications Introduction to shell script programming, environment types, variables, parameters, operators, use of arrays, zero-distance contact scripts
Linux Shell logic control Shell logic application, test command, process control, data input and output, script logic is no longer monotonous, play tricks
Linux Shell Functions How to write shell script functions, call files to each other, apply scripts in actual combat, understand what can be done in development, testing, and operation and maintenance
Windows script batch Enough with Linux, let’s take a look at the usage of Windows regular commands, batch script writing, and practical applications. It’s not all Linux everywhere. Windows scripts are also one of the commonly used scripts. You may use Windows when you see this

4.

The only way for automation of Internet program principles: basic knowledge of front-end development and necessary knowledge of Internet networks 4. Internet program principles

Programmer Wei Zi Principles of Internet Programming
Basics of Web front-end development HTML, CSS basic content learning. Why is the test class developed? Sorry, if not, automation may not be welcome, a lot of automated testing issues come from the development base
Web front-end development script JavaScript is the most mainstream scripting learning. Similarly, this will also be involved in automated testing. In fact, dynamic scripts are often used in some tools, which is also the JavaScript language.
Debugging tools for developers to test applications Although the browser's F12 is named as a developer tool, in fact, testing plays a key role in both functional testing and automated testing. Such as parsing HTML, locating elements, debugging scripts, monitoring network capture, etc.
Internet program network architecture Understand in detail the birth of Internet programs, logical details, how Internet communication principles transfer data to other computers, and the relationship between TCP, UCP, HTTP, and other protocols through the network architecture.
HTTP protocol data structure analysis Complete analysis of HTTP protocol data structure, including Request, Response data format, header definition and usage, what various states represent, and how to identify errors. Analyze the position of parameters in the protocol, rest structure, various common body data forms, parsing methods, and causes of common data parsing errors.
Cookie and Session mechanism Interpret what Cookie is, what kind of relationship it has with Session, how to test Cookie and Session, and what to pay attention to

5. MySQL database

software test engineers must have MySQL database knowledge, not just the basic "addition, deletion, modification and query".

Programmer Wei Zi MySQL database
MySQL database test application MySQL environment setup, basic use and data manipulation of client Navicat, learning and consolidating basic SQL syntax, adding, deleting, modifying and checking are indispensable, and mastering the usage methods of various conditions
MySQL advanced query Query upgrade, master multi-table query, sub query, query grouping, use of statistical functions, and learn and analyze classic interview questions
MySQL custom function Since there are built-in functions, of course there is no shortage of custom functions, and they are often used. This is like any development language, which cannot be separated from the definition and use of functions.
MySQL stored procedure SP How to define the essential stored procedure of the database, usually also called SP? How to test? How to use it more safely, and test what else can be done with stored procedures. More convenient content for testing
MySQL Transactions and Programming Use cases of database transactions, the principle and use of indexes, the application of database SQL programming in testing, how to use it to quickly and accurately generate a large amount of specified test data

6. Packet capture tool
Fiddler, Wireshark, Sniffer, Tcpdump Various packet capture tools are suitable for various projects, there is always one that suits you

Programmer Wei Zi Capture tool
The principle and method of packet capture Only by understanding the principle of packet capture can we really use a suitable tool and choose the appropriate direction and method, otherwise it will be futile
Packet capture tool selection Classification and efficacy of packet capture tools, what kind of project is suitable for which tool, how to identify the advantages of tools
Fiddler basic functions 作为专业的HTTP体系的抓包工具,详细介绍其工具原理,如何过滤数据,如何搜索想要的数据,如何对web,非web,手机,HTTPS协议等各种环境进行抓包
Fiddler高级功能 学会使用其进行接口测试,断电,脚本等方式进行数据的修改,替换,模拟数据进行接口Mock测试,创建自己定义的菜单功能
Wireshark 与其说是抓包,更是一种抓包后的分析工具,在各个系统下利用其它与系统一体化的抓包工具进行数据抓取整理并展示,有着强大的过滤和分析功能
Sniffer 黑科技抓包工具,有多种版本,非常专业的抓包工具
Tcpdump Linux、Android系列的系统中的抓包插件神器

七、接口测试工具

接口测试神器,你绕不开的强大工具:Jmeter。小巧灵活:Postman

程序员威子 接口测试工具
Jmeter接口测试入门 Jmeter简介,环境准备,目录结构介绍 ,如何录制脚本,以及基础组件的使用,线程、作用域、HTTP请求、定时器、断言等等
Jmeter接口测试进阶使用 Jmeter逻辑控制、前置处理器、后置处理器、监视器、结果树,如何参数化、正则表达式关联、事务、检查点等等。并带领大家对带有token等动态数据的项目进行实战演练
Jmeter接口测试高级功能 Jmeter脚本思考时间、随机时间、线程启动间隔、并发集合点、联机远程调用,webservice、websocket、jdbc、命令调用等等
Postman接口测试工具使用 行业标准HTTP、rest接口测试神器,基本请求、分组保存、动态变量、脚本、数据关联、参数化、自动断言、批量运行、持续集成。思路类似其他接口工具,避免泛滥学习

八、Web自动化测试Java&Python
了解自动化的目的,熟练掌握TestNG&unittest自动化框架,以及断言与日志处理

程序员威子 Web自动化测试Java&Python
自动化框架思路引导 我们做自动化到底为了什么?节省人力、加快速度、还是让机器代替手动、还是提升自我。应该如何建立思路,而非无脑进坑任机器摆布
Java&Python3开发环境及基本语法 Java&Python开发环境搭建,基础语法入门,让不会代码的以最快速度入门,方便适应后续自动化测试开发内容学习,代码够用即可,并不是学得越多越好
Java&Python3集合类型与面向对象开发 Java&Python各种基本类型、集合数据类型的理解与操作,循环语句、判断语句,面向对象的开发,函数的使用,类的使用
Selenium3环境与浏览器驱动配置 基于selenium3的web自动化环境搭建,正确的浏览器配置,不再为起不了浏览器而烦恼。支持IE、Firefox、Chrome等等
Selenium3多种定位及动态操作 selenium3常见定位方法,属性和值的获取,如何动态判断不一定存在的元素,复杂的网页结构,需要多步骤操作的元素等等
特殊情况处理(js、特殊控件等) selenium3自动化测试中,常见的特殊情况处理,如日期、控件、智能等待、文件上传下载、网页嵌套结构,各种弹窗的处理方式,cookie处理,JavaScript脚本调用等
TestNG&unittest自动化框架使用 Python unittest、Java TestNG自动化框架的使用,环境处理、基本使用逻辑,数据驱动模型,数据库数据载入等
自动化框架断言与日志处理 自动化中最重要的是什么?作为测试当然是断言,没有断言的自动化毫无用处,如何展示日志与结果是自动化测试的根本
PageObject框架设计模式 PageObject框架设计模式,到底是做什么的?如何更好的快速管理控件,从此做起

九、接口与移动端自动化
专业接口调用、测试解决方案。组建完整的web和接口自动化框架,Appium整体使用

程序员威子 接口与移动端自动化
接口自动化方案Requests Python Requests、Java HTTPclient接口框架,都是专业的接口调用、测试的解决方案,使用简单快速,结合工具的使用方式和功能,快速上手并对其操作,解决其中的疑难杂症
web+自动化框架整合 自动化测试是相通的,如何将web与接口、甚至更多的测试类型和方向结合起来,组成完整的自动化框架
Appium环境搭建 Appium环境相对复杂,针对Android系统进行完整的环境搭建演练,解决环境上的问题,并进行基本的自动化操作
Appium自动化实战与框架结合 Appium整体使用与web自动化类似,引导使用典型功能,并针对一款APP进行实战操作



十、敏捷测试&TestOps构建
揭开TestOps的神秘面纱,持续集成Jenkins框架烂熟于心

程序员威子 敏捷测试&TestOps构建
构建敏捷测试运维架构体系 敏捷测试是什么?为什么需要敏捷,行业都提到的devops又是什么?TestOps能做什么
持续集成Jenkins框架实战 持续集成最常见的一套框架,介绍Jenkins操作、权限、系统管理等,常用构建与运行实例讲解
静态扫描测试Sonar 一款自动化的代码扫描工具,便捷式快速扫描代码中的问题,做到提前发现,统一规范,自动化中的代码测试神器

十一、性能测试&安全测试
软件测试的彼岸:性能测试和安全测试,选个方向努力爬坑吧!

程序员威子 性能测试&安全测试
性能测试学习路线 如何学习性能测试,性能测试到底该怎么学习,使用什么工具?工具并不代表性能,接口的基础对性能测试非常重要,而工具只是辅助,更多的是思路和策略。你不会并不是分析而是准备阶段
loadrunner脱离浏览器录制专题 IE无法启动被测网站?打不开浏览器?程序无法在浏览器中被打开?这些都没关系,还是一样能录制,但录制是偷懒专用的,对于学习有一定的辅助作用,也会带入无法脱离的坑
性能测试工具操作实践 loadrunner、jmeter,有了前面的基础使用,看懂脚本不是问题,带上关键的参数化、动态数据关联、事物、日志,大部分的脚本都可以搞定进行实践
系统监控方案实施 工具自带监控?系统监控?JVM内部监控?数据库监控?各种监控的意义何在,如何在各种情况下精准监控数据
安全测试起源与工具介绍 应该如何进行安全测试,安全测试都有哪些分类?都会用到什么样的工具,各自的作用又是什么,如web漏洞扫描,端口扫描,系统扫描等
web安全测试手工实战 接口测试在安全中的作用,不会手动的安全测试,那就永远无法理解自动化以后产出的结果
安全扫描工具测试实践 实际介绍以及使用APPscan、awvs等专业安全扫描工具
企业安全建设(SDLC) 企业应该如何进行安全建设,制定更安全的软件生命周期。从哪些方面进行着手

上面就是我为大家整理出来的一份软件测试工程师发展方向知识架构体系图。希望大家能照着这个体系在3-4年内完成这样一个体系的构建。可以说,这个过程会让你痛不欲生,但只要你熬过去了。以后的生活就轻松很多。正所谓万事开头难,只要迈出了第一步,你就已经成功了一半,等到完成之后再回顾这一段路程的时候,你肯定会感慨良多。

梦想应当付出汗水和努力去实现,而并非终日无所事事就能达成,那样梦想只能永远是梦想,这辈子于你都是遥不可及的。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取  

Guess you like

Origin blog.csdn.net/okcross0/article/details/130329280