How to Find a Bug in Application? – A very good and important point. Right?
If you are a Software Tester or a QA Engineer, then each and every minute you must think to find a bug in an application. And you should be!
You might think finding a Blocker Bug like any System Crash is often rewarding! But, I don’t think like that. You should try to find out the bugs that are most difficult to find and those always mislead users.
Finding such subtle bugs is the most challenging work, and it gives you the satisfaction of your work. Also, it should be rewarded by seniors. Let me share my experience of one such subtle bug that was not only difficult to catch, but was difficult to reproduce as well.
I was testing one module from my search engine project. I do most of the activities of this project manually, as it is slightly complex to automate. That module comprises traffic and revenue stats of different affiliates and advertisers. So testing such reports is always a difficult task.
When I tested this report, it showed that the data was accurately processed for some time, but when tried to test again after some time it was showing misleading results. It was strange and confusing to see the results.
There was a Cron (Cron is an automated script that runs after a specified time or condition) to process the log files and update the database. Such multiple crops are running on log files and DB to synchronize the total data.
There were two Crons running on one table with some time intervals.
There was a column in the table that was getting overwritten by other Cron making some data inconsistency. It took us a long time to figure out the problem because of the vast DB processes and different Crons.
My point is trying to find out the hidden bugs in the system that might occur for special conditions and causes a powerful impact on the system. You can find such a bug with some tips and tricks.
Here are those Tips:
#1) Understand the whole application or module in depth before starting the testing.
#2) Prepare good Test Cases before starting with testing. I mean give stress on the functional test cases, which include the major risk of the application.
#3) Create sufficient Test Data before tests. This dataset includes the test case conditions and also the database records if you are going to test DB related application.
#4) Perform repeated tests with different Test Environments.
#5) Try to find out the resulting pattern and then compare your results with those patterns.
#6) When you think that you have completed most of the test conditions and when you think you are tired somewhat, then do some Monkey Testing.
#7) Use your previous Test Data pattern to analyze the current set of tests.
#8) Try some Standard Test Cases for which you found the bugs in some different application. Like if you are testing the input text box, try inserting some HTML tags as the inputs and see the output on the display page.
#9) Last and the best trick is to try very hard to find the bug. As if you are testing only to break the application!
We will include more tips in our upcoming posts. Meantime you can share more tips in the comments section here.