Recently, when I upload my code to the Uno, I see this message
Arduino: 1.6.7 (Windows 10), Board: "Arduino/Genuino Uno"
Sketch uses 4,842 bytes (15%) of program storage space. Maximum is 32,256 bytes.
Global variables use 75 bytes (3%) of dynamic memory, leaving 1,973 bytes for local variables. Maximum is 2,048 bytes.
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x3b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x3b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x3b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x3b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x3b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x3b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x3b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x3b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x3b
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x3b
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
Note that when I press the upload button, it quickly writes
Sketch uses 4,842 bytes (15%) of program storage space. Maximum is 32,256 bytes.
Global variables use 75 bytes (3%) of dynamic memory, leaving 1,973 bytes for local variables. Maximum is 2,048 bytes.
however, it stuck at that message for about minute and then write the rest of the message.
I tried restarting the computer and power off/on the Uno but still have this problem. any idea?
Try using IDE 1.6.5.. It was the last stable version. Since then a lot of bugs and problems with uploading have been reported..
Did you select the right COM port?
I am experiencing the same problem, even after switching to Arduino IDE 1.6.5
I'm using an Uno on Windows 10.
I have to say I hadn't seen such a problem until now. Please see the picture to verify that there is only one COM3 port (the USB which I attached the Uno to my computer)
Is there any test program for verifying the health check of the Uno? Something like memtest in linux for troubleshooting the memory.
Yes, do the suggested loop back test 
How? can you explain more or give me a working example?
That's why it's a sticky at the top of the board 
Have you attached anything to the RX, TX pin of your board??
I tried the loop back test as explained in the sticky post of this forum. Please see the picture. Is that correct? As I open the serial monitor from the arduino ide and send a character, I don't see any reply.
When I connect the board to the laptop, only one COM3 port is shown in the list of the ports which I think is the correct port.
Any idea?
mahmoodn:
I tried the loop back test as explained in the sticky post of this forum. Please see the picture. Is that correct?
If that's a wire betweem reset and GND and a wire between Rx and Tx that's good.
mahmoodn:
As I open the serial monitor from the arduino ide and send a character, I don't see any reply.
That's not good...
mahmoodn:
When I connect the board to the laptop, only one COM3 port is shown in the list of the ports which I think is the correct port.
Does that COM port only show when you connect the board? Aka, is that COM gone when the board is disconnected?
septillion:
Does that COM port only show when you connect the board? Aka, is that COM gone when the board is disconnected?
Yes. I guess the board is dead... 
If the COM only shows when you connect the board
AND the COM has no ! in device manager
AND you select that board
AND you do a loopback test (wire between Rx and Tx)
AND have the AVR in reset (wire between GND and RST)
AND you see nothing back when you sent stuff via serial monitor
THEN yes, I think the board is dead. Or at least the USB serial part of it.
But don't chuck it away just yet, as you might be able to program it using either another Arduino or ICSP port.
If that fails then I guess it will go to that great recycling centre in the sky (or your local area, whichever is the closer).
Excuse me... One thing is not clear for me. That test procedure says the board should be in reset mode. What I see on the board is push button switch which resets the board but that is an instant thing. Without pressing the button, I decided to connect the wire the GND and RST pins of the Tiny (as shown in the previous post's picture).
Is that OK?
Also, if the usb part is dead, does that mean I have to change the whole board? Or I can replace the Tiny with another programmed one?
All the button does is connecting GND to RST. So when you keep pushing the button the ATmega stays in reset. Which is the same as connecting a wire between GND an RST, easier then keeping a button pressed all the time.
On the photo it looks like a real Arduino (btw, there is no ATtiny on that board). You can try to reburn the ATmega16U2 that does the USB to serial. But I find it strange that it's correctly seen by Windows but doesn't seem to work...
mahmoodn:
Also, if the usb part is dead, does that mean I have to change the whole board? Or I can replace the Tiny with another programmed one?
If the USB part is dead (not sure this is the case yet) you can program it via the ICSP port instead using a serial to USB device (CH340G or even a FTDI if you are brave)
OK. I tested the same board configuration for loopback test (as shown in the picture in previous posts) and I was able to see the echo!
That means the old board is dead. Then I decided to buy a programmed ATtiny and put it on the dead board. Still the board doesn't show the echo
I was thinking how to bring that dead board up again... but it seems that one of the chips on the board is damaged which is not replaceable.
Before you decide that your board is dead, have you tried uploading a programming using the ICSP port... Also have you tried bootloading your arduino again once??
Ralph_S_Bacon:
you can program it via the ICSP port instead using a serial to USB device (CH340G or even a FTDI if you are brave)
You cannot program a ATmega ISP with just a USB-serial converter... If you use a USB-serial converter you connect it to Tx, Rx, GND and RST. If you want to use the ISP you need a programmer (or another Arduino set up as ArduinoISP).
mahmoodn:
OK. I tested the same board configuration for loopback test (as shown in the picture in previous posts) and I was able to see the echo!
You mean with a different board?
mahmoodn:
That means the old board is dead. Then I decided to buy a programmed ATtiny and put it on the dead board. Still the board doesn't show the echo
Still don't know what you want to do with a ATtiny... The Arduino Uno doesn't use a ATtiny. It uses a ATmega328p as programmable microcontroller (the one in a socket) and a ATmega16U2 as USB-serial converter.
Replacing the ATmega328p (the one in the socket) is useless if the loop back test fails. That micro is kept in reset while doing the loop back test so doesn't play a roll.
Have you tried to re-burn the ATmega16U2? (aka, NOT the one in the socket, aka not with the bootloader).