"I switched careers to do test development for more than a year, and my monthly salary has changed from 5K to 18K", the confession of a cute girl from the Chinese Department

The boss of the company is my test guide

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 designs, detailed design specifications and other necessary documents
  2. Obtain budget and scheduling requirements
  3. Identify project stakeholders 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 limits of testing
  5. Determine the approach to testing—unit testing, integration testing, system testing, acceptance testing, etc.
  6. Determine environmental requirements (software/hardware/communication, etc.)
  7. Identify testing tools and environments (record/playback tools, coverage analyzers, test traces, issue trackers, etc.)
  8. Determine test input requirements
  9. Identify tasks, task responsibilities and corresponding workload
  10. Set up schedule estimates, schedules, milestones, and more
  11. Determine equivalence classes for inputs, boundary value analysis, error classes
  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 releases
  17. Execute the test
  18. Evaluate and report test results
  19. Track issues and fixes
  20. Retest if necessary
  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!

The course system of "Advanced Practical Combat of Python Automated Test Development" really covers a very comprehensive course system. The cutting-edge technology and development direction of major manufacturers are introduced in detail, full of dry goods and practical essence! After studying, digesting and absorbing the course knowledge, I directly used it in subsequent job interviews, and successfully won offers from many companies. Calculating the time, it only took 3 months to successfully switch to automated testing . In the end, I chose a test development position with an annual salary of 20W+ in a medium-sized factory, and the salary increase was 120%. I am really happy~

 

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 tools: Jenkins
app automation tools: appium, Monkey, Monkey Runner,
etc. Security testing tools: appscan, Fiddler, burpsuite

3. Linux system + MySQL database

Linux: Build a test environment and deployment, 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 queries, subqueries, self-association; advanced database functions 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 , stack and queue, binary tree
sorting algorithms: bubble sort, selection sort, insertion sort, quick sort, Hill sort

5. Automated testing

1) Web automated testing

Building a Web automation testing environment
Element positioning method and element operation
UnitTest framework, UnitTest assertion, parameterization, test report, Fixture
PO mode design ideas, encapsulation of the page
Data- driven implementation, log processing
Automated test process, automated code implementation , Project automation framework design

2) Interface test

The concept of interface and interface testing
HTTP request message
HTTP response message
TCP connection three-way handshake, four wave hand writing and analysis of
interface documents
Fiddler/charles capture
postman (commercial tool, very useful)
jmeter (powerful, interface, Pressure takes all)
requests (interface automation, which can be realized by python+requests+pytest+ddt+git framework)

3) Performance testing

Understanding performance indicators Classification of
performance tests
Designing 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 Monkey test tools Use of
Appium test tools
Master the basic technology of mobile APP automated testing

5) Security testing

Mysql injection
XSS injection
Vulnerability scanning
Sensitive information leakage
File upload
Information verification

6) Continuous integration

The developer submits the code to the svn
tester to check out the source code,
compile and package,
upload the server,
deploy start
, develop the test script, and complete the test

The above is my personal system learning route. The specific content is introduced. There are corresponding free video tutorial materials for each stage. I hope it will be helpful to everyone's software testing and learning!

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 the design method of black-box test cases, and design
functional test management tools Zen Road, QC
Familiar with test plans, test schemes,
SQL database language, the core content of test reports
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 are only partly shown. Due to space limitations, it is not convenient to read and not all are posted. Questions + answers can be obtained at the end of the article)

Above, the current success is always the starting point for the next improvement. I believe that the heart is not as good as the action. I accumulate while writing the code and make a little progress every day. I will eventually be closer to the test technology master. I also hope to communicate with you more. improve together! 

It is not easy to sort out and collect information, please give a like before closing, thank you very much!

Guess you like

Origin blog.csdn.net/weixin_47648853/article/details/131116876