How did I get started?

I am studying in an ordinary university. I started my internship to look for a job when I was in college, and accidentally entered a start-up company engaged in the big data industry.

At the beginning, I did not have a clear career development direction, mainly doing some basic work of environment building. However, due to high execution efficiency and strong sense of responsibility, I was appreciated by the boss of the company during my internship and was assigned to be in charge of project testing. After graduation, I was transferred to the test engineer of the product R&D Department.

Most of my work is based on functional testing, but also on business trips and part-time work for various products, operation and maintenance, pre-sales, in short, where the company needs, I will rush. Although the starting point is not high, I have learned a lot from my testing experience, including 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 lays a foundation for my later study of continuous integration and data center.

What have I learned in starting a small business?

Testing is all about results, and the norm for small startups is tight schedules, multiple tasks, and rapid iteration.

So how to deal with this challenge, efficiently complete the test work, smooth guarantee project quality?

After a variety of work pressure, practical exploration and bumpy experience, I figured out the core points: sorting out the r&d process of the company’s existing products, and making clear how to carry out testing work in each stage of r&d.

To put it simply, it is to understand the key steps of the whole process of developing and executing software tests:

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

2. Obtain budget and time requirements

3. Identify project stakeholders and their responsibilities, reporting requirements, required standards and processes (e.g. version process, change process, etc.)

4. Identify high-risk applications, set priorities, and determine the scope and limits of testing

5. Determine test methods — unit test, integration test, system test, acceptance test, etc

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

7. Determine test tools and environment (record/playback tools, coverage analyzer, test trace, problem trace, etc.)

8. Determine test input requirements

9. Identify tasks, task responsibilities and corresponding workload

10. Set time estimates, timelines, milestones, etc

12. Determine input equivalence classes, boundary value analysis, error classes

12. Prepare test plan documents and required reviews

13. Write test cases

14. Conduct necessary reviews 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. Obtain and install the software version

17. Perform tests

18. Evaluate and report test results

19. Tracking problems and modifications

20. Retest if necessary

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

After combing the development and software testing process, further clarify the testing work of each testing stage, stage objectives, main tasks, passing criteria, and finally test work, it will get twice the result with half the effort.

Why test development?

More than a year of work experience, let me deeply experience that clear process sorting is not enough. Within the company, the feedback cycle between development, team and test, operation and maintenance personnel is too long, resulting in many defects in software development process and quality:

  • Testers wait for a “good” build;
  • Bug reports are not received until several weeks after new features have been developed;
  • Operations personnel are waiting for documentation or bug fixes;

From a testing perspective, I can think of many ways to improve the software delivery process, but it is difficult to implement. Because I do not write code, do not deeply understand the logic of r & D business implementation, I can not understand how this Bug appeared, can not see through the appearance of the essence. Sometimes the phrase “you don’t understand” makes me feel that communication is really difficult. The heart was held in one breath, I really wish I could be a person “sky”.

Only by becoming a test development engineer, who can both test and understand the code, can he maximize help in R&D and testing to improve the testing efficiency, and thus help the company to improve the overall R&D efficiency. This has become my unwavering goal of professional growth.

Quit your job to learn test development skills

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

In order to learn test development technology, HE shared a set of courses from his friends (he spent about thousands of yuan to buy it at that time). He felt that the outline was comprehensive and the knowledge system was complete. At the same time, he also participated in many dry goods open courses of some website.

In 2020, due to the impact of the epidemic, a lot of testing work had to be handled remotely and online. However, team collaboration was not efficient and project iteration was still too fast. I always feel that after receiving the test work, I can only complete it as soon as possible, and it is difficult to implement it according to the original plan and reach the good standard. This kind of tired running and anticlimactic feeling, let me mute eat coptis, bitter can not say.

I hated this working mode so much that I could not bear it any longer. After a while, I decided to quit my job and officially stayed home to learn the Course “Advanced Python Automated Test Development”. On the one hand to adjust their current physical and mental state, on the other hand is also to break the cauldron, enrich themselves, to better their own – test development direction forward!

This course system of Python Automation Test Development is very comprehensive. Dachang’s cutting-edge technology and development direction are introduced in detail. It is full of dry goods and practical essence. After learning, digesting and absorbing the course knowledge, I directly applied it to the subsequent job interview, and successfully won the Offer from many companies. Finally, I chose a test development position with an annual salary of 20W+ in a factory, and the salary increase is 120%, which is really delightful ~


Are you ready for the big move? Here’s the dry stuff! ⬇ ️

Learning experience and test interview experience

Must have their own learning direction, the goal is to achieve t-shaped talent, to ensure the breadth of time must also have one or two specialization, so as to be able to stand out in the interview.

Here is my personal systematic learning route and key preparation skills before the interview:

First, test basic knowledge

Test definition, test classification, test method, test life cycle.

Test plan, test scheme, test strategy, test case writing.

BUG definition, BUG classification, BUG severity, BUG six elements, BUG life cycle.

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

Second, test tool learning

Test management tools: QC, Zen Dao, 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

Web security testing tools: AppScan, Fiddler, and BurpSuite

Linux system +MySQL database

Linux: Build test environment and deployment, view logs, locate bugs, and master some common Linux commands

Database: database operation, sorting, aggregation function, grouping, paging, connection query, sub-query, self-association; Advanced database functions Database design, command line operations database, functions, stored procedures, views, transactions, indexes, foreign keys, user passwords, and so on

Python programming + data structures

Fundamentals of Python programming: Computer composition, Python development environment, Python variables, flow control statements, advanced variable types, function applications, file manipulation, object-oriented, exception handling, modules and packages

Data structures: algorithms, time and space complexity, stacks and queues, binary trees

Sorting algorithm: bubble sort, selection sort, insert sort, quick sort, Hill sort

Automated testing

1) Web automated testing

Set up the Web automatic test environment

Element location methods and element operations

UnitTest framework, UnitTest assertions, parameterization, test reports, fixtures

PO mode design idea, the page is encapsulated

Data-driven implementation, log handling

Automatic test process, automatic code implementation, project automation framework design

2) Interface test

Interfaces and interface testing concepts

HTTP request packet

HTTP response packet

TCP connection three-way handshake, four-way wave

Interface test document writing and analysis

Fiddler/Charles caught

Postman (business tools, very useful)

Jmeter (powerful, all-in-one interface and pressure)

Requests (Interface automation, python+ Requests + Pytest + DDT + Git framework)

3) Performance test

Understanding performance Indicators

Classification of performance tests

Design reasonable performance test scenarios

Performance monitoring analysis and tuning

Use of performance tools

4) APP automation test

App packaging and server deployment

Use of ADB commands

Monkey test tool use

Use of Appium test tools

Master the basic technology of mobile APP automated testing

5) Safety test

Mysql injection

XSS injection

Vulnerability scanning

Leakage of sensitive information

File upload

Information check

6) Continuous integration

The developer submits the code to SVN

Testers check out the source code

Compile the package

Upload server

The deployment of start

Develop test scripts and complete tests

The above is my personal system learning route specific content introduction each stage has the corresponding free video tutorial material, I hope to be helpful to everyone’s software testing learning!

Manual testing focuses on learning

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

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

Proficient in black box test case design method, functional test case design

Familiar with test management tools Chan Dao and QC; familiar with test plan, test scheme and core content of test report; familiar with SQL database language; familiar with e-commerce and application manual project testing

The interview in

Soon to golden nine silver ten interview season, everyone wants to taking advantage of this opportunity to find a right job, but no matter what, no matter what the size of the interview, so I wouldn’t be the interviewer don’t don’t of, only make full preparations maxed interview questions, except, of course, this needs to be in his usual foundation solid, This way, no matter what the interviewer is like, you will be able to deal with it

  • Bug Mandatory field
  • What is the life cycle of the BUG?
  • What do you think are the keys to doing a good job with test cases?
  • What phases should a complete set of tests consist of?
  • Software acceptance testing includes?
  • What are the strategies for system testing?
  • Write test reports
  • Describe the lifecycle of software testing activities?
  • This section describes the 80-20 principle in software testing.
  • Composition of a defect test report
  • What is a stress test? What factors should stress tests take into account?
  • What is the purpose of software testing?
  • Common methods of black box test case design
  • What is the most important step of unit testing, integration testing, system testing, acceptance testing, and regression testing?
  • Please discuss the advantages and disadvantages of manual testing versus automated testing
  • How to implement automated testing
  • What is a stress test? What factors should stress tests take into account?
  • 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 have participated in a total of 5 interviews. The interview questions shared here only show part of them. Due to space limitation, I will not post all of them

Question + answer can be concerned about the public number a programmer who receiveCopy the code

Above, the success of the present is always the starting point of the next progress, I believe that action is better than heart, while writing code while accumulating, progress a little bit every day, I will eventually be closer to the god of testing technology, but also hope to communicate with you more, progress together!

— Guess what you like:

After writing “proficient” on my resume, I was suffocated by an interviewer with work experience

Big factory programmer reverse output Versailles one day, ⚡ “capture bamboo shoot ah” ⚡

Software Testing interview Guide self-introduction (dry goods)

After the byteDance test job interview failed, I reviewed and summarized the reasons for my failure and decided to try again

Code text is not easy, trouble everybody big guy before closing to give a thumbs-up, very grateful!