Interview question: What are the causes of software testing defects?

There are various reasons for software defects, generally there may be the following reasons:

1. Errors caused by requirements expression, understanding, and writing.

2. Errors caused by system architecture design.

3. The development process lacks effective communication and supervision, or even no communication or supervision.

4. Errors made by programmers in programming.

5. Hidden problems in the software development tools themselves.

6. Software complexity is getting higher and higher.

7. Does not conform to user needs, even if the software implementation itself is flawless.

8. Defects caused by external application environment or electromagnetic radiation.

All of the above situations may cause defects, but the common defects are nothing more than the following four situations:

【1】Omission

The specified or expected requirements are not reflected in the product, and the user specifications may not be fully analyzed and realized in the requirements research or analysis stage, or may not be fully realized in the subsequent product realization stage. In layman's terms, one is that the requirements are not recorded at all, and the original requirements of customers are missed in the requirements itself; the other is that the requirements are complete, but some requirements are omitted during the design and development stage.

[Case: Omission of OA system requirements]

During the OA system requirements research, the user proposed the need to implement the post recovery function, and the notification information sent could be revoked when the other party did not check it. The requirements development engineer did not record this requirement during the requirements research stage, resulting in the omission of this requirement.

Another situation is that the requirements development engineer has clarified the requirements in detail in the requirements specification, but the development engineer missed it during the implementation.

【2】Error

The requirements are correct, but the specifications are not implemented correctly in the implementation stage. There may be errors in the outline and detailed design, or coding errors. That is, there are such requirements, but the realization of the requirements is inconsistent with the user's expectations. For example, in the sorting function, the user expects to be sorted by price in ascending order, but when it is implemented, it is sorted in descending order.

[Case: HTML Substitution Injection Error]

When adding a book category in the OA system, the category name is inserted into the HTML code, and the system fails to shield the code without security defense, resulting in the successful addition of the corresponding code function, as shown in Figure 5-1.

insert image description here

The flaw here is a typical functional error, which can be characterized as a security flaw, and the system shows the delete operation function code due to the injected HTML code.

【3】Redundancy

Requirements that are not covered by the requirements specification are realized, that is, requirements that are not mentioned or unnecessary by the user are realized in the object under test. For example, the query results are not mentioned by the user and are displayed in different categories, but in actual implementation, they are displayed in different categories. displayed.

Generally speaking, from the perspective of user experience, if the redundant function does not affect the normal use of the function, it can be retained unless there is a large application risk.

【4】Dissatisfied

In addition to the above three common defect types of omission, error and redundancy, the dissatisfaction with the implementation can also be called a defect. For example, during the design and development process of the system for middle-aged and elderly people, a fashionable and avant-garde interface and small and elegant fonts are adopted, which makes end users uncomfortable and unclear. It is also a defect that conforms to the user's usage habits.

During the testing process, the test engineer needs to keep in mind that no matter how perfect the function is, no matter how beautiful the interface is, if the system is not what the user expects, the system will be completely useless.

[Case: User Experience Defects]

Figure 5-2 shows the display interface after the user jumps through the "My Desk" process link. In the figure, you can see: "Please pay attention to check the pending process: leave application: [2006-01-01 04: 37:37]” was displayed with an inappropriate line break, and 04:37 was wrongly wrapped, this type of error can be considered as a defect in user experience.

insert image description here

Guess you like

Origin blog.csdn.net/weixin_43802541/article/details/128471945