What skills do you need for software testing? The way to develop advanced software test engineers...


foreword

Essential Skills for Software Test Engineers

1. Collaborative development ability
①Project management (SVN, Git)
②Data analysis ability (Fiddler, Charles, browser F12).

2. Interface testing
① concept and interface testing principle concept (concept, interface testing principle)
② interface testing tools (Jmeter, Postman, SoapUI)
③ common interface protocols (HTTP, HTTPS, web Service/SPAP)
④ HTTP protocol concept (URL, request header, request body, response header, status code)
⑤Common HTTP request methods (GET, POST, DELETE, PUT)
⑥Common data interaction formats (application/x-www-form-urlencoded, multipart/form-data, application/json, text/xml)
⑦ HTTP status codes (1XX, 2XX, 3XX, 4XX, 5XX)
⑧Common authentication methods (token, session, cookie)
⑨Interface test cases (business functions, boundary analysis, parameter combinations, exceptions, performance Security)
⑩bug analysis and positioning (interface request, response content, database table structure analysis, basic operation of adding, deleting, modifying, log analysis)
⑪Interface test report

3. Basic knowledge of software testing
①Definition of software testing (concept of software testing)
②Software life cycle (waterfall, V, W, agile development)
③Classification of software testing (black box testing, white box testing, integration testing , system testing, performance testing, security testing, automated testing)
④ software testing process (test requirement analysis stage, test planning stage, test design stage, test execution stage, test evaluation stage)
⑤ software testing method (equivalence class, boundary value , causal diagram, decision table, scenario method, error guessing method)

⑥ Software test cases (use case number, test function, test title, use case priority, precondition, test data, test steps, expected results, actual results)

⑦Definition of bug (bug life cycle, bug type, bug severity level, bug management, bug submission, bug tracking.)

4. Python automation skills
①python editor (Cpython, Ipython, Jpython, pypy, Ironpython)
②python data types (float, string, integer, Boolean, list, dictionary, tuple, set)
③python operator (1. Arithmetic operators: +, —, *, /, % 2. Logical operators: and, or, not 3. Membership operators: in, not in 4. Assignment operators: =, +=, —= 5. Comparison Operators: <, >, <=, <=, ==, !=)

④Function: 1. Definition: def function name () 2. Parameter type: mandatory/default/variable length 3. Method of parameter passing: position/keyword 4. Use of function 5. Return value of function

⑤File processing: 1. Open file: open/with open...as 2. Read mode: readline/readlines/read 3. Write mode: write 4. Append mode

⑥Control flow: (if judgment, for loop, while loop)
⑦Exception handling (try, except, else, finally)
⑧Object-oriented (class, attribute, method, object, inheritance, derivation, class attribute object attribute, class method, class instance method, static method)

5. Linux basic commands
①Linux basic commands: (permission, file query, process, port, firewall operation, directory switching, new file, edit file, switch user, view log) ②Environment construction: (JDK installation, environment variable configuration,
Tomcat Installation, MySQL installation)
③Project deployment: (conf stores configuration files, jdbc configuration files, webapps stores war packages by default, restarts services)

6. Database skills
MySQL database: (connect to database, create database table, add, delete, modify, multi-table association (equivalent join), left join/right join, group query)

7. Primary performance
Primary performance knowledge: (performance theory, operating system, network performance testing tools, server, database)

8. Other network knowledge
①TCP/IP four-layer protocol line: (network interface layer, network layer, transport layer, application layer)
②Firewall: (packet filtering firewall, state expiration firewall, application gateway firewall, ACL, NAT)
③VPN: ( Layer 2 VPN: L2TP, Layer 3 VPN: IPsec, Layer 7 VPN: SSL, VPN)

9. Network knowledge OSI seven-layer network model
①Physical layer: (twisted pair, radio wave, optical fiber, bit stream)
②Data link layer: (MAC address, switching: VLAN/Trunk/STP, frame)
③Network layer: (IP protocol: IP subnetting/subnet mask/IP classification/IP v6, ARP protocol, routing protocol: static routing protocol/dynamic routing protocol, ICMP protocol) ④Transport layer: (TCP
protocol, UDP protocol, port)
⑤ Session layer
⑥ Presentation layer
⑦ Application layer: (HTTP protocol, HTTPS protocol, DNS protocol, FTP protocol, FTP protocol)

10. APP special test capability
①App performance test: (GT, emmagee, itest)
②App performance test monitoring indicators: (response time, memory, cpu, fps, ps, traffic)
③App stability test-monkey: (-v, -p , -s, –throttle, –randomize-throttle, –ignore-crashes, –ignore-timeouts, monkey API)
④App log analysis:
Network type: WIFI/5G/4G/3G/2G
No network: disconnected and reconnected./ Local data storage
Delay, packet loss: response time/timeout reconnection/page rendering integrity
Weak network testing tools: Fiddler, Charles, network emulator, Xcode
App performance testing monitoring indicators: (adb, adb logcat, Trace files)

Software test engineer development path

1. Junior Test Engineers
are just getting started individuals with a computer science degree or individuals with some manual testing experience. Develop test scripts and become familiar with the test lifecycle and testing techniques.

2. Test engineer/program analyst
A test engineer or programmer with 1 to 2 years of experience. Write automated test scripts and act as initial lead for test programming. Expand your programming language, operating system, networking and database skills.

3. Senior test engineer/program analyst
A test engineer or programmer with 3 to 4 years of experience. Help develop or maintain testing or programming standards and procedures, conduct peer reviews, and serve as advisors to other junior test engineers or programmers.

4. The person in charge of the test group
is a test engineer or programmer with 4 to 6 years of experience. Responsible for managing 1 to 3 test engineers or programmers. Take on some scheduling and job sizing/cost estimating responsibilities.

5. The person in charge of testing/programming
is a test engineer or programmer with 6-10 years of experience. Responsible for managing 8 to 10 technicians. Responsible for scheduling, job size/cost estimating, and delivering product on schedule and budget targets.

6. Test/Quality Assurance/Development (Project) Manager
has more than 10 years of work experience. Manage 1 or more projects involving 8 or more people. Responsible for the entire development life cycle business within this domain (Test/QA/Development).

7. Program Manager
Over 15 years of experience in development and support (testing/quality assurance) activities. Manage people working on several projects and the entire development lifecycle. Responsible for grasping the project direction and profit and loss responsibility.

The following is the most complete software test engineer learning knowledge architecture system diagram in 2023 that I compiled

1. From entry to mastery of Python programming

Please add a picture description

2. Interface automation project actual combat

Please add a picture description

3. Actual Combat of Web Automation Project

Please add a picture description

4. Actual Combat of App Automation Project

Please add a picture description

5. Resume of first-tier manufacturers

Please add a picture description

6. Test and develop DevOps system

Please add a picture description

7. Commonly used automated testing tools

Please add a picture description

Eight, JMeter performance test

Please add a picture description

9. Summary (little surprise at the end)

Don't be knocked down by the ups and downs of reality, because struggle is a sharp sword to overcome difficulties; don't be shadowed by the shadow of failure, because struggle is a stage for creating brilliance. Persist in pursuit, burn passion, believe in yourself, and move forward bravely.

On the road of chasing dreams, struggle is our strength to climb mountains and our courage to cross swamps. No matter how twists and turns the road ahead is, only by keeping firm belief and working hard can we paint our own glorious chapter and turn dreams into reality!

Overcome obstacles and struggle endlessly; climb to the top and never give up. The road of struggle may be difficult, but only by persisting in hard work can we obtain endless light. Bravely chase your dreams, burn the enthusiasm in your heart, let the struggle achieve brilliance, and bloom the most beautiful flowers in life!

Guess you like

Origin blog.csdn.net/csdnchengxi/article/details/131898588