I have been doing test development for more than a year, and my monthly salary has changed from 6K to 27K

How do I get started with testing?

I am studying in an ordinary college. I started to look for a job as an intern while I was in college. I stumbled into a start-up company that does industrial big data by mistake.

At the beginning, I didn't have a clear career development direction, mainly doing some basic work of environment construction. However, due to his high execution efficiency and strong sense of responsibility, he was appreciated by the boss of the company during the internship and was assigned to be in charge of project testing. After graduation, he became a test engineer in the product R&D department.

Most of my work is mainly based on functional testing, and I have also traveled on business trips and worked part-time on various products, operation and maintenance, and pre-sales work. In short, I will rush wherever the company needs it. Although the starting point is not high, I have learned a lot from testing work experience. I have dabbled in functional testing, UI automation testing, interface automation testing, performance testing, security testing and compatibility testing.

I will also quickly learn various skills according to work needs, such as computer programming, network, storage, scheduling and other knowledge, which also laid the foundation for me to learn continuous integration and data middle platform later.

What did I learn in starting a small company?

Test work pays special attention to results, while the normal state of small start-up companies is that time is tight, tasks are many, and iterations are fast.

So how to deal with this challenge, complete the testing work efficiently, and ensure the quality of the project smoothly?

After all kinds of work pressure, practical exploration and ups and downs, I figured out the core points: sort out the company's existing product development process, and clarify how to carry out testing work at each stage of development.

To put it simply, it is to figure out the key steps in the whole process of developing and executing software testing:

1. Obtain requirements, functional design, detailed design specifications and other necessary documents

2. Obtain budget and schedule requirements

3. Determine project-related personnel and their responsibilities, report requirements, necessary standards and processes (such as version process, change process, etc.)

4. Identify high-risk parts of the application, set priorities, and determine the scope and limitations of testing

5. Determine the method of testing - unit testing, integration testing, system testing, acceptance testing, etc.

6. Determine the environmental requirements (software/hardware/communication, etc.)

7. Determine the testing tools and environment (record/playback tools, coverage analyzers, test tracking, issue tracking, etc.)

8. Determine test input requirements

9. Identify tasks, task responsibilities, and corresponding workloads

10. Set up schedule estimates, schedules, milestones, etc.

12. Determine the equivalence class of input, boundary value analysis, error class

12. Prepare test plan documents and required reviews

13. Write test cases

14. Necessary review of test cases

15. Prepare test environment and test tools, obtain required user manuals/reference documents/configuration guidance/installation guidance, establish tracking process, log and archive process, and obtain test data

16. Get and install software version

17. Execute the test

18. Evaluate and report test results

19. Track issues and fixes

20. Retest if required

21. Maintain and modify test plans, test cases, test environments and test tools throughout their life cycle

After sorting out the development and software testing process, further clarify the testing work, phase objectives, main tasks, and passing criteria of each testing stage, and finally carry out the testing work, which will get twice the result with half the effort.

Why choose to become a test developer?

With more than a year of work experience, I have deeply experienced that it is not enough to have a clear process. Within the company, the feedback cycle between the development team and the testing and operation and maintenance personnel is too long, resulting in many defects in the software development process and quality:

  • Testers wait for "good" builds;
  • Defect reports don't come to the development team until weeks after the new feature is developed;
  • Operations and maintenance personnel have been waiting for documentation or bug fixes;

Although from the perspective of testing, I can think of many ways to improve the software delivery process, but it is difficult to implement it. Because I don't write code and don't have a deep understanding of the logic of R&D business implementation, I can't understand how this bug appears, and I can't see the essence through the appearance. Sometimes the sentence "you don't understand" developed by R&D makes me feel that communication is really difficult. I was suffocated in my heart, and I really hoped that I could "hold the sky" by myself.

Only by becoming a test development engineer who can test and understand code can he help R&D and testing to improve testing efficiency to the greatest extent, and then help the company improve the overall R&D efficiency. This has also become my unswerving career growth goal.

Break the boat, quit your job to learn test development skills

Buffett and Munger said that the best investment in the world is investing in yourself.

In order to learn test development technology, I shared a set of courses from my friends (he spent thousands of dollars to buy them at the time). I feel that the outline is very comprehensive and the knowledge system is complete.

Affected by the epidemic in 2020, many testing tasks can only be processed remotely and online. However, the efficiency of teamwork is not high, and project iteration is still too fast. I always feel that after receiving the test work, I can only complete it as soon as possible, but it is difficult to implement it according to the original plan and achieve a good standard. This feeling of being exhausted and anticlimactic made me dumb to eat Coptis chinensis, and I couldn't tell the pain.

This kind of work mode made me hate it, and I couldn't bear it. After persisting for a period of time, I decided to resign, and I was officially unemployed at home to study the course "Advanced Python Automation Test Development Practical Combat". On the one hand, adjust your current physical and mental state, and on the other hand, you will break through the boat, enrich yourself, and move towards a better self-test development!

Are you ready for the big move? Let's talk about dry goods! ⬇️

Learning experience and test interview experience

You must have your own learning direction. The goal is to be a T-shaped talent. When ensuring breadth, you must also have one or two specializations, so that you can stand out in the interview.

Here I share my personal systematic learning route and key pre-interview preparation skills:

1. Basic knowledge of testing

The definition of test, the classification of test, the method of test, the life cycle of test.

Writing of test plans, test scenarios, test strategies, and test cases.

The definition of BUG, ​​the classification of BUG, ​​the severity of BUG, ​​the six elements of BUG, ​​and the life cycle of BUG.

Defect report writing, test report writing, ZenTao management tool application

Second, test tool learning

Test management tools: QC, Zen Tao, Testlink, svn, git, etc.

Performance test management tools: Loadrunner, Jmeter, Locust

Interface testing tools: Jmeter, postman, etc.

Continuous Integration Tool: Jenkins

App automation tools: appium, Monkey, Monkey Runner, etc.

Web security testing tools: appscan, Fiddler, burpsuite

3. Linux system + MySQL database

Linux: Build a test environment and deploy, view logs, locate bugs, and master some of the commonly used Linux commands

Database: database addition, deletion, query and modification operations, sorting, aggregation functions, grouping, paging, connection query, subquery, self-association; advanced database function database design, command line operation database, function, stored procedure, view, transaction, index, foreign key , user password, etc.

4. Python programming + data structure

Basics of Python programming: computer composition principles, Python development environment, Python variables, flow control statements, advanced variable types, function applications, file operations, object-oriented, exception handling, modules and packages

Data Structures: Algorithms, Time and Space Complexity, Stacks and Queues, Binary Trees

Sorting Algorithms: Bubble Sort, Selection Sort, Insertion Sort, Quick Sort, Hill Sort

5. Automated testing

1) Web automated testing

Build a web automation test environment

Element positioning methods and element operations

UnitTest Framework, UnitTest Assertions, Parameterization, Test Reports, Fixtures

The design idea of ​​PO mode, encapsulating the page

Data-driven implementation, log processing

Automated testing process, automated code implementation, project automation framework design

2) Interface test

The concept of interface and interface testing

HTTP request message

HTTP response message

Three-way handshake and four-way handshake of TCP connection

Writing and analyzing interface test documents

Fiddler/charles capture packet

postman (commercial tool, very useful)

jmeter (powerful, interface, pressure take all)

requests (interface automation, which can be implemented with python+requests+pytest+ddt+git framework)

3) Performance testing

Understanding Performance Indicators

Classification of Performance Testing

Design reasonable performance test scenarios

Performance monitoring analysis and tuning

Use of performance tools

4) APP automated testing

App packaging and server deployment

Use of ADB commands

Use of the Monkey testing tool

Use of Appium testing tools

Master the basic technology of automated testing of mobile APP

5) Security testing

Mysql injection

XSS injection

vulnerability scan

Sensitive Information Leakage

File Upload

Information verification

6) Continuous integration

Developer submits code to svn

The tester checks out the source code

Compile and package

upload server

deployment start

Develop test scripts and complete tests

Manual Testing Learning Points

For newcomers with zero foundation, they must first learn basic theoretical knowledge, and then do demand analysis and use case analysis after having a certain computer foundation and software testing foundation, so this stage focuses on laying the foundation and writing test cases

Learning objectives: master basic test theory, writing and management of various test documents, database operation, meet the needs of most enterprises

Familiar with black-box test case design methods and functional test case design Familiar with test management tools Zen Road, QC Familiar with test plans, test schemes, core content of test reports SQL database language Familiar with e-commerce and application manual project testing

Interview

The interview peak season of Golden September Silver October is coming soon, and everyone hopes to take this opportunity to find a job they like, but no matter what, no matter what kind of interview, if you want to avoid being abused by the interviewer, you have to use the Make comprehensive preparations for the explosive interview questions. Of course, in addition to this, you also need to lay a solid foundation in your daily life, so that no matter how the interviewer digs into a knowledge point, you can handle it well~

  • BugRequired fields
  • Briefly describe the life cycle of BUG?
  • What do you think is the key to doing a good test case job?
  • What phases should a complete set of tests consist of?
  • What does software acceptance testing include?
  • What is the strategy for system testing?
  • Write test report
  • Describe the life cycle of software testing activities?
  • Briefly describe the "80-20 principle" in software testing.
  • Composition of a Defect Test Report
  • What is a stress test? What factors need to be considered in stress testing?
  • What is the purpose of software testing?
  • Common methods of black box test case design
  • Which is the most important step in the steps of unit testing, integration testing, system testing, acceptance testing, and regression testing?
  • Please tell me the advantages and disadvantages of manual testing and automated testing
  • How to implement automated testing
  • What is a stress test? What factors need to be considered in stress testing?
  • Talk about your understanding of CI/CD
  • What do you think software test engineers need to do in a team? What's the value?

I participated in a total of 5 interviews. The interview questions shared here only show part of the interview questions. Due to space constraints, it is not convenient to read, so I will not post them all.

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/hlsxjh/article/details/130329758