目 录CONTENT

文章目录

The relationship between test development and development and testing

ByteNews
2023-01-05 / 0 评论 / 1 点赞 / 10,137 阅读 / 13,881 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2023-01-05,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Test Development and Practice as I Understand it -- The New Guy


I understand test development

The relationship between test development and development and testing

Before I got involved in test development, I was always thinking about what to do in a test development position. What's the difference between test development and testing? Is test development development? What is the value of test development? At the beginning, I intuitively thought that test development = testing. It was not until I really worked in practice that I gradually understood what the position of test development needed to do.

  1. First of all, look at the difference from the job name: first make clear the abbreviation, because these job names look similar, many people do not know the difference and connection between these three, software development engineer (SWE), test development engineer (SWT), test engineer (TE).

  2. Secondly, from the perspective of different abilities, my understanding is: in terms of code ability requirements, software development engineer > test development engineer > Test engineer; In terms of knowledge breadth requirements, test development engineer > software development engineer > Test engineer; in terms of work communication ability requirements, test development engineer > Test engineer > software development engineer.

Classification of test development

Test development falls into two main categories:

One is based on business-driven test development. It can be understood as a business test engineer, who is only equipped with development ability and quality improvement thinking. This kind of test engineer needs to dive into the business, actively excavate the weak points in the quality of each link in the business process and find ways to solve them. Through process improvement, the development of convenient tools can make their testing work sustainable and efficient.

One is ** test development based on framework platform. This type of test development needs to look at product quality from a higher latitude. They will develop some test platforms and frameworks for the whole research and development process or a large project, and provide these capabilities to various lines of business in the form of services, so as to ensure the overall built-in quality.

Regardless of the category, the core of the test development position is still "testing", the purpose of development is to better service testing, testing should focus on the understanding of testing, and on the basis of this design, can develop design to help testers or development, operation and maintenance personnel improve efficiency and solve real business problems.

3) Nature of Test development

As a business-driven test development engineer, my work mainly focuses on the business. All the testing and development work we do is for the purpose of improving the test efficiency and ensuring the quality of the business.

In fact, I think the essence of test development should be "test that knows development", in order to better serve the "quality" of the product. As the current work requirements of testing are no longer competent for traditional testing positions, we need to take into account all aspects from test design, data preparation, risk control and R&D efficiency improvement in addition to simple "testing" work at the operational level. We need to elevate our work to "quality assurance" at the value level. Therefore, testing is only one of the quality assurance means in the test phase. What we need to do is to ensure the quality of the whole cycle from the requirement review to the delivery and on-line delivery of the product. In addition, we also need to evaluate the quality of our work from various aspects such as efficiency improvement and production safety.

I often fall into a vicious circle. As a business test developer, I think my main job is to ensure the quality of the business, but when it comes to the formulation of OKR, performance, value and other aspects, I mainly use horizontal indicators to reflect the value of testers. I don't understand why this is so. It wasn't until I came across the article "Business Testing: Career Development and Promotion Path Thinking" that I realized this was a challenge facing all business testing companies.

Second, the relationship between testing, development and product

In daily work, we are most exposed to the role of development and product, then what is the relationship between these three?

From the perspective of a product delivery pipeline, some people may simply think that there is a linear relationship between product, development and testing. After the product reviews the requirements, development enters the development process, after the development work is completed, testing begins to test, and finally the whole requirement is put online. But in fact, there is a triangle relationship between the three. The presence of the three in the requirements review stage, the development stage, the technical review stage, and the test stage, the TC review stage, all require the presence of the three, standing in their own role perspective to put forward relevant suggestions, and deliver the products online with higher quality.

3. Skills required for test development

  1. Business understanding ability

All the tests cannot be separated from the business, so the first thing to get familiar with is the business after entering a group, and the business test also accounts for a large proportion in our work, so we need to spend accumulated time to exercise our business understanding ability.

  1. Test ability

  2. The ability to troubleshoot problems

When we find a bug, in fact, the first thing to do is to quickly locate the cause of the problem, which can also help the development of faster location and solution of the problem, the following test process needs to do what degree, also about the level of troubleshooting ability. For example, after discovering a bug, you can first determine whether it is a front-end or back-end problem, data or environment problem, and locate the problem through various methods such as interface return, log troubleshooting, code viewing permissions, specific location to code debugging, etc.

  1. Test effectiveness

In addition to manual testing, we also need to use automated methods to improve the efficiency of testing. We can write some automated scripts to reduce the repetitive work brought by testing, and we can also develop an efficiency platform to serve as the infrastructure support for quality assurance. Efficiency tools are like swords, which can greatly improve the efficiency of our work.

  1. Awareness of production safety

If we compare the efficiency platform to a sword, I think production safety is just like a shield. We can carry out our business quality assurance work through monitoring, fault rehearsal, contingency plan, rapid recovery and other ways to ensure that the whole product will not have problems or the risk will be minimized if there are problems.

  1. Good at searching

The internal knowledge base of the company, such as ATA, language bird, and Doding documents, and the external knowledge base, such as GitHub, CSDN, Zhihu and so on, give us a lot of space to learn. However, due to the complexity of knowledge, we also need to be good at searching and finding the knowledge and tools suitable for our own.

  1. owner awareness

In fact, it requires a strong sense of responsibility and initiative. For example, the owner of a project should have the ability to control the overall situation, know how to divide and arrange tasks, coordinate and communicate, promote the progress of the project, and have the ability to anticipate and get results. Ha ha, it's hard to be honest, but I think it's part of being an Ali.

Four, how far do we need to go in the testing process

In fact, from the point of view of the life cycle of the problem, it can be divided into: discover the problem -> locate the problem -> solve the problem -> prevent the problem

  • Level 1: Find problems, raise bugs and allow development to locate the cause of problems;

  • Level 2: Locate the problem and know what the cause of the problem is. This requires checking the database, logs, and even code to locate the problem. In the mention of bugs, to give some possible suggestions to help the development to locate the problem, which itself is a reflection of the value of testing.

Level 3: Solve the problem. If the test solves the problem, there is nothing to develop, or it can better assist the development to solve the bug.

  • Level 4: Prevent problems. After solving problems, there should be strategies to prevent such problems and better guarantee quality

In fact, in the process of work, we are often in a state of level 2, but the positioning of the problem is also a test of technology and familiarity with the system, if you can accurately locate the cause of the problem, it can also reduce the workload of development troubleshooting problems.

Five, we need to have the quality

I have been working for a long year and summarized it in my daily work. I think as a test development student, I should have the following qualities:

  1. Communication skills

The test needs to deal with a large number of people and requires strong communication skills. If it is not clear, the work cannot be carried out. In the process of communication, we should firstly organize language and logic, and then objectively feedback the truth of the matter. This is always a challenging and interesting job for me, who has a little social phobia. In fact, good interpersonal skills will greatly improve work efficiency.

  1. Be careful and patient

Testing is to assist R&D to locate errors and help R&D quickly complete development work, so we need to be very careful to find some small errors. Some testing procedures may be repetitive and boring, which requires a lot of patience. Especially with business tests, we often repeat the same steps many times, which is why people want to use automation to free their hands.

  1. Logical thinking and problem analysis

When encountering problems, the test needs to quickly analyze and locate the problems, and be able to repeat them, clarify the logic to the research and development, and minimize the research and development of bug positioning and repeated modification, which actually means that we need to have a strong familiarity with the product, so that we can locate the problems more quickly and accurately.

  1. Learn fast

Test to learn a wide range of things, the need to master the knowledge and skills are also very much, so it is very important to have the ability to learn quickly, otherwise it is very easy to be eliminated, but fortunately the company has a lot of knowledge base and technical ATA, this is actually for a new person, is a good opportunity to learn, but sometimes things too much, also want to look at it.

  1. Responsibility

The work of testing is to ensure the quality of products on line, so it requires a strong sense of responsibility. I think every worker in every position needs to have such quality, so I don't need to say more.

  1. Team assistance

The testing work will deal with various personnel. While doing my own job well, I should actively and consciously pay attention to the progress of the project and the situation within the group. I should have a big picture view and put the interests of the team first, and be willing to share my personal experience.

  1. Document preparation

Excellent documentation can bring benefits to myself as well as to future generations. I have always been fond of doing documentation, because I think good memory is not as good as bad writing (I have a bad memory). Sometimes writing down in writing can remind me of myself, but also can exercise my summarizing ability, and I can also share it with others when they need it

  1. Test the workflow and concerns

First of all, we should intervene in the requirements review stage, and in each work stage, the test needs to have the corresponding concerns and input and output. Next, I will summarize the testing workflow of my daily work and what needs to be done in each stage of the test

1. Requirements review stage [Attention]

Testers need to conduct requirements analysis, familiarize themselves with technical implementation options, whether the design covers business requirements, and risks, and provide input for test analysis and test case design.

Main concerns: architectural justification, risk assessment, testing strategy (manual or automated or otherwise).

  • According to the size of the requirements to determine whether to test by testers or development of self-test (according to the situation to determine whether to provide smoke test cases)

2. Design Test cases [Focus on]

  • Write test cases and smoke tests according to prd

  • Write smoke test cases (depending on the size of the project, if the project transformation is relatively large, or a new project, it is recommended to write, provide to the relevant developers during the use case review, after the smoke test case passed, formally proposed test).

  • The test students in the project need to provide smoke test cases to the R&D students, and agree with the front-end students that the smoke test cases require 10% of the total use cases.

3. Test case review [depending on requirement size]

  • 1 to 2 days before the original test time, according to the size and time of the project to decide whether to need this link

  • Output: Use case review meeting minutes, modified test cases, smoke test cases (for development )

4. Pre-test [depending on the size of demand]

ps: Normally, it is organized by the developers. If they ignore it, the testers can ask for a test preview according to the actual situation to ensure the quality of the test

  • Specification: The smoke test cases reviewed according to the test case will be rehearsed by the developer. If all the smoke test cases pass, the test will accept the test; otherwise, call back and send an email stating that the smoke test fails and the next test proposal time is expected

  • Output: Email of smoke test result (whether it passes or not needs to be sent by email, and give the expected release time point and risk)

  • Put the test into the first time after the test is proposed. If the preview fails, inform the risk

5. Testing phase [focus on]

  • Test environment, test cases, test data, etc., need to be prepared in advance during the test phase;

  • Defects need to be submitted and followed up in time during the testing process. Bugs are generally managed by aone. It is best to use the defect format: [requirement name] specific defect name for the convenience of subsequent search and classification;

  • Business related consulting: PD+ business; Product style related consultation: product +UED; Development related consulting: front-end + back-end;

aone Defect Handling Specification

  1. After the defect is fixed, the developer needs to fix the bug (R&D)

  2. After the defect is repaired, verify the defect repair. (Test students)

  3. The defect verification is passed. Before closed closes the defect, the corresponding defect type and defect cause should be classified. (Test students)

  4. If the defect verification is not passed, reopen the defect and continue to submit for development. (Test students)

6. Release preview [Function acceptance (can be multiple rounds)]

  • Testers book meeting rooms in advance and send meeting invitations to relevant personnel

  • Meeting minutes: During the rehearsal, the meeting summary should be recorded, which bugs need to be repaired and put online, and which bugs need to be iterated later (pd+ business evaluation).

7. Release a plan

  • Release plan writers focus on development and testing;

  • Purpose: To write test plans, testers will make clear the key points and regression points of this test, developers will make clear the release of applications and release smoothly, avoid online bugs caused by omissions, wrong release order and other reasons, so as to backtrack the code.

8. Official release

  • Tracking the release situation, can require the development to synchronize the release pace in the group, after the release, the first time online verification (after the release, @pd+ business, they can carry out online acceptance at the same time);

  • Different businesses may have different release Windows, so it is necessary to pay attention to whether it is in the release window, otherwise urgent approval may be required;

  • Since many online problems are caused by changes, pay special attention to whether there is any leakage when Posting again;

  • General release

1

评论区