Bugs exist everywhere, so as in computer application. There are thousands of bugs foun d everything from youtube to your smartphone. We try so hard to eliminate bugs in our projects. We take at least 20% of our project development time testing, finding bugs. Bugs, however, still occur after deployment. There are some many ways, tool to track bugs. Here's how to handle bugs or errors.
how we know if there is a bug?
We use Bugsnag for mobile app, website and server. Bugsnag will capture some unhandled errors in your application and store it. In our server, we also use Logstack in case we want detail of error and detail user analytic. For some UI problems, we mostly get feedback from client users.
Steps we handle bugs
- Is the issue severe?
Bugs are found very frequently in popular application almost every day. (Famous service like windows, office also found thousand of bugs every day). Did we try to categorize the bug according to the severeness? feature-request, bug, error, fatal error? Besides, we estimate the affected percentage. if the problem is fatal and affect a high percentage of users (ie, >2%), then we will put it in a very high priority (mostly likely NOW). We create a task and sort each task into a list according to priority.
2. how to regenerate it
We then view the issue and figure out how to regenerate the issue. For example, user use a new brand new browser and the new browser have some expected behaviour, or some user suddenly disconnects to the internet. If we cannot reproduce the problem, we will wait until the second similar problem happen. We add remarks to the task to tell developers how to reproduce the issue which will give insight to the developer about the cause.
3. Identify the problem
Find the line of code in the source code. Change the problematic codes/line.
4. Test again by others (and other related parts)
To complete the fix bug task, a second developer will view the code and test if it is fixed. We will also test other parts related to these part of code to avoid generating another bug.
Here come to the final part - deploy. If it is fatal, we will most likely deploy right after testing. For other small bugs or feature request, we will fix them in a patch in next update which most likely 2-4 days after.