What is software defect?
Author: bailuyuan
Keywords: software test, software defect
1. Explanation with "bug", "defect" related words
First, let's take a look at the explanations of the words related to software defects mentioned above in English. Translation is as follows:
n bug: (small error, defect, insufficient, negligence ...)
A computer bug refers to an error (Mistake) or failure that exists in your computer program, which makes the program not operating correctly. BUG is generated in the source code of the program or the negligence or error of the program design phase. We know that there is a bug in all applications, just a well-designed program contains a less relatively less, and these bugs do not hinder the procedure to complete its tasks. Programs containing many bugs (often referring to software containing defects) refers to the completion of the processing of the normal functionality of the program and these bugs that contain a large amount of bugs and these bugs are severe.
n Defect: (Defect)
In software engineering (Software Engineering), the software is inconsistent with its requirements, often refers to software that software cannot correctly completes requirements, also known as bugs.
n fault: (fault)
In the documentation of ISO / CD 10303-226, FAULT is defined as abnormal conditions or defects existing in components, devices, or subsystems, often result in failures of the system.
According to the Federal 1037C standard (Federal Standard 1037c), FAULT has the following meanings: 1. An abnormal condition that causes a functional unit that cannot complete its expected function. 2. A fault caused by repeated or catastrophic features. A repeatable functional disorder is considered to refer to this phenomenon reproduction in the same environment. 3. In the power system, two electrical conductors or an unexpected, partially short-circuit between the electrical conductors and the zero electrodes.
n failure: (fail)
ISO / CD 10303-226 Define Failure as a component, device, subsystem, or system that cannot (without the corresponding capabilities) to complete its design tasks. Failure is often derived from one or many errors.
N error: (error)
Error has different meanings in different fields, which represents: Wandering or lavish. Then it implicates in programming (Programming, translation: planning, design) as follows:
An error refers to the code of writing errors, usually inadvertently caused. There are generally two types of major errors, and the syntax error is easy to detect because the code cannot be parsed in the compilation phase without correctly compiling. The other is a logical error because it is not easy to discover with the actual implementation of the code. Two types of errors can cause errors "avalanche" (a small error eventually evolved into a very large error), because the current error code will affect subsequent part of code. For example, the output of a program is an input to another program.
From the above explanation we can see the interpretation of these words is closely related to our daily usage habits, perhaps because people are in front of the bug, the BUG has the largest extension, which means that there are few more and "" Words related to defects. There is a subtle difference between other words for different environments. When our software functions are inconsistent with the demand, we can say this is a defect; when there is an error, we can say that this is a fault; when the program is not completed because there are too many errors When we scheduled, we said that this is a failure; when there is a mistake caused by negligence, we say this is an error. Many "disasters" or major events in history are related to BUG. As the NASA 11 (Apollo 11), there is a failure (1996.4), and NASA's Mars Climate Rail Detectors cannot convert the length unit code (Yard) to rice (METER) ), Etc. BUG in the space exploration of the space results in major losses, of course, such bugs also occur in other areas such as medical, calculation, communications.
2. Defect classification
After understanding the explanation related to the word "defect", discuss how the defects should be classified in the actual software development.
Most of the classifications of defects are now dominated by the coding phase, mainly because this phase is the most powerful stage. Look at the current various defect management software, you can get a number of divisions of defect types, as well as the corresponding priority, which has a lot of common, not only because they are divided by software defects, but also in their existence of similar deficiency. . The following is a simple classification of a defect management software for defects as an example:
Grammatical errors
SQL statement error
Database connection error
Interface definition error
Do not meet the coding specification
Program function error
Document error
Create _ package
Assignment statement
an examination
data
system
surroundings
Here some defect type definitions need to be reviewed the relevant help document, otherwise you can't know its exact meaning, based on this simple classification, below the definition list of bugs:
Table 1-1. Severe level classification number and description of defects
Defect Category Identification / Weight Description
Class A1 / 5.6 Current cranes caused by procedures, illegal exit
A2 / 5.5 dead cycle
A3 / 5.4 Database Anti-lock
A4 / 5.3 Database design does not meet the requirements of the third paradigm or
Description of demand specifications
A5 / 5.2 Data Function Error
A6 / 5.1 connection error with database
A7 / 5.0 data communication error
Class B B1 / 4.3 Program Symptary Error
B2 / 4.2 Forced the program to interrupt due to error operation
B3 / 4.1 Program Interface Error
B4 / 4.0 database table, business rules, default, unhealthless
Wait constraint
Class C1 / 3.4 Operating interface error (including the acquisition of the data window, including
Whether it is consistent)
C2 / 3.3 Print content, format error
C3 / 3.2 Simple input limit is not placed on the front desk
C4 / 3.1 Delete operation does not give a prompt
There are too many empty fields in the C5 / 3.0 database table.
Class D D1 / 2.5 Interface is irregular
D2 / 2.4 auxiliary explanation is unclear
D3 / 2.3 Input Output Not Specifies D4 / 2.2 Long Operation Did not give a user prompt
D5 / 2.1 Tips window text uncoated industry terminology
D6 / 2.0 can enter the area and the read-only area no significant distinction
E1 / 6.1 omfortable partial function
E2 / 6.1 Implementation function is not matched with demand
The specified defect priority is as follows:
P1 ---- Urgent, must be modified immediately
P2 --- Important, modify now
P3 ---- Less Important, relarged modification
P4 ---- Not Important, you can do not modify
P5 ---- Neglect, negligible
The priority here gradually decreases from P1 to P5, which represents the urgency of the defect needs to be modified. The defects of the defects are the impact of the overall system, or the extent to which the demand is not met, the following priority indicates the urgency of the defect needs to be modified, and there is a severity level of defects Relationship. Overall priority starts from type A gradually decrease, such as the levels of A1 and B1 belong to a priority 1. In summary, the defect's severity level and the defect priority definition is different, the former is divided by the defect, the latter is a positioning of the defect to remind the relevant modification. I just give an example here, and the details of the specific defect type are needed to be further discussed.
Because as long as it is wrong, we can call it a defect, but you can't predict that you will errors in the stage of software development, so the scope covered by defects extend to the entire life cycle of software development, and even exceeds this range. Then we can use the different stages of software development as the boundaries of different categories defects, and then subdivide in the inside of each stage.
Figure 1-1. Software Development Process and Possible Defects
Although this type of branch can be clearly defined in the stage to which the defects belongs, the essence of defects cannot be clearly described, and the defect type is required to be refined during each stage. And we have more concern that this defect will affect the development of the system and even future use, so we need more intuitive division of defects according to the cause of specific defects, without having to pay too much attention to it. The defects in that stage. From this perspective, we can classify the defects that actually discovery in accordance with the actual causes, as a standard of defect type. The above is a little my personal idea, I hope to play the role of throwing jade, the division of defects and related processing processes are necessary to make more detailed discussions.
3. Small knot
The above is an explanation from the perspective of the concept, and the division of defect type is briefly discussed. We can simply call the defects as bugs. It is not just a code level error, but it can be a defect found in the design and test phase. Whenever, any proposal that helps improve product quality, any need to pay attention to problems worth tracking, any potential errors, can and should be used as a bug. We can include all kinds of problems existing or found in the entire life cycle of the software, so we can draw a equal sign between defects and bugs. From the management of this level, once the BUG is discovered, the most difficult doesn't have to record, assign people to resolve and track it. The most difficult is to decide to delay some bugs, and even don't even resolve. Such bugs are often discovered in product development, and is due to the defects of the original architecture design, solving such bugs requires a lot of human and time, the influence surface, may introduce new bugs. For such bugs, PM should contact clients, such as market sectors, technical support sectors, and even earlier intervention. If you have no effect, you have decided to postpone, or don't resolve it if you have no influence of this bug migrate. There are still some follow-up work for these decisions, or BUGs that are not resolved. First, you should record in detail in order to solve in the next release; secondly to let the relevant technical support staff are deeply understood, preparing to prepare for the plan. This also raises questions from another angle. How should I divide the defect type and determine the corresponding priority? What is the relationship between them? Limited to the level, there are inaccurate translations. You can refer to the English original in the appendix to more accurate understanding, and you are welcome to correct my mistakes. Appendix: Quoted English Data
n bug:
A computer bug is an error, flaw, mistake or fault in a computer program which prevents it from working correctly. Bugs arise from mistakes and errors in either a program's source code or its design. It is said that there are bugs in all useful computer programs, but well-written programs contain relatively few bugs, and these bugs typically do not prevent the program from performing its task. Buggy programs (sometimes referred to as defective software), are those applications which contain a large number of bugs, and / Or Bugs Which Seriously Interfere with The Program's FunctionAlity.
n Defect:
In Software Engineering, The Non-Conformance of Software To ITS Requirements, OFTEN, But INCORRECTLY, CALLED BUG.
n fault:
In document ISO / CD 10303-226 fault is defined as an abnormal condition or defect at the component, equipment, or sub-system level which may lead to a failure.According to Federal Standard 1037C, the term fault has the following meanings:
An Accidental Condition That Causes a Functional Unit To Fail To Perform Its Required Function.
A Defect That Causes A Reproducible OR Catastrophic Malfunction. A Malfunction IS Considered Reproducture IT Occurs Consestently Under The Same Circumstances.
In Power Systems, An Unintertional Short-Circuit, Or Partial Short-Circuit, Between Energized Conductors or Between An Energized Conductor and Ground.
n failure:
Failure is defined in ISO / CD 10303-226 as the lack of ability of a component, equipment, sub system, or system to perform its intended function as designed. Failure may be the result of one or many faults
n error:
An Error Has Different Meanings in Different Domains. Current Meanings in Some of Those Domains Are Described Below. The Latin Word Error Meant "Wandering" OR "straming".
An error is incorrectly written code, usually not intentional. There are two major types of error. The syntax error is easiest to detect since the code will not compile properly and can not be parsed. The logical error is more difficult to solve since it involves the Working of the actual code. Both type..
-------------------------------------------------- -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
[About the Author]
Name: Zhang Rui, reading a master.
Research direction: software engineering and theory.
Hobbies: sports, music, climbing.
Email: alanker@sohu.com