Preface:

Combine oneself past work experience, comb out some study material.

The “8 Skills” of a Good Software Test Engineer

As a software engineer, need not much ability, but to become an excellent software testing engineer, need to have more ability, I sorted out 8 aspects, each aspect will be divided into many small explanations, convenient and illustrate.

I. Business analysis ability

A. Analyze the overall business process

You can’t test without knowing the whole business

B. Analyze the measured service data

What data is needed to understand the overall business? What does the user need to provide? Which ones are provided by themselves? What can be fake data? What data must be true? Which library can I use when adding data? Understand the database architecture of the whole software, in order to know which data is from which table head out, what is its logic, there is no joint relationship.

C. Analyze the architecture of the system under test

What language was it developed in? What server are you using? What kind of environment do you need to test it? What is the overall test environment like? If it is missing, it is necessary to build the environment and architecture. Generally, when you go to a new company, the structure is set up, you just need to know it, and be familiar with what kind of structure the previous employees used to do it.

D. Analyze the service module under test

What modules are there in the whole software, such as home page, registration page, login page, membership page, commodity details page, coupon page, etc., understand how many modules need to be tested, the joint relationship between each module, and then how to carry out the division of labor

E. Analyze test resources

How many computers do I need, how many phones do I need, what kind of system do I need, what kind of model do I need?

For example, when testing the performance of a website, the configuration of the computer can not meet the standard of testing concurrent 5000 people, so it is necessary to upgrade the hardware configuration of the computer, or to combine multiple computers. When the combination of multiple computers requires several computers, it is necessary to plan in advance.

F. Analyze test completion objectives

What are my performance goals? What are my functional goals? What are the standards I need to meet to get online?

Performance goals, for example, when I’m trying to reach 5000 concurrent users, the CPU usage can’t be higher than 70%, the memory usage can’t be higher than 60%, and the response time can’t be more than 5 seconds

Functional objectives, such as the whole business process runs, all branch processes have no problems, all interfaces can call each other, the overall UI interface has no problems, compatibility has no problems, etc

Figure out these questions, and the test will be very clear

Second, defect insight ability

A. Ability to find common defects

At least you should meet the general defect detection ability, this is the most basic, if you want to even the simplest general defect can not find the word, let alone excellent test engineer, you say you are a test I do not believe

B. Ability to detect hidden problems

In the process of software testing, there are some defects hidden deep, some are performance problems, some are functional problems, it needs to have some set specific conditions will appear such problems.

For example must choose to buy a pair of shoes is what brand, must choose red color is, must choose 44, and must choose to use a specific payment will appear such bug, so this is hidden bugs in particular, for the discovery of such a problem must stronger than others, to find some other people may not be able to find the bugs

C. Ability to detect joint problems

When a defect is discovered, the ability to think about what other problems it may cause is called collateral problems. Instead of saying that after finding this one bug and mentioning this one is done, there must be a perception, maybe there are other places where there is such a problem.

D. Ability to detect hidden problems

Some software may have some operation modules or interfaces for code writing. There are no problems on the surface, but there are hidden dangers. For example, the interface is not stable.

E. Ability to identify problems early

If you can only stay at the interface level, then you have no way to achieve this ability to identify problems as early as possible, you have to wait until the front personnel ready to enter the test after each interface, a month earlier than you, and I can enter the test, then I’m better than you end test time is fast a month, and * * * * a month later, so we pay just began

F. Ability to identify root causes of problems

We need to know what causes this defect and what kind of defect it is. Is it caused by the UI front end personnel or the background interface personnel?

Testers who not only find the bug, but also know why it happened, are great and respected, and bring up the bug in a different way

3. Teamwork ability

A. Reasonable division of labor

Reasonable division of labor is an important guarantee to improve efficiency

B. Assist team members to solve problems

For example, if the testing is on a rush, or if the quality control of the software project is controlled by a team, assisting the team members to solve the problem is particularly important

C. Cooperate to complete the test

The division of labor among the members of a team, their tasks are not the same, this is what we call cooperation. When your work is finished, it’s my turn, and when my performance is finished, it’s your turn. Therefore, after the whole process comes down, everyone should do their own jobs and work closely together

D. Cooperate with development to reproduce defects

I give you the bug, you change my bug, our purpose is only one, is to make the software better, so in this case, we must cooperate with the development

E. Supervise the overall progress of the project

Since is a process of a team, you must go to supervise and urge each other each other, including to urge development to change the bug, because the developers, they sometimes work is very busy, they don’t know what problem need to change, what problem should change after, but often have some defects, it affected the test of the time, affect the test schedule, It’s up to the tester to push the developer and get him to solve your problem as quickly as possible. This thing will make our testing more efficient

F. Take responsibility when problems arise

Those who are willing to take the blame eventually become leaders, while those who are not are still employees

Iv. Professional and technical ability

A. Master the basic knowledge of testing

Basic knowledge is the foundation, the foundation laid, you can be more effective toward the later development, that is, for the future study to do a paving. If the foundation is not good, functional testing will not, want to directly learn performance, that performance is not good

B. Proficient in using testing tools

Being familiar with tools and being proficient in using tools are two different concepts. Being familiar with tools is basically equivalent to not being able to use them. For example, loadrunner can only use a simple recording, enhance the script, think can use, then knowledge will use 1/5, the other 4/5 can not.

C. Understand the operating principles of tools

It is how to send requests to the server, is using what kind of way to send please, is using what kind of way to monitor, its operation principle is what kind of, we want to figure this thing out, so that can help to better use these things. Include some requested protocols, what each protocol stands for, and what it is used for.

D. Perform the test independently

Must be able to complete an independent content, independent work, this thing you leave to me, rest assured that I can deal with you, is such a person

E. Find the cause of the problem

When finding a defect, look not only at its surface, but also at its essence

F. Provide solutions to problems

Spotting a problem isn’t competence; spotting a problem and coming up with a solution is competence

G. Provide a complete test report

Does the test report show how clearly you expressed it? Can leaders understand it? There is also whether you can comb the whole test process to it very detailed, people can through your report, to understand the situation of the whole project, rather than only understand a one-sided situation

H. Understand relevant technical areas

One instance

Five, logical thinking ability

A. Determine the correctness of logic

Interviewers also often test people to give some logic questions, logic questions can analyze you this person thinking? Active or not? And his dimension, including the comprehensiveness of his problem, can be judged.

For example, to buy a commodity, there will often be a lot of problems in its logic, such as its membership level, what level to buy what kind of commodity, its price is different, under what circumstances will give coupons, under what circumstances do not give coupons? How much does it cost to use a coupon? If there is a logic problem here, then the whole business need not be measured again

B. Logical analysis of feasibility

To test the logic of a website, we must first think about this business process may involve what logic, which logic is feasible, some are positive logic, some are reverse logic, to consider the comprehensive, rather than just the positive logic test comprehensive, reverse logic is not considered. The more likely thing to go wrong is reverse logic

C. Mind mapping

What does a mind mapping tool do to help you test more effectively, to help you think more clearly

[D]. Think objectively

When testing, do not just stand in the perspective of the tester to test the whole site, but also more to stand in the perspective of the user, to consider for the user

Six, problem solving ability

A. Technical problems

Improve your personal ability, consult with others modestly, and try to solve problems by yourself

B. Problems at work

To work in any enterprise, you are bound to encounter some unpleasant things in your work, rather than anything that will make you very happy. So to deal with the work of some unhappy things, do not bring it to your work, or your life, as far as possible to communicate with others, to solve the work of the trouble

C. Problems among colleagues

At work, it may involve communication with developers, product personnel, and UI personnel. When communicating with these three personnel, we need to use different communication methods

[D]. Leadership issues

If you don’t feel good about your leader, or if you want to give your leader some advice, don’t go bad-mouthing him to your colleagues or something, what leaders need is a problem solver, not a problem maker

7. Communication and expression skills

A. Communication with technical personnel

Be brief, clear and easy to understand when explaining defects to developers. When serious defects are found, don’t be surprised, but put yourself in the developer’s shoes and think about how to fix the problem. Rather than stepping on developers and showing off their ability to spot problems.

B. Communication with product personnel

When putting forward opinions on the product, you should explain your ideas from the perspective of the user, rather than requiring the product to be modified subjectively.

C. Communication with superior leaders

When communicating with your boss, take the big picture into consideration, not just your own department. And when communicating with the leadership, try to go straight to the theme, do not beat around the bush, when disagree with the leadership, do not directly refute, should be recognized first, and then explain their own ideas.

D. Communicate in group meetings

In the collective meeting do not blindly highlight their own personal ability, do not be chatty, do not be unknown. If you have some ideas, they will make you more important. Don’t blame others or pass the buck in multi-party meetings. Colleagues in all departments need to save face

E. Communication with junior employees

When communicating with subordinates, don’t put on a high profile, don’t let subordinates have a sense of fear, should be more for subordinates to solve problems. Good service department colleagues, in order to better generate cohesion.

Eight, macro control ability

A. Effectively control the test time

The time control of the test cycle should be measured in a variety of ways, such as personnel capacity, number of personnel, project complexity, testing experience of similar projects and so on.

B. Effectively control test costs

Testing cost refers to personnel cost and time cost, do not waste everyone’s time and labor, to let everyone give full play to the maximum value.

C. Develop test plans effectively

The test plan is the core of a project, and it exists to provide evidence for testing. So the test plan must be in accordance with the actual situation, after thinking and measuring the final plan.

D. Effectively control group members’ emotions

The emotions of team members can directly affect the progress and quality of the test. When some team members have ideological problems, they should communicate with each other in time and take necessary measures to solve the problems. We can’t pretend we can’t see.

E. Effective risk assessment

There are many potential risks during any project, such as staff turnover, sick leave, business changes, requirements changes, server or other component failures, etc. A solution should be made in advance to avoid chaos.

F. Effectively control the test direction

The direction of the test refers to the target and scope of the test. The test of many projects is targeted, such as performance test, so in the test, it is necessary to know what the target and purpose of the test is at any time, so as not to waste time on irrelevant business.

Write at the end:

No winter will pass, no spring will come, the past 2020 is an extraordinary year for people all over the world, everyone is strong and brave in the fight against the epidemic, here we applaud ourselves together, 2021 is coming as promised, make good goals to continue to grow, come on!