Introduction to people who write software for the public, probably received very poor bugs (errors in computer program code or programs - Translator's Note) report, for example: "Not easy" in the report The reported content is meaningless; the user does not provide enough information in the report; false information is provided in the report; the reported problem is due to the user's failure; the report is due to the error of other programs Produced; the reported problem is due to network errors;
This is why "Technical Support" is considered a terrible job because there is a poor bug report needs to be processed. However, not all BUG reports are inevitable: I maintain free software in my spare time, sometimes I will receive very clear, help and rich in content.
Here I will try my best to write a good bug report. I very much hope that everyone will read this essay before reporting BUG. Of course, I also hope that users have read this article before reporting BUG.
Simply put, the purpose of reporting BUG is to let programmers see the error of the program. You can demonstrate, or give a detailed steps that can result in errors. If the program is wrong, the programmer will collect additional information until the reason is to find the wrong reason; if the program does not have an error, then they will continue to pay attention to this problem, collect the relevant information.
In the bug report, try to make what is a fact (for example: "I am on the computer" and "XX appear") What is speculation (for example: "I think the problem may be ..."). "). If you prefer, you can save the speculation, but don't omit the facts.
When you report BUG (since you have already done this), you must want BUG to get timely amendment. So, at this time, any extensive or embarrassment of the programmer is not complementary - because this may be a programmer's error, or it may be your mistake, maybe you have the right to get angry, but If you can provide some useful information (not an angry word) perhaps BUG will be faster. In addition, please remember: If it is a free software, the author is provided to us is already good, so if too many people have rude to them, they may "put away" this kind.
"The program is not easy"
The programmer is not a mentally helpful: if the program is not easy, they can't know. They don't know must be because the program is working properly in them. So, you have made some operations with them, or your environment is different from them. They need information, and report BUG is also to provide information. The more information is always, the better.
Many programs, especially free software, will publish a "known BUG List". If the bug you find is already in the list, you don't have to report, but if you think that you have a rich information than the list, then you should contact the programmer. The information you provide may make them more simply fix bugs.
All mentioned in this article are some guidelines, no one is the guidelines that must be adhered. Different programmers will like different forms of BUG reports. If the program comes with a set of criteria for reporting BUG, be read. If it confuses with the rules mentioned in this article, then please use it.
If you are not reporting BUG, it is sought to help, you should show where you have reached the answer, (for example, I saw the second section of Chapter 4, but I can't find a solution.) This will make the programmer to understand where the user likes to find the answer, so that the programmer makes it easier to use the help document.
"Demo give me"
One of the best ways to report BUG is "Demo" to see for programmers. Let the programmer stand in front of the computer and run their program and point out the error. Let them look at you to start the computer, run the program, how to operate, and how the program is backed by your input. They wrote their own software, they know which places will not have problems, and which places are most likely to have problems. They instinctively know what should be paid attention to. Before the program is really wrong, they may have noticed that some places are not right, these will give them some clues. They will observe every detail in the program test and select the information they think useful.
These may not be enough. Maybe they feel more information, you will ask you to repeat the operations just now. They may have to communicate with you during this period so that the bug is reappeared when they need it. They may change some operations to see if this error is an individual problem or a related type. If you are not lucky, they may need to sit down and take a bunch of development tools to spend a few hours. But the most important thing is to let the programmer next to the computer at an error. Once they see the problem, they usually find the reason and start trying to modify.
"Tell me what to do"
Today is the network era, the era of information exchange. I can give my own program to a friend of Russia, of course, he can also give me some suggestions with the same simple way. But if my program has a problem, I can't be next to him. "Demo" is a good way, but often can't do it.
If you must report BUG, and at this time, the programmer is not around you, then you have to find a way to let Bug now. When they see the error in your own eyes, it can be handled.
Exactly tell the programmaker what you have done. If it is a graphical interface program, tell them which button you press and press in any order. If it is a command line program, it is precise to tell them what command you type. You should provide you with the commands and programs you typed as much as possible.
Tell the programmer all the inputs you can think of, if the program is to read a file, you may need to send a copy of a file to them. If the program needs to communicate with another computer through the network, you may not copy the computer, but at least say the type of computer and which software installed (if possible).
"Where is wrong? I have seen everything in my opinion!"
If you give the programmer a long string and instruction, they did not have an error in the future, that is because you didn't give them enough information, it may not appear on each computer, your system may be in Some places are different. Sometimes the behavior of the program may be different from you, this may be a misunderstanding, but you will think that the program is wrong, but the programmer believes this is right.
It is also necessary to describe what happened. Accurate description you have seen. Tell them why you feel that you see is wrong, it is best to tell them, what you think you should see. If you just say: "The program is wrong", then you are likely to miss very important information.
If you see the error message, you must carefully and accurately tell the programmer, they are important. In this case, the programmer will correct the error without going to find an error. They need to know what is wrong, the error message reported by the system just helped them. If you don't have a better way to remember these messages, write them down. Only the "program has a mistake" is meaningless unless you have a message on the error message.
In special cases, if there is an error message number, you must tell these numbers. Don't think you can't see any meaning, it doesn't make sense. The error message number contains various information that can be read by the programmer and is likely to contain important clues. Give the error message number because the computer error is often dissolved in writing. Tell your mistake in this way is the best way.
In this case, the programmer's tired work will be very efficient. They don't know what happened, and they impossible to see the scene, so they have been searching for valuable clues. Error message, error message number, and some inexplicable delays are very important clues, just as important as fingerprints when handling cases, keep it. If you use a UNIX system, the program may generate a core dump. The kernel output is a particularly useful clue source, don't throw them. On the other hand, most of the programmers don't like to receive Email containing a large number of kernel output files, so I will ask before sending an email. It is also important to note that the kernel output file records a complete program state, that is, any secret (probably processed some private information or secret data) may be included in the kernel output file.
"After the problem, I did ..."
When an error or bug occurs, you may do a lot. But most people will make things worse. One of my friends accidentally deleted all of her Word files in the school. She renounced Word before looking for someone to help, and running over the fragmentation process, these operations were unpopularized for recovery files because these operations were The file block of the disks is chaos. I am afraid that there is no anti-delete software to restore her file in this world. If she doesn't do anything, maybe there is a good hope.
This kind of person seems to be forced to the corner (the animal - translator's Note): back to the wall, face death, fight, crazy attack. They think that doing something is always better than anything. However, these do not apply when handling computer software issues. Don't exercise, make an antelope. When an antelope faces the situation or scared, it will move, it is not attracting any attention, and at the same time, it is also the best way to solve the problem (if antelope has a technical support hotline, at this time Wire.). Then, once it finds the safest action plan, it will do it.
When the program is abrupt, stop any operations that are doing immediately. Don't press any button. Look at the screen carefully, pay attention to those abnormal places, remember it or write down. Then click "OK" or "Cancel" to select a safest. Learn to develop a conditional reflection - once the computer has a problem, don't move first. To get rid of this problem, turn off the affected procedure or restart your computer is not good, a good way to solve the problem is to make the problem again. Programmers like to be reproduced, happy programmers can fix bug faster and more efficiently.
"I think the jump of the particles is related to the polarization of the wrong
Not only non-professional users will write poor bug reports. I have seen some very bad bugs report from the hand of programmers, and some are still very good programmers.
Once I work with another programmer, he has been looking for the bug in the code, he often encounters a bug, but will not solve it, so I will call me help. "What is wrong?" I asked. And his answer is always some comments about bug. If his view is correct, it is indeed a good thing. This means that he has completed half of the work and we can complete the other half together. This is efficient and useful.
But in fact, he is often wrong. This will make us spend half an hour to look back and forth in the original code, and actually issues in other places. I am sure he will not do this for the doctor. "Doctor, I have to have HydroyOdyne (really sick - translator), give me a single child", people know that it should not be said to a doctor. You describe the symptoms, which place is uncomfortable, where to hurt, get rash, fever ... Let the doctor diagnose what disease you have, what should be treated. Otherwise, the doctor will send you as a suspicious or mentally sick patient, which seems to have nothing wrong. It is also the same as programmers. Even if your own "diagnosis" is really helpful, just say "symptoms". "Diagnostics" can be said, but "symptoms" must say. Similarly, there is a use of a source code for BUG in the bug report, but it does not replace the BUG report itself.
If the programmer is in addition to additional information, don't pay. I once reported to me, I let him try a command, I know this command is not easy, but I have to see if the program will return an error (this is very important clue). But this old brother didn't try it at all. He said in reply "" It's definitely not easy ", so I spent some time to convince him to try the command.
A multi-dynamic brain is helpful to programmers. Even if your inference is wrong, programmers should thank you, your trial makes their work easier. But don't forget to report "symptoms", otherwise it will only make things worse.
"It's a strange, just not used it, how is it now?"
"Intermittent Error" is really letting programmers. In contrast, a series of simple operations can result in errors that occur. The programmer can repeat those operations under a convenient condition, observe every detail. Too many problems can not be resolved in this case, for example: programs have been wrong every week, or accidentally missing, or never errors in front of programmers (programmers will leave. ". Of course, it is the deadline of the program to, and it must be wrong.
Most "intermittent errors" are not true "intermittent". Most of these errors are associated with certain places. Some errors may be generated by memory leaks. Some possibilities may be caused by modifying an important file when they are inappropriate, and some may happen in the first half of each hour (I did encounter This kind of thing).
Similarly, if you can reproduce the bug, the programmer is not, it is likely that their computer and your computer are different in certain places, which have caused problems. I have written a program, and its window can huddle into a small ball to stop on the top left corner of the screen, which can only work on the 800x600 resolution on other computers, but can work at 1024x768 on my machine.
The programmer wants to know anything related to the questions you found. If you have something to go to another machine, try a few times, twice, three times, see if the problem is often. If the problem occurs after you have a series of operations, it is not that you want to make it will appear, which may be a long run or handle a big file. When the program crashes, you have to remember what you have done as much as possible, and if you see any graphics, don't forget to mention it. Anything you provide is helpful. Even a general description (for example, when there is an emacs running in the background, the program is often an error), although it is not possible to provide direct clues that cause problems, it may help programmers reproduce the problem.
Most importantly: The programmer wants to determine that they are processing a real "intermittent error", or an error that appears on another type of computer. They want to know many details about your computer so that your machine is different from them. There are many details depend on a specific program, but there is a thing you must provide - the version number. Program version, operating system version and version of the program related to the question. "I put the disk into my windows ..."
Issue is clear in a BUG report is the most basic requirement. If the programmer doesn't know what you mean, then you have not said. The bug report I received from all over the world, many of which came from non-English countries, they usually apologize for their own English. In general, the BUG report sent by these users is usually clear and useful. Almost all unclear bug reports are people from native language. They always think that as long as they will talk about it, the programmer will understand.
accurate. If there are two ways to do the same thing, please indicate which one you use. For example: "I have chosen 'load'", it may mean "I click on 'load'" or "I press 'Alt L'", "said what method you use, sometimes this There is also a relationship.
detailed. There are few less information! If you have said a lot, the programmer can go some part, but if you say too little, they have to go back and ask you some questions. Once I received a bug report, there was only one sentence. Every time I asked him more, he had a sentence every time, so I spent a few weeks before I got useful information.
Use pronouns with caution. These words, such as "it", "form", do not use it when they refer to unclear. Take a look at this sentence: "I run FooApp, which pops up a warning window, I tried to turn off it, it collapsed." This expression is not clear, the user turns off which window? Is it a warning window or the entire FooApp program? You can say this.
inspection. Reread the bug report you wrote again, do you think it is clear? If you list a series of operations that can lead to the error, then do it, see if you miss one step.
summary:
The primary purpose of the bug report is to let the programmer see the mistakes. If you can't do it yourself, give them a detailed steps to make the program error.
If the primary purpose cannot be achieved, the programmer can't see the program error. This requires the second purpose of the bug report to describe where the program is absent. Detailed description: What do you see, what you want to see, write the error message, especially the "error message number".
When your computer did something you can't think, don't move! Don't do anything before you calm down. Don't do what you think is unsafe.
Try to try your own "diagnosis" program error (if you think you can,). Even "diagnosis", you should still report "symptoms".
If the programmer needs, please prepare additional information. If they don't need, I will not ask you. They will not deliberately be difficult. You must have a program version number on your hand, it is probably a necessity.
Expand clear, make sure you mean not to be misinterpreted.
In general, the most important thing is to be precise. Programmers like exactly.