! [performance test platform of best practices | solve user pain points, is more important than the stacked function] (https://p3-tt.byteimg.com/origin/pgc-image/b053d759c5054ed9a44de9c7507e272d?from=pc)

This article is to share the best practice experience of excellent students of Hogwarts Testing Institute on the development of test performance platform (international mall smart materials platform).

What are the difficulties in developing a test performance platform?

On the test efficiency platform development, from the technical guidance of the article online abound, but from 0 to 1 comprehensive test platform development experience is relatively few articles.

Moreover, even for the test students who are not so good at writing code, there are no technical difficulties in the platform development process.

The hardest part is choosing the most appropriate implementation to solve a particular problem on your team in the fastest time with the fewest resources.

In this paper, I would like to record and share my experience in the company’s international mall project, as the intelligent material project PO, to build a tool platform for rapid creation of testing materials from scratch. In four months, the project iterated 5 versions, served nearly more than 200 users, helped the team to quickly create more than 2,000 materials, roughly equivalent to saving an employee more than one year’s man-hours.

The following is a summary of the project experience, and I look forward to discussing with you.

First, why do we do this test platform?

The creation of materials for the international mall (commodities, coupons, promotions and orders, etc.) has been the biggest headache for many roles in the project. Part of the site is looking for business to create, part of the site is looking for responsible for the corresponding module of the test students to create. Either way, this back-and-forth communication is extremely costly. In the most extreme cases, material preparation can take up a third to a quarter of the test time. Therefore, to solve the problem of creating test materials can break through the bottleneck of relevant test manpower in the mall.

Build the platform from zero to one

Project BRD

At the time of receiving this task, there was no detailed requirements, only a problem scenario. Therefore, according to the problem scenario, the core value of the platform should be sorted out, and what kind of problems should be solved. This extends the scope of the problem to be solved. I wrote the BRD according to my own understanding, and this BRD includes the following:

  • 1. Function List and Description

The granularity can be very coarse, which is a positioning for the early stage of the platform. Don’t plan anything big and complete until you have a demo. The functions realized must be the functions that everyone may use. For example, what we did in the first phase is to create test goods by selecting templates, because all materials are based on goods.

  • 2. Project planning and scheduling

How long the whole platform is planned, what to do in the first phase, how long to do, and how much manpower to use. The general idea is this:

Version Number Schedule time function list Input manpower

V 0.881-1.151. 2. Function B 3. Function C front-end 15 days/person; Background 15 days/person V 1.01.16-1.311. 2. 3. Front end of function F 15 days/person; Background 20 days/person V 0.92.1-2.151. Function G; 2. Function H; 3. Optimized function A front-end 20 days/person; Backstage 25 days/person

All of my colleagues were more or less involved in the project, except for me, who was full-time from start to finish. Therefore, a project plan containing human input is extremely critical, which is the proof to apply to the leader for human support. If a colleague does half of the work, the business is too busy to do other things, the leader will see what function to achieve in this period, the date will be online, how much manpower is missing, it is clear at a glance. Before the start of the project, I don’t know what obstacles the specific function will encounter and how much manpower will be needed. I can estimate roughly, and then adjust dynamically during the actual project development.

  • 3. Product prototype

As an internal tool platform, there are few design and product resources to support it. Moreover, the product does not know what kind of thing you want to make, your process, your expectation and your appeal. You need to think clearly and work out a framework. If possible, you can ask your product colleagues to help you draw the product prototype that everyone is familiar with in daily work. Of course, you can also draw it yourself, as long as it is convenient for other participants to better understand and cooperate. As for the functional details and detailed interaction, I can gradually fill in and improve myself in the future. There is no need for the product to intervene again.

  • 4. The UI design

This is the age of face, and a good interface will make you want to linger for a few extra seconds, and those extra seconds will help you gain valuable attention. Maybe he, the active user, saw something he was interested in. If you don’t have the resources that your business needs, asking your design classmates to help you come up with a set of page style specifications is still up for grabs. Do front-end pages as far as possible in accordance with this style specification to do, not ugly to where. People who look at it find it enjoyable and naturally willing to use it.

  • 5. Demand

First of all, you need to be clear and clear about your platform tool. What are its core values? What is the core problem it addresses? Around these two problems, the product form will have a rough outline, based on which you can fill in the function itself.

After all, the perspective of a person or several people is limited, so we can collect the needs of future users and listen to their pain points and appeals. Make sure you filter when you get these things. The requirements collected from the user side are noisy, and depending on their position and perspective, they may give you a niche requirement that only solves the problems of a few users. Come back to those two questions: What are the core values? What is the core problem solved?

For example: the creation of goods in the mall will involve very, very many fields, including general attributes, sales attributes, brands, categories, shipping templates and so on. When doing the creation of goods and materials, is it necessary to give the user a lot of input boxes or drop-down boxes, so that it can meet the test needs of many different scenarios. NO! Commodity creation interface, we only give the user a dropdown box to select the platform defined by the most commonly used several commodity templates, two input boxes a input price a input inventory, there is no, easy to use, is a complete fool to create.

Why do you do that? Most people aren’t sensitive to the myriad fields of goods, and they don’t know what they mean. Giving him so many inputs is confusing him, and he doesn’t know how to start. ** They simply want a certain type of test product that works. ** We selected some of the most commonly used types of goods (combinations of different fields) and pre-defined them through templates for users to choose from. Users who have high requirements for certain fields of goods have already understood the meaning of these fields and can operate by themselves at the operation end. Even if the requirements for multi-field selection are met, they may not be used later. Because you don’t have a full operation.

This has two advantages:

  • Greatly reduce the user’s starting cost;
  • The implementation is also relatively simple, do not have to deal with too much logical judgment, saving valuable development time;
  • 6. Subtraction

Making platform tools is also making products. To make a product, you have to subtract. Optional functions can not do not do, interaction and function to reduce the cost of users to start. For example, the fewer picture elements in photography, the more prominent the theme, so that the viewer can grasp the core of the picture. The value of a tool platform is to improve work and productivity. If users have to read a long document and study a long time to use the tool, I personally think it has failed half way. Sometimes we think inertia, want to present the function can meet the demand, as far as possible to deliver to the user, without considering how much the user can digest how much really use. To substitute the user’s usage scenario in, to help him properly solve the platform can help him to solve the problem, no redundant operation, selection, input. Danshari is difficult, but important.

3. Cross-team collaboration

Building a tool platform inevitably involves the support and assistance of other teams. For example, a material platform involves multiple R&D teams and departments, some of which are even cross-regional departments. A special thanks goes out to our colleagues who helped us build the platform. They take time out of their busy schedule to help tackle and resolve issues that have nothing to do with their business or performance.

Later, after contacting more departments and people, I gradually had a little way and experience to seek help.

  • 1. State your intention of coming

When asking for help from colleagues you don’t know, be clear and concise about your purpose and intent.

  • 2. Find common ground

For example, after we set up the material platform, for the r&d colleagues of some modules. Testers can spare more time to properly test their development requirements, and the material platform solves the accidents caused by the improper creation of test materials, so no one calls them to deal with emergencies. Finally, when they debug their own functions, they no longer need to ask test students to help create materials.

  • 3. Risk aversion and disarming

The material platform will adjust the interface of many modules. The minor one will trigger the alarm if the entry parameter is wrong. The serious one will expose the improper use of the interface and there will be certain accident risk. I was trying to help you, but I accidentally got myself in trouble. That requires us to reassure him beforehand. I talk to them beforehand about the risks I have in mind and what I can do to avoid them. For example, when I was adjusting the interface, I first retrieved the log simulation input parameter on the line, and then adjusted the interface in the test environment. When there was no problem with the adjustment, I cut the pre-dispatch or online. Another example is that when I switch the interface created by commodities, I hardcode the attributes of a commodity to isolate it from online formal commodities and avoid accidents caused by improper use or misoperation by users.

  • 4. Thank you

After the launch of the platform, in the list of developers, I would like to thank the colleagues who have helped and provided assistance. This platform is originally for internal use, no matter how long the list is long. Although they may or may not look at it, it will be nice to see how much you value their contribution when you search for your name on this list.

4. What technical preparations should be made to make the platform as a test?

My answer is, learn with what you use.

Personally, I have only written Python automation scripts before, and learned some OC and Swift when testing iOS clients. The background technology stack of material platform was Spring. At that time, I was completely confused about how to use Java and how to use Spring. After the architect helped us to design the architecture, I bought a Spring book combined with online teaching videos, learned dependency injection and slicing, and clone a Spring project within the company.

Take a look at the structure and what configuration files are necessary to start a project. A simple HTTP request from contorller to the database needs to go through what layers, and what processing. At the beginning is very painful, are unfamiliar concepts and nouns, after writing through one or two interfaces, although there are still a lot of not, but know in Google and Baidu through which keyword search. Later, due to the shortage of front-end development resources, and the use of the previous routine, quickly began to use vue. js, through the first bug solving to learn the use of vue. js, and then gradually familiar with the function can be slowly developed.

Technological innovation is fast, and so is the industry. ** Regardless of development or testing, we are faced with a rapidly changing testing framework, technology and tools. In this fast-changing industry, it’s becoming increasingly rare to have a one-trick plan that lasts forever. With a solid foundation of technical skills, such as mastering a programming language, knowing the principles of computer and network transmission, several common design patterns of programs, etc., you can quickly master and control new frameworks, technologies and tools. The upper layer is constantly changing. When you go down, the principle of the bottom layer is almost the same. No matter how the shape of the building changes, it needs foundation and bearing capacity.

Above, HOPE that these for everyone in the test platform to build some ideas on the help.

Click to collect: Automation + side open + performance + RESUME + interview core tutorial materials