Unit tests are called unit tests by pretty much everyone. Smoke tests appears to be different - they are a selection of the tests (which may include unit tests) that quickly test critical functionality.
Thomas Chang wrote:Seems 'unit test' from java world and 'smoke test' from Microsoft? They are meaningfully the same?
No, "smoke test" is not terminology that Microsoft invented, and "unit test" and "smoke test" have different meanings.
A unit test is a test to test some part (a "unit" - which might be a method, a class, a module or something else like that) of a larger system. The goal of the unit test is to test the specific unit independent of the whole system into which it fits. JUnit is the most well-known library for creating and running unit tests in Java, and is supported by all the major IDEs.
A smoke test is a quick test to see if the major functionality of some software works. This comes from the hardware world: imagine that you've just soldered together some new electronic device, then you switch it on and if it does *poof* and you see smoke, then the smoke test failed... A smoke test is not specifically meant to test a single unit or module, but the system as a whole.
Do you need the rest of the PC for that? All you need to do is put the hard drive into a different PC. Well, unless the hard drive or its internal controller is fried.