I was asked this question during an interview. My thoughts are SIT is performed on a complete systems and System Testing can be done on a single module as well.
Systems testing is often performed against the whole platform, and treats the environment as a black box. system integration testing however, acts upon a subset of the whole system, and may mock other platforms, interact with databases, network sockets etc to evoke appropriate responses from the parts being validated.
The objectives of system testing is to validate the public exposed interfaces of the platform, by behaving as an end user, with no privileged access to internal systems. Integration verification attempts to verify that seperate systems operate well together before they're used in the whole system.
|show 2 more comments|
In my vocabulary system testing would be testing one complete product ( http://en.wikipedia.org/wiki/System_testing ) and system integration testing would be testing combination of products ( http://en.wikipedia.org/wiki/System_integration_testing ). As always, it's good to make sure others are using terms in the same way and in an interview point out that you know about the ambiguity.
In your comment you asked
In testing C, but I believe you won't learn much from short answers.
The long answer is the following. You have a system of systems here. You may perform tests at the same level (single system, system of systems), but at each level you may want to focus on different risks (integration problems, whole functionality).
So let's say you're developing a system A (e.g., online shop) that interacts with external (i.e., not under your control) system B (e.g., PayPal).
You may always consult ISTQB glossary and ISTQB Syllabus if you need clear definitions. Practice is, however, more interesting. You combine multiple dimensions of testing: level (subsystem, system, system of the systems) and risk focus (functionality, integration problems, etc.). And often the boundary between what you test is not so clear. For instance, when you test your online shop functionality, at the same time you are also making sure that backend and frontend has been integrated correctly. The book "Lessons Learned in Software Testing" explains nicely about this combination of testing dimensions in "Lesson 48: Testing combines techniques that focus on testers, coverage, potential problems, activities, and evaluation".
To learn more about what risks integration tests focus on, see another answer.