Hello everyone, MY name is Xinxinzi, a girl of software testing. I have 6 years of experience in software testing. I have worked in a large factory and a start-up company, and I have been in charge of project testing from 0 to 1 by myself.
The structure of the article is as follows:
A software testing overview
Ii. Required capability model
Iii. Career development Direction
Four, six years of testing experience
A software testing overview
Speaking of software testing, a lot of people’s impression, probably have a hand can do, “dot dot” on the line. It is true that most basic test engineers do “dot-dot-dot” work, but this point, pay attention to logic, how to “dot-dot-dot”, can expose problems as early as possible, with fewer operations to cover more test scenarios, so as to ensure product quality, this involves skill.
There are a lot of other things you can do besides dot-dot-dot, but what about the actual work of testing? Xin Xin purple combined with 6 years of testing experience, to share a wave.
The responsibility of testing students is nothing more than two, to ensure the quality of software testing and improve testing efficiency.
In order to achieve these two goals, test students’ daily activities include: functional testing of routine requirements, automatic testing, performance testing, tracking online feedback problems, building testing environment, controlling project progress and quality, developing testing platform or script, and managing the department, etc.
1. Functional testing of routine requirements
This includes participating in requirements review meetings, developing test plans, writing test cases, reviewing test cases, executing test cases, submitting bugs, regression validation bugs, sending test reports, conducting online validation, etc.
2. Perform performance tests
According to the requirements of the project, I made pressure testing plans for important interfaces, used Jmeter and other testing tools to carry out pressure testing, cooperated with the developers to find system bottlenecks and produced pressure testing reports.
3. Automate tests
Use automated testing tools such as Robot Framework, Python+ Unitest/PyTest, Selenium, etc. to complete page UI automation or interface automation, improve testing efficiency, and expose problems as soon as possible.
4. Follow up online feedback problems
In daily testing, online problems are inevitable. The feedback online problems need to be filtered and repeated by the testing students, and then synchronized to the development students, and assist the development students to locate the problems. After the development students solve the problems, the test students verify the completion of the online.
5. Build a test environment
Some test environments are built by operation and maintenance students, while others need to be built by testing students. Depending on different companies, there will be documents to build the test environment, which can be completed according to the documents. Generally, there are Linux and Windows test environment, but Linux is more, so Linux commands will be used more. It is necessary to learn some basic Linux commands on a daily basis.
6. Control project progress and quality
For bugs and unconfirmed points in the project, test students should actively push forward, timely communicate with product and development students, solve problems as soon as possible, and promote the progress of the project.
As for the quality of the product, the test students will make regular Bug statistics and analyze the causes of bugs. If the quality has been poor, they will take some measures to improve and improve it actively.
7. Train new testers
During the probation period, a tutor will be assigned to the new recruits, who will be responsible for their work content and the assessment of their regular employment. Generally, the test leader will assume this role.
8. Develop test platforms or scripts
Some companies have special test platforms to complete Bug statistics and quality analysis, interface automation statistics and other functions, this part of the development work is undertaken by test development engineers.
9. Managed the department
The management work is undertaken by the leaders, including the personnel arrangement of various projects, the evaluation of project testing time, the follow-up of project testing progress, the performance appraisal of department members, personnel recruitment, team building, etc.
Ii. Required capability model
To do well in software testing, you need to have two abilities, namely hard power and soft power.
1) Hard power
Hard strength is the professional knowledge required by students. The specific knowledge system is as follows:
1. Basic knowledge of software testing
During her college years, Xinxinzi was lucky to take the specialized course of software testing, which was regarded as her entrance and laid a foundation for her subsequent career development.
Introduction testing basic knowledge, mainly from software defects, software development cycle pattern, software test classification, software test case design methods and other aspects.
2. Software testing process
The standard software testing process in the industry is as follows: requirement review, software test plan development, test case writing, test case review, test case execution, Bug submission, Bug verification, test report sending and online verification.
But in the actual work, there is often no such standard process, xin Xin Purple has only experienced such a standard process in a company, just at that time the company process specification, invited he Mian, to the company to do special guidance.
The bosses, lean product development is a senior adviser, focuses on lean product delivery, entrepreneurship, innovation and lean product design, and other fields, for huawei, and peace, science and technology, China, and many successful entrepreneurial companies to establish or introducing lean product development and innovation methods, see his books recommend the lean product development: principles, methods and implementation.
Most non-standard processes fall into the following categories:
1) There is no requirement review, and direct test after development
The requirements were dictated by the developer or simply explained in an email, and the tester began to intervene in the test.
When the requirements are not clear, the test students often spend a lot of time communicating the requirements and may end up taking the blame.
In this case, the testing students need to record the tested points, and confirm the scope with the development and product students, only to ensure the correctness of the currently tested functions, the risk of other untested functions is unknown, and make a clear explanation on the test report, in case of online bugs, you can speak with the test report.
2) Review of useless cases
Use case review, the identification of test points by testing, development, and production, is designed to avoid missing test points. This process occurs in more complex systems, but is not necessary for systems with simple logic.
To do a good job in use case review, we should grasp the granularity of the review. If the granularity is too fine, the students will be tired and the sense of participation will be weaker and weaker. Therefore, it is very important to grasp the granularity.
3) No Bug management tools
Recording in the Bug management system is conducive to quality analysis, and the Bug library is also a good test case library. Many bugs are universal and can be used for reference in different projects.
Some companies do not have a Bug management system, so they directly document it or send it to the group. With fewer bugs, it is easier to manage, but once there are more bugs, it will be easy to get confused. Different people need to claim the bugs at the front and back ends.
Some companies have a Bug management system, but because the KPI of developers is related to the number of bugs, bugs are not recorded internally by default, and they are directly communicated by IM and recorded manually.
In theory, the Bug management system is very necessary, not only can save communication costs, but also help quality analysis, if we use reasonably, can bring great value.
3, commonly used test tools
1) Test case tools
There are many tools for writing test cases, such as Xmind, Excel, TAPD, Testlink, Zentao, etc. In practice, Xmind is used most often because of its simplicity and convenience.
2) Project management tools
Common project management tools include Zentao, TAPD, Teambition, Coding, Jira, and enterprise development tools.
In practice, a contact to basically have Jira and enterprise from the research tools, in the process of teacher He Mian lean guide, use Jira, for every need, students development and testing, will claim a task, the task cycle from start to finish, after every station communication, update the status of a task, at the end of each quarter, Count the time spent on each requirement and do project management analysis.
3) Bug management tools
Common Bug management tools include Jira, TAPD, Zentao, etc.
Bugs are a valuable system to have sorted and analyzed on a regular basis, not only to discover many test points, but also to assess the quality of the project.
4) Automated test tools
Common automated testing tools include Jmeter, Appium, Postman, Selenium, Robot Framework, Python+ Unitest/PyTest.
Jmeter is used mostly for stress testing and occasionally for interface automation testing.
Appium, for mobile automation.
Postman, for interface testing.
Selenium, for automation of Web applications.
Robot Framework for UI or interface automation.
Python+ Unitest/Pytest for interface automation.
Automation, divided into interface automation and UI automation, relatively high cost performance is interface automation, interface change is relatively small, relatively easy to maintain some, while UI automation, page changes quickly, high maintenance cost, so many projects are not considered to do UI automation.
With practical project experience, Xinxinzi is most familiar with Jmeter and Robot Framework. She used Robot Framework to complete UI automation and interface automation from 0 to 1 of the project. The interface automation coverage reached 90% and was integrated into CI. If there is a problem, send an email in time, greatly improving the smoke test efficiency.
5) Packet capture tool
Common grabbers include Fiddler, Charles, and Wireshark.
Caught, but also in order to assist in developing students screening questions, bugs, through caught, can more clearly the problem is the front or back end, did not send the request, for example, or transmission errors, field error values are front problems, such as interface returns an error or returns the field values is the back-end problems such as wrong.
6) Auxiliary tools
Commonly used auxiliary tools are Navicat, Xshell, Wiki, F12, etc.
Navicat is mainly used to connect to databases, view database fields, or test data reports through SQL, etc.
Xshell is mainly used to connect to Linux server remotely, perform some basic operations on the server, view files in the directory, start services, install software and so on.
Wikis are used to precipitate documents within a company, such as writing interface documentation, test documentation, and so on.
F12, capture interface information, view interface request and return, distinguish front-end and back-end bugs.
4. Basic SQL statements
In the actual test process, such as some lists or data reports, need to use the basic SQL statement to add, delete, change and check, so it is necessary to master some basic SQL statements.
5. Basic Linux commands
In the deployment of Linux environment, do pressure test using Linux commands, familiar with some file management, compression and decompression, performance monitoring, system management, user management, software installation and other commands to meet the needs of daily work.
6. Knowledge of architecture
The knowledge of architecture needs to be combined with the actual project. In daily tests, I can communicate more with the developers to understand the knowledge related to architecture, mainly from the aspects of language, framework, deployment and so on.
A good architecture has high availability, high performance, scalability, and extensibility.
Soft power
Let’s not lose sight of soft power, which is sometimes even more important than hard power.
Soft power includes communication and coordination ability, independent learning ability, document output ability, team management ability and so on.
1. Independent learning ability
In daily testing, it is essential to communicate with product and R & D students. If the communication skills are not good, for example, the requirement points to be confirmed are not clearly stated, which leads to online problems, and the testing scope is not clearly confirmed with the developer, which leads to missed testing, which will increase the difficulty of daily testing.
Independent learning ability, this is very important, we were born in the Internet industry, as we know, technology update is changing with each passing day, often pay attention to the industry new framework, new technology and new trends is very necessary.
2. Document output ability
Document output ability, writing test reports, writing emails and so on are all involved in document output ability. These reports and emails are the results of the usual tests, and also occupy a certain proportion in the performance assessment. If you only immerse yourself in work and do not express the results, it is difficult to get promoted and raised.
3. Team management ability
Team management ability, as the saying goes, learning and excellence is an official. Indeed, we can not stay in the grass-roots post forever, most people will gradually close to the management post, the importance of team management ability is self-evident.
Iii. Career development Direction
The career development of software test engineers can be divided into four directions:
A) Business test engineer
Business test engineers account for a large proportion in the test group, which is the group closest to users. Test engineers in this part are mainly responsible for functional testing, interface testing, automation testing, performance testing, etc.
The business involved mainly includes e-commerce, finance, online education and so on, not limited to Web, client and mobile testing.
Xin xin purple stayed open than 1:10 team, also spent 1:1 team, the proportion of concrete depends on the business form and company resources, some simple program logic, short development cycle, the accident probability is low, low losses, the tester will configure a bit less, and the complex program logic, more profitable, development cycle is long, test the manpower will be sufficient.
At Microsoft, the open ratio is usually 1:1. At Google, it’s 1:10. Again, the status quo determines the flow.
Test and development engineer
Test development engineer, mainly developing the company’s internal test platform/test tools, and also solving some technical problems for business test engineers, such as building automatic test framework, writing some automatic test scripts to improve efficiency.
The requirements of test development are higher than those of business test engineers, who need to write code and measure requirements, that is, students who can develop and test.
Some small companies do not have the position of test development engineer. First, there is no self-developed test platform, but business test students occasionally do supplement, business test students can also write some small scripts and small tools, so there is no special position.
The ratio of test development personnel in xinxinzi’s experience is about 1:10, with 2 test development engineers serving 20 business test engineers. The specific ratio depends on the current situation of the company.
Management post
Mainly responsible for the management of the department, including personnel arrangement of various projects, evaluation of project testing time, follow-up of project testing progress, performance assessment of department members, staff recruitment, team building, etc.
1. Entry-level
In the first two years of software testing, most of the students are junior test engineers. All of them are responsible for the most basic testing work, mainly functional testing, familiar with the business, so as to ensure that the online products do not have major problems.
About 2 or 3 years
Business team leader, as the main test personnel of the project, focuses on the formulation and implementation of test plans, the arrangement of test tasks and the estimation period to ensure that the project can be delivered on time and no major accidents occur online. The number of people in charge is about 3-5.
About 3 or 5 years
Test supervisor/manager, it mainly contains the test phase of the work plan, more attention is a difficult project, and need to master more knowledge of project management, deep understanding of the value of a project, do a good job in project management, cost management, risk management and human management, it will also participate in some recruitment, staff performance, quality management, risk management work.
4. 8 years or above
Test Director, who understands the business goals of the product and is directly responsible for its success. The main tasks of this stage include managing the test team, recruiting personnel, leading the pace of the whole team, survival of the fittest, retaining core personnel, eliminating qualified personnel and improving the team’s combat effectiveness.
At the same time, I shall be responsible for the planning and allocation of resources, continuous improvement of testing ability, improvement of testing efficiency, guarantee of product quality, and be responsible for the delivered products and quality from the perspective of testing.
4) transformation
If you are not very interested in testing, feel that your communication skills are good, and prefer to deal with people, you can transition to the product position.
In the industry, there are many students who have successfully transformed from testing into products, and their subsequent development is very good. Because testing is very familiar with product functions, and there are many overlaps between products and testing, relatively speaking, the difficulty of transformation is not high.
If you are keen on technology and pursue the sense of achievement brought by technology, you can be transferred to the development post. In the actual workplace, the ratio of testing to development is very small. The testing students require a wide range of knowledge, while the development students require refined and deep knowledge.
In fact, there are many choices, you can be a test consultant, a start-up, a didi driver, or a delivery boy, etc., follow your heart, choose the job you want.
Four, six years of software testing experience
A) The interview
1. Interview more
Whether you have the idea of changing your job or not, it is recommended to go out and try every year. On the one hand, you can see more opportunities. On the other hand, you can combine with the external requirements to find your own shortcomings, so that you can always remain competitive and not be helpless when the company suddenly downsizing.
Here are some interview tips:
1) Highlight your strengths
Some students are good at automated interface testing, so they can conduct in-depth analysis before the interview and focus on their performance in the interview. For example, they are familiar with the Robot Framework testing Framework, and have completed the automatic test from 0 to 1 of the project, including environment building, use case writing, CI integration, and email sending of test reports. Try to guide the interviewer further into his knowledge.
Some students are good at script writing or test platform development. Their project experience can focus on describing the functions of the developed test platform, the problems solved, the technologies applied, and the efficiency improved.
Some students are good at business testing and are familiar with all kinds of business. The project experience can focus on describing the business they have contacted, the testing method they use, and the quality of on-line, etc.
2) Let data speak for itself
Data, used to show test results, is very persuasive.
Some students learn to automate tests. When they show their results, they can describe how many modules they have realized automated tests, how many use cases they have achieved, how much test coverage they have achieved, and how much efficiency they have improved.
Some students are good at project management, improving the project process and enhancing the delivery ability of the whole project team. You can describe how many teams you have helped, how much the project process has been standardized and how much the project delivery ability has been improved.
3) Try to match project experience or technical ability with the interviewing company
In the recruitment process, most companies prefer to hire people who have a good match with the current position, because they can get started quickly and save learning costs.
In the actual work process, we may contact with many projects, but in the interview process, try to say the project with a high degree of match with the current position. If the project business does not match, the technical capability stack can also match, which can increase the pass rate of the interview.
In short, is as far as possible to JD on the request depend.
2, look at the face sutra
If you want to enter dachang, you can first see the JD of dachang, and then go online to find the corresponding face classics, some face classics are written very carefully, worth referring to.
Common channels are: Niuke, Zhihu, official account, Jianshu, CSDN, testing forum, knowledge planet and so on.
3. Send your resume
Resume, it is recommended not to cast, can push the best, massage to the opportunity of interview is very high, you can find your friends, classmates, brother, sister, ball friends and so on push.
4. Choose carefully
Some people have a feeling for the big factory, but not every department of the big factory is good. When entering a big factory, it is best to choose the core business department or project team of the big factory, not to marginalize the group, otherwise there is a big difference between ideal and reality.
Before entering the factory, it is recommended to find internal personnel to understand in advance, or in the interview, take the initiative to ask, fully weigh well, and then make a choice.
2) Daily life
1. Proactively communicate
In daily work, I try to be more active, such as communicating with the development students, so that I can deepen my understanding of the project, instead of being limited to the function test. For example, I can learn the implementation language, framework and technical scheme.
More communication with product students, rather than just being a reader of requirements documents, and more questions about why, such as the commercial value of products, user habits, logic of interaction design, etc., are all areas where we can improve.
Communicate more with leaders or department partners, communicate with leaders, take the initiative to express demands, and keep some ideas about their own work. If I am confused about the task or the direction of development, I must communicate with the leader in time and express my ideas to the leader. In this way, the leader will give priority to those who take the initiative to apply when assigning tasks.
For example, some students have been doing pure business testing, which rarely involves automation or performance testing, and they want to develop in this field, they can show their ideas to the leader. In this way, the leader will give priority to the follow-up tasks in this field, and the personal testing will be effective.
If we have ideas but never give feedback, and the leaders do not know our current ideas, they will be satisfied with the current work arrangement by default. Therefore, if there is a good opportunity, they will not turn to their own head. In the same words, the initiative will have a story.
2. Share
Sharing is a great skill to have at work.
Some classmates are keen to study automation test framework or script, or some small tools can improve test efficiency, but rarely share, only oneself in the drum, alone le le than the lele, share, together with, both to improve test efficiency, team can make a good impression in front of leading, kill two birds with one stone.
Sharing, in fact, is also a kind of performance to create personal influence, you are NB is a kind of skill, let everyone know you NB, is really NB.
Sharing every year, many companies will be as an indicator of the year-end KPI assessment of testers, so share more, yes.
3. Summarize in time
To sum up, it is actually a process of review and self-improvement.
All the tested projects, test tools used, ideas and methods, difficulties encountered and solutions can be summarized and recorded, and output precipitation in the form of documentation, which is a good accumulation process.
Next time you encounter the same problem, you can have your own ideas, or share them in a blog, or record them in the company WIKI. For others, you can avoid stepping on the same pit. Altruism is self-interest.
This is the end of today’s sharing, hoping to inspire you on the path of software testing career.
Ps: I am LC Xin Xin zi, the whole network name unified, look forward to your outstanding attention to me ~
Original article, reproduced please indicate the source ~