Introductory knowledge points for test engineers

1. Agile model

Agile model is a human-centered, iterative, cyclical and progressive development method. In agile development, the construction of a software project is divided into multiple sub-projects, and the output of each sub-project has been tested and has the characteristics of integration and operation. In other words, it is to divide a large project into multiple small projects that are interrelated but can also be operated independently, and complete them separately, and the software is always in a usable state during the process. The mainstream agile development method is Scrum. Scrum is composed of the product owner, agile coach and R&D team. The product owner sorts out user stories, defines their business value, formulates release plans, and is responsible for the product. The agile coach is responsible for holding various meetings, coordinating The project serves the R&D team, and the R&D team is composed of members with different skills. Through close collaboration, the goal of each iteration is completed and the product is delivered.


2. Quality model

GB/T 25000.51-2016 summarizes the quality model into eight aspects: functionality, performance efficiency, compatibility, usability, reliability, information security, maintainability, and portability.


3. General classification of tests

Unit testing, smoke testing, system testing, regression testing, app automation testing, web automation testing, interface testing, performance testing, security testing.


4. Rough classification of test engineers

Roughly divided into business test engineers, regression test engineers, system test engineers, software test engineers, algorithm test engineers, test development engineers, big data test engineers, automation test engineers.


5. The test can be roughly followed by steps

Divided into five steps: analysis (requirements), planning (test points), design (test cases), implementation (writing scripts), execution (running scripts).


6. Test case design method

Equivalence class division method, boundary value analysis method, decision table method, process analysis method, error guessing method, etc.


7. Common test framework

unittest and pytest. unittest is a unit test module that comes with Python. unittest has a complete test structure, supports the execution of automated tests, organizes test case sets, provides rich assertion methods, and finally supports the use of test report tools to generate reports. pytest is a powerful unit testing framework in the Python language. pytest requires additional installation to manage and organize test cases. It can be applied to unit testing and automated testing. pytest is more flexible than unittest.


8. Common test report tools

HTMLTestRunner, BeautifulReport, and Allure. HTMLTestRunner's report template is relatively backward. The interface of BeautifulReport is relatively simple and intuitive. Allure can generate rich and beautiful reports.


9. Log management tool logging

logging is a built-in module of python, which can be used to record the running log; the log can allow developers or operation and maintenance personnel to quickly locate the problem after a program has a problem, and play an important role in development and debugging, locating faults, and understanding the running status of the program. .


10. WEB automated testing library selenium

Selenium element positioning: id, name, class name, tag name, link text, partial link text, xpath, css selector; xpath and css selector are universal positioning methods, supporting absolute/relative path positioning, single/multiple attribute positioning, fuzzy positioning ; Automated testing LOVE four-step method: locate (Locate), operate (Operate), assert (Verificate), exception handling (Except).


11. APP automated testing library appium

Support native applications, WEB applications and hybrid applications on iOS and Android platforms.


12. Interface test

Commonly used interface testing tools include apifox, postman, and jmeter, interface document tool swagger, and interface data tool mock; the library commonly used for interface automation testing is requests. If database verification is required, the library sqlalchemy can also be used. If the database is not deployed Locally, two libraries, paramiko and sshtunnel, are needed to connect to the springboard or server.


13. Performance testing

Commonly used performance testing tools are loadrunner and jmeter.


14. Testing framework

Data-driven, keyword-driven, and Page Object Model (POM). The data-driven framework DDT (Data Driver Test), the keyword-driven framework RobotFramework, and the POM maintain objects in units of WEB.


15. Automated test script recording tool Airtest

Airtest is a UI automation testing tool based on image recognition and poco control recognition produced by Netease, which can be used for automated testing of games and WEB.


16. Continuous Integration/Continuous Deployment (CI/CD)

The CI/CD tool is mainly the jenkins platform, which is usually used in conjunction with the Docker container.


17. Programming languages

In addition to mastering the basic Python language, you need to master the Go language for high-concurrency web page testing, C/C++ language for hardware-related testing, and Java language for financial system or big data product testing.


18.SQL statement

Database verification is usually an indispensable part of the test. Familiarity with the use of SQL statements can improve the efficiency of information verification. When performing interface automation, SQL statements are also required to obtain target information for assertion; MySQL’s commonly used clients include Sequel Pro , Navicat and SQLyog etc.


19. Shell command

Regardless of Windows or Mac, there will be a corresponding command terminal. Executing Shell commands on the terminal can perform related operations such as files, directories, and permissions. Mastering these basic Shell commands can improve efficiency in work.


20. Use of SSH

SSH (Secure Shell) is an encrypted network transmission protocol. Using the ssh command on the terminal can establish a secure session, such as connecting to a springboard or a server.


21. Use of GIT

GIT is a version control system. You can use the git command on the terminal to perform version control on your various resources; platforms based on git include gitee, github, and gitlab. gitee is launched by the open source Chinese community and is aimed at both individuals and enterprises. Code hosting platform, github is a code hosting platform mainly used for personal open source sharing, and the code hosting platform that is frequently used within the company is gitlab.


22. Confluence platform

Confluence is a platform for knowledge document management and sharing within the company, which is beneficial for employees to create, collaborate and discuss.


23. Jira platform

Jira is a project and issue tracking tool that is widely used in customer service, requirements collection, agile management, process approval, project tracking, task tracking, and defect tracking.


24. Use case design and management

Using Xmind to design and manage use cases is characterized by clarity, simplicity and efficiency.



Each of the above knowledge points needs to be studied and mastered in depth before it can be regarded as an introduction to the test. Please point out any mistakes, thank you~

Guess you like

Origin blog.csdn.net/embracestar/article/details/125818154