Sometimes I come across something that doesn't entirely work right or just doesn't make sense to me and I often refrain from thinking it is a bug in the library or code I am using.

For instance today I discovered that Java's TrayIcon slightly alters some of the RGB values of the image it displays. It is not enough to alter the image but just an R that is one higher or a G that is lower.

I am a self-taught 18 year old (with ~5 years) and so I always think that I am just missing some piece of information of how some part of the computer operates and that is why a given situation does not make sense.

So when you do not necessarily know everything about a given area of a computer and how it operates, how can one identify a bug and know it is a bug with absolute certainty?

  • Would the TrayIcon fold this down to an existing color palette? Check the OpenJDK source.
    – user1249
    Commented Apr 14, 2011 at 11:08

3 Answers 3


It sounds like you are pretty much on the right track already. You are highlighting that you've noticed that a particular application doesn't appear to be working correctly and give actual examples of the behaviour. The best thing at that point is to see if you can speak directly with the person concerned to find out if you've uncovered something new or already known. There is the potential that the person will highlight it's not a bug but expected behaviour, but as long as you find out why then you've learnt something new.

Many things, both great and small, are discovered by people questioning the apparent obvious and the person being questioned taking time to understand and answer the question.

  • 1
    But what is there to do when you find a possible bug in a library for something big like Java?
    – user7007
    Commented Apr 13, 2011 at 21:47
  • You can do two things, accept, find another way and carry on. Or you could slice and dice your tests and eliminate the uncertainity. Try several different ways to replicate the problem and make sure there is no external influence causing the problem. If you can really isolate and replicate the problem then first, give youself a pat on the back because it doesn't happen very often! Then if there is a process for reporting the bug, then check it's not already been reported and post your findings and isolated tests. If it's actually an OSS project you could even post a fix! Commented Apr 14, 2011 at 19:47

Talk about a loaded question... There honestly is to know way for certain unless you are on the team that created the software in the first place as that 'bug' may actually be required behavior, either by user requirements or by the operating system or even sometimes by the law. Take a variant of your example, where the colors seem off a bit; that could actually be specific behavior intended to make the image friendlier to people who are colorblind.

In general, if something runs counter to the expectations of normal user interface interaction then it is a good candidate to be either a bug or a design flaw. Other good indicators are inconsistent behavior, missing data, duplicate data and slow response from the UI.


With large systems like the Java platform you are using there is often a website where you can check for known bugs and log new ones. If you scroll to the very end of that page you linked to you will see a link to "submit a bug or a feature". I would check on there to see if it is a known issue.

If you don't see it then the next step is to get a good repro. This means you need to identify the minimal steps you need to show the issue. You should document the steps you take extremely clearly; basically provide enough info so that a tester who has never met you can see exactly what you mean and see the problem for themselves.