"Turn" the way of thinking needed to do software testing

Source: Internet
Author: User
Tags diff

First of all, from the needs, users and research and development perspective, in order to contribute to the greatest strength of the product, you can not focus solely on testing to ensure the quality of this aspect, but should be measured from multiple angles.

User thinking

In the work, a part of the test peers, especially the first-time in the treatment of demand is too passive, not too will be the product of the various modules of the business in series, as a result of demand to do the demand, purely looking at the requirements of the document began to do the design of the test case, and did not think of the need to straighten out to

In fact, this stage is also very important demand analysis and functional point dismantling, even if this is mainly the product managers of the main work, but they are not sages, the details of product design may not be comprehensive, or even serious when there will be a large demand loopholes, causing more serious impact. And we should also have this ability, if you can not stand at the company's strategic level to consider what the need to promote business, but also at least to stand on the user's point of view can give users what value, to meet the needs of users, but also in time to find the user in the process of the experience problems.

In the book "netting", the founder of the Embarrassing Encyclopedia, the three principles of user experience are also presented: Don't let me wait, don't make me think, don't let me get bored. I think as a qualified QA is required to have this ability, but in the actual work is still need to have communication skills, after all, to improve the user experience needs the product manager to make a decision, if it is indeed very obvious experience problem, it is necessary to insist the truth to persuade them to optimize, Otherwise, the right to speak to them, we just provide advice, otherwise the work of the * * flavor will be very strong.

Architectural thinking

In order to design an effective test case, we must have a deep understanding of the design of software development, we often have similar things, the business requirements have not changed, and the architecture has been optimized, if simply holding a business based on the use of the case is not accurate and effective testing, Architectural adjustments include: adjustment of the underlying data structure such as sub-database sub-table, Service (SOA), log collection and processing and disaster recovery, and so on, in order to facilitate testing, we also need to understand the development of technology, after all, in the test environment to build and maintain, testing the process of the simulation of various scenarios, especially the abnormal situation, As well as automated testing, automation is difficult to implement without the aid of development techniques.

For example, the system relies on an MQ message from another system to do the corresponding processing, the automation code in order to verify the logic, it is necessary to mock the message (that is, set stub) and sent to a pipeline, let the test application accept and process it, if even MQ is not known, And I don't know how to send a message in the code, that part of the automated test is not going to work.

The above is just an example to summarize the architectural thinking that needs to be included:

1) understand and familiar with the development and use of the technical and development framework, such as the use of spring Mvc,mybatis,redis, front-end HTML,JS, related protocols (depending on the specific circumstances of the project and different);

2) understand the architecture and design ideas of research and development design, and examine whether the development design meets the business requirements;

3) Review technical solutions, to investigate whether to meet the ease of maintenance, easy to expand and performance and security requirements, and in the event of a critical business anomaly when adding alarms, and this is most of the students engaged in functional testing is most easily overlooked.

Test thinking

If you want to deliberately distinguish between user thinking and architectural thinking, in the test process, you need to pay extra attention to: the rigorous test design method to cover the requirements of functional points and code branches, with scene thinking and abnormal situation of the investigation. For this we can refine the summary to the following points:

1. Reverse Thinking

For example, we often need to test the interface, through the input validation output, if we use a variety of inputs can not get the interface design of a certain output situation, we need to reverse the input from the output, in addition, such as verifying some anomalies, the interface needs to return some error code, Using normal means is definitely not available, it is necessary in order to appear this error code with the help of environment and tools to simulate. In addition, we have to analyze a lot of problems, but also inseparable from the reverse thinking.

2. Combinatorial thinking

For example, the software in multi-user, multi-process, multiple execution, and so on, can be unexpected defects, even for complex business scenarios, in the same data operation, different sub-business execution in parallel, it is possible to cause data errors, especially for the core data related to the business (such as money) , whether to add row-level locks are required to be tested, and different business operations in different order of operation, the combination of different dimensions, etc. are likely to appear bug.

3. Global Thinking

That can grasp the whole project in many aspects, the task of multiple teams and division of labor, the overall data flow and business flow, from the global thinking whether to meet the business needs, this is not only to say that the needs of the review, more attention on the upstream and downstream related systems or interfaces, and all involved in cross-team work, Must be more communication and coordination, it is evident in the business understanding is incorrect, the interface definition is wrong, the person with global thinking can be more comfortable in large projects, reflect the potential of their leader, after all, do leader need to pay attention to what other departments outside the department are doing, To make decisions that are good for the big picture.

4. Bipolar Thinking

That is, in the two extremes of the thing to consider, such as the infinite and infinitesimal data, on the data storage, the database plane field is set to int and the order of magnitude supported by bigint, based on * *, if there is more than the length of the int data, then the storage and code, you need to do the corresponding support, Otherwise, it will only show the maximum value of the type, and at the business level there are often two extreme situations, such as merchants to open stores, many times just consider how to open a shop, but ignore the situation. In fact, in the boundary value use case design method also uses the bipolar thinking mode.

5. Simple Thinking

Simple thinking in many ways, such as often very serious bugs are likely to make a very simple error caused, in the processing of the test environment is often not normal access, perhaps just disk space is full or a simple configuration is not correct, in daily work such examples are very many, We also have to be good at a layer of peel off the phenomenon of the problem, to find its essence, like peeling onions, do not start to think the problem is too complex, often things are not so complicated.

6. Comparative Thinking

The comparison of thinking in fact throughout our entire testing career, testing is also a kind of verification, according to the actual results compared with the expected results. And we in peacetime work to troubleshoot problems, there are very many need to compare, such as configuration file differences, environmental differences caused by abnormal results, in addition, we also through the SVN code diff differences to clear the scope of the changes to make a regression strategy. For example, in some of the previous two versions spit out the data differences, the page display differences, you can use the idea of diff to carry out automated work, greatly improve efficiency. Among them, I wrote a long time ago, "I am in Orchid Pavilion This three years (nine) of the Autodiff automated Testing framework" is based on comparative thinking.

In short, the use of the above several ways of thinking, I think in the future testing work, it will be more and more effective and efficient!

"Turn" the way of thinking needed to do software testing

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.