In 2023, is it still suitable to switch to software testing in the current environment?

The current general environment is indeed not as good as in previous years, but layoffs basically exist in major Internet companies, and small and medium-sized enterprises are not involved in these problems, but as the saying goes, "risks and opportunities coexist", although the general environment is somewhat different. Sluggish, but there are still many opportunities. Therefore, there are still many opportunities to learn software testing.

Some self-study partners will take finding a primary testing job as the goal of self-study. But in fact, engineers who can only test manually are not very competitive in the market. Without continuous learning after working, it is easy to be eliminated.

There are two technology stacks in terms of mid-level technology: UI automation and interface performance. And it includes two actual combat projects, there are WeChat applets and financial project actual combat.

I am a self-taught software tester. I am a wild way, without a professional background. Let me share my testing and learning route.

1. Introductory stage of testing

If you are about to change careers, or students who have just graduated want to enter the testing industry, the basic knowledge that must be mastered is:

  • Definition, life cycle, workflow, requirements analysis of software testing;
  • Design, write and review of test cases;
  • The basic knowledge of bugs and the use of Zen Tao;
  • Preparation of test plans and test reports;
  • Use of SVN and Git version control tools.

After getting the theoretical knowledge related to the above content, you need to find a project to test:

  • 1. Publish the project for project approval, and establish a project team for division of labor;
  • 2. Requirements review, learn how to read requirements documents, conduct requirements analysis, and list test points;
  • 3. Organize test points, write test cases, and then conduct use case review;
  • 4. Execute tests, such as: function, interface, front and back, compatibility, database, and submit the found bugs to Zen Tao.
  • 5. Analyze, summarize and write test reports.

After learning this process, even if it is an entry-level software test, it is not enough to find a job. What still needs to be learned: Linux (Linux remote connection/command/database), database, test interface, APP test.

2. Advanced stage

Performance and automated testing are advanced stages related to technology. At this stage, we first need to understand the concept and process of performance testing.

  • Analysis of common problems, popular tools, program design
  • Performance testing tools: the use and actual combat of jmeter tools; jmeter multi-protocol, expansion and customization; distributed pressure testing and task scheduling;
  • Performance monitoring: performance monitoring system and monitoring data collection
  • Performance implementation: Distributed service pressure testing, scenario design, scenario execution; test result correlation analysis, TPS, response time, thread correlation analysis, pressure and resource usage correlation analysis
  • Performance analysis and reporting: jvm debugging and system debugging; performance bottleneck analysis

Between performance and automation, you need to learn a programming language, and Python is generally chosen. Python+Selenium is the golden combination of web automation, and Appium is the first choice for mobile automation. Python needs to learn content:

  • Python basics: Python language features, operating environment, basic grammar, code style, sample programs
  • Data structure: basic data structure: number, string, type judgment, type conversion, slice, - string formatting, numerical operation, positional parameter and keyword parameter; combined data structure: list, tuple, range, dictionary, set , non-hash object, unpacking, memory data structure address, immutable data
  • Program control: sequence structure, loop structure, judgment structure, exception handling, logical operators
  • Functions: Define functions, function parameters, return values, variable scope, anonymous functions, commonly used built-in functions
  • Modules and libraries: modules and packages, import keywords, common standard libraries, common third-party libraries, package management tool pip
  • Object-oriented: the origin and advantages of object-oriented, the connection between object-oriented characteristic classes and objects, and the special methods of objects
  • Logging: baseConfig, file logs, mail logs, custom formats, built-in placeholders, level filtering, level propagation, configuration files
  • Testing framework: unitest, pytest, etc.
  • Concurrent programming: multi-process, multi-thread, coroutine, thread pool, synchronization control, thread communication, distributed, monkey patch, async syntax, generator
  • Network programming: basics of socket programming, TCP server and client, parallel request processing, HTTP server and client

insert image description here 

Performance testing to learn content:

The technical requirements of performance testing are very high, not only a deep understanding of performance testing indicators, test classification, and test design is required. You also need to learn about system business and architecture, so that you can better design performance scenarios.

  • Basic concepts of performance: meaning of performance testing, understanding of common performance indicators, classification of performance testing
  • Performance testing process: performance requirements analysis, performance scenario design, test script writing, test execution resource monitoring, performance tuning, regression testing
  • Use of Jmeter and Loadrunner
  • Performance test report output
     

 insert image description here

The content to be learned in automated interface testing is:

The essence of interface testing is also a kind of functional testing. Through scripts or tools, the simulated client calls the server interface. Because it is tested from the interface layer, problems can be found earlier, thereby improving test efficiency and reducing repair costs.

  • http/httpst protocol learning
  • Common request method learning: GET, POST
  • cookie and session learning
  • Basic concepts of interfaces
  • Understanding of interface documents
  • Interface test case writing
  • Use of interface testing tools: postman, Jmeter, SoapUl

 insert image description here

What to learn in web automation testing is:

Understand the purpose of automation, master TestNG&unittest automation framework, as well as assertion and log processing; students who do testing know that we mainly use Selenium or QTP for web automation, here we need to master Selenium's web automation environment construction, correct Browser configuration.

insert image description here

The learning content of app automation testing includes the following knowledge points:

More and more projects and systems provide services through the mobile terminal, and the software quality of the mobile terminal is becoming more and more important. App automated testing has become an important part of automated testing. With the help of Appium, there are many similarities between App automation testing and Web automation testing, but as a test engineer, you still need to master the tools and features of mobile applications.

  • Appium mobile test environment construction: Appium ServerAppium and Desktop, Android operating environment construction, emulator installation and connection, real device debugging mode, adb, weditor, UiAutomator22, Monkey
  • Appium element positioning: native application element positioning, pure web application element positioning, hybrid application element positioning
  • Appium element interaction: waiting for element loading, basic properties and methods of elements, sliding, dragging, zooming operations, drop-down selection operations, toast message processing, common control analysis, common layout analysis
  • Package test framework: integrate Appium, adb and other tools, pre-defined exception handling, record Appium logs, screenshots, create a multi-purpose test framework
     

 insert image description here

3. Two real software testing real projects

The test only talks about the level and level of technical ability. What can best prove what stage the technical level is in, that is, in the process of working on the project, the quality of the code written and the troubleshooting ability of the well-developed Internet products , How about the ability to find bugs, how about the ability to conceive the overall layout of functional modules, and so on. As a beginner, if you want to reach the entry level, you must have the coding ability of some simple projects. The most important thing for beginners is to cultivate your own testing thinking. Every program is different, and you cannot memorize them all. , It is not by rote memorization, you can only be employed when you can write something independently.

Therefore, the ability to do projects can be used to measure the stage of a learning level, and often those who say "I will" often have not written much code, and a project cannot be done. This is just talking on paper and completely misinterpreting. I don't know what to learn after learning the test, and I don't know where to go.

In the overall process of learning, a beginner must have two projects that can be obtained and written on the resume as the capital for finding a job, and he must have a good understanding of the ins and outs of these two projects before he can finally If the interview is successful, if a beginner cannot reach the level of being able to do simple projects after learning all the content, then his entire learning process will still be in vain. If the ultimate learning goal is not achieved, the learning quality is not good enough. Therefore, I hope everyone is clear about the importance of the project, because there are too many beginners who don't know what the purpose of the final study is, and finally waste time in vain.

A web test practice
 

 

insert image description here
An interface test practice

insert image description here

 

The learning of any skill is based on practice, and the IT industry places special emphasis on project experience. If you don't practice, it's like spending half a day learning the theory of shooting, but you don't have a chance to touch the gun at all. Do you think you can shoot accurately? If you want to learn software testing well and have a deeper understanding of technology, you must do more practical operations. Without the bonus of proficiency, no matter how much you learn, it is only on paper. Once you face real problems, you will have no way to start .

Summarize

If you really consider entering the testing industry, systematically learning the technology of test development is the only way out. Only in this way can we catch up with the ability accumulated by a junior tester for several years

The biggest advantage of signing up for learning is that it is efficient and fast. There are teachers to guide and solve problems at any time.

The biggest problem with self-study is that when you encounter problems and report errors during self-study, you can only solve them by searching and asking everywhere. When encountering a problem or a technical point, search for a few articles on the Internet, and find technical forums to ask and learn about it. Many people do this. Although fragmented learning takes less time, the effect is difficult to guarantee.

First of all, the learning basis for changing careers is 0, and it is impossible to encounter all the problems related to a certain technology in the process of self-study; secondly, in this way, you only know the scattered technical points one by one, but do not know the technical points between these technical points. Relationship. Taking HTTP cache as an example, if you simply search for "HTTP Cache-Control", you can indeed know the meaning of terms such as no-cache and no-store. But you can't learn the technical points of the whole HTTP Cache protocol, browser processing logic and server processing mechanism, and they must be mastered when analyzing HTTP performance-related problems or optimizing Web pages.

There is no one to tutor, guide, solve doubts, and answer questions for self-study. Like groping in the dark. I am not denying that you must not learn by yourself. It's just that this process will pay a huge time cost. But this is the contradiction of people. They don't want to pay too much time cost, but also don't want to pay too much money cost. Then you have to bear the corresponding risk cost. That is to say, self-study for a few months and find that it is completely ineffective, and then enroll in a class for a few months, and finally delay for half a year or even a year.

Then talk about the girls doing the test

Gender issues should be said to be frequently asked. It can be said that among all technical positions on the Internet, the proportion of testers among testers is the largest. close to 50% of the proportion. There was a bug in the code of the R&D team, and after the girls gave feedback, the boys in R&D couldn’t say anything. They just changed it silently, which was good for teamwork. Another is that girls are more careful, and the testing work is generally intermittent and intensive, not as frequent as R&D overtime. Generally, the upper limit of version release and new products will only work overtime if the testing work is completed quickly. Therefore, many students who have been taking tests for many years can take care of family and work.

Entering the IT industry as a technical position still finds ways to improve one's personal competitiveness. Everyone wants more money and less work to be close to home, there are a lot of offers, and jobs can be chosen at will. The premise is that you have this kind of technical capital. The improvement of personal technical ability in the industry is a marathon. There are disadvantages for those who change careers, but there are also many people who change careers. Manual-based functional testing, there are many people who are on the verge of being eliminated and lose their jobs.

Functional testing is currently difficult to find employment because the demand is saturated. If you look at the recruitment of large companies now, they all require testing and writing code. In the training, only test development is to learn code.

It is easy to be excellent once, but it is difficult to do well continuously.

In addition, if you are looking for an organization to enroll in a class, you must find a reliable one. Here I will tell you what you need to pay attention to. There are indeed many things to pay attention to. Because in the current vocational education training market, there are indeed quite a lot of bad institutions and unscrupulous institutions. There is a lot of chaos in the industry.

How to distinguish can be seen from several aspects: professionalism, course services, employment, course technical gold content, project set

If you really want to get into software testing, I suggest that you can refer to the CTI education study that your roommate signed up for at the time. He has changed careers for almost 2 years now, and I advise you not to spend tens of thousands of fees to try and make mistakes, and waste time.

The above are all advice from a screw.

 

Finally, I would like to thank everyone who has read my article carefully. Reciprocity is always necessary. Although it is not a very valuable thing, you can take it away if you need it:

These materials should be the most comprehensive and complete preparation warehouse for [software testing] friends. This warehouse has also accompanied tens of thousands of test engineers through the most difficult journey, and I hope it can help you! Partners can click the small card below to receive  

Guess you like

Origin blog.csdn.net/kk_lzvvkpj/article/details/130169856