From Huawei's outsourcing monthly salary of 5K to the regular employee's monthly salary of 15K, who can understand the sadness of these 168 days...

I graduated from a non-computer major in an ordinary second-year college, and I took a cross-professional entry test. I have nearly 5 years of work experience so far.

The first test job was outsourcing at Tencent for two years. The overall feeling is

This job lacks a sense of belonging, and there is always a gap in my heart, and there is not much room for improvement.

Without access to core technologies, the company has no technical training and research for you,

The work is simple and the business is repetitive, usually because of the existence of tool people.

The salary is not high, although there is overtime pay, it is still not high

After thinking about it, I am still ready to improve myself.

I started to get in touch with automated testing by chance, and also learned basic skills such as Jenkins operation and Linux command line.

Either you are learning, or you are on the way of learning, and then try to get in touch with some codes and some frameworks, and integrate the knowledge you have learned into your own projects. Organize your own project into a testing framework to learn selenium, website architecture, code knowledge, knowledge, network bottlenecks, system optimization, optimize scripts, design scenarios, obtain target user volume, execute, and analyze pressure results.

Finally, two years of outsourcing for testing, once the situation changes, the dragon! Has been transferred to a full-time employee with a monthly salary of 15k

As a tester, I would like to share some of my generalizations and conclusions about technology over the years, and share my notes on the skills that an advanced automated tester needs to master. I hope it can help those who are interested in technology. Friends all the way to the end!

1. Basic theoretical knowledge of software testing:

The theoretical knowledge of software testing is the theoretical basis and support for carrying out testing work, and it is a skill that must be mastered in a very important stage of testing.

  • Software quality model: the software testing process guarantees the quality of software, and from what aspects can we start thinking from the quality model
  • Test classification: The software testing process can be classified according to different angles, from basic testing to advanced testing
  • Development process: Tell testers a complete life cycle of software, the process of software from scratch to death
  • Testing process: master and guide testers how to carry out testing work in actual projects. This requires testers to have a thorough understanding of common mainstream testing processes. Encounter different software projects, know where to test software defects most efficiently
  • Test plan and scheme: how to plan and carry out test activities in the project to ensure that the test activities are carried out in an orderly manner
  • Design use case method: some test case design methods that must be mastered in the black box testing phase. For example, the design method of black-box test cases, test case elements, etc.
  • Software Defects: Defects should be identified and reported during test execution
  • Defect management: After submitting a defect, how to assist the development to deal with the problem of verifying the submission in actual work. For example: bug level priority classification, bug description, bug life cycle, use of defect management tools, such as Zen Tao, etc.
  • Test report: Review the test process and confirm the results, and generate a systematic professional software test evaluation report.

2. Software testing skills - Linux system

The linux system is the main server operating system, and it is also one of the basic technologies that most personnel engaged in IT positions must possess.

  • Basic knowledge of linux system: multi-user, multi-tasking, release version, etc.
  • Common linux operation commands: log viewing, file compression, decompression, user management, file permissions, etc.
  • Can deploy and configure basic application jdk, mysql, tomcat
  • docker installation and use
  • Write a basic shell RAD script
  • Remote terminal tools use: shell, xftps, etc.

3. Basic technology of software testing - Sql database

As a necessary application system for software systems, the database often needs to operate the database in the process of interface testing, performance testing, etc., to verify the correctness and integrity of the data, all of which are inseparable from the operation of adding, deleting, modifying and checking the database. During the project deployment stage, the database is still Need to cooperate with project deployment. Database support is required in performance testing and interface automation testing.

  • Basic concepts of database
  • Relational Database
  • MYSQL basic addition and modification query statement, stored procedure
  • MYSQL complex query, multi-table query
  • MYSQL index and transaction related concepts
  • Use of database client tools: such as Navicat

4. Software testing skills - programming language

Recommend friends who have no programming foundation to learn Python language

The learning content of Python language includes the following knowledge points:

  1. Python basics: Python language features, operating environment, basic grammar, code style, sample programs
  2. data structure:
  • Basic data structures: numbers, strings, type judgment, type conversion, slicing, string formatting, numerical operations, positional parameters and keyword parameters;
  • Composite data structures: lists, tuples, ranges, dictionaries, sets, unhashable objects, unpacking, memory data structure addresses, 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

5. Advanced software testing automation - interface testing

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

6. Advanced software testing automation - performance testing

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 roadrunner
  • Performance test report output

7. Advanced software testing automation - app automation

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 Server Appium 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

8. Advanced software testing automation - continuous integration and continuous testing

Continuous integration and continuous testing is a process of building, testing a product, and fixing bugs in iterations. It helps teams find bugs early in the development phase, when bugs are usually less complex and easier to fix. Through continuous integration and continuous testing, you can minimize the risk of bugs earlier and speed up the delivery of better quality software.

  • Version control Git: background introduction, environment deployment, workspace, staging area and submission area, branch creation and merging, conflict resolution, labels, config and aliases, local warehouse and remote warehouse, GitHub and code cloud
  • Continuous integration of Jenkins: background introduction, environment deployment, file structure, remote warehouse and private server, ja package dependency, plug-in management
  • Container Docker: Understand Dockers images, warehouses, containers, Docker Engine and architecture diagrams, network settings, data persistence

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/chengxuyuznguoke/article/details/130296136